> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livepeer.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Eliza integration

> The Livepeer model provider plugin for the Eliza agent framework (ai16z). Route Eliza's LLM inference through the Livepeer network's decentralised GPU infrastructure.

export const CenteredContainer = ({children, maxWidth = "800px", padding = "0", preset = "default", width = "", minWidth = "", marginRight = "", marginBottom = "", textAlign = "", style = {}, className = "", ...rest}) => {
  const presets = {
    default: {},
    fitContent: {
      width: "fit-content",
      minWidth: "fit-content"
    },
    readable70: {
      width: "70%",
      minWidth: "fit-content"
    },
    readable80: {
      width: "80%",
      minWidth: "fit-content"
    },
    readable90: {
      width: "90%"
    },
    wide900: {
      maxWidth: "900px"
    }
  };
  const presetStyle = presets[preset] || presets.default;
  return <div className={className} style={{
    maxWidth: presetStyle.maxWidth || maxWidth,
    margin: "0 auto",
    padding: padding,
    ...presetStyle.width ? {
      width: presetStyle.width
    } : {},
    ...presetStyle.minWidth ? {
      minWidth: presetStyle.minWidth
    } : {},
    ...width ? {
      width
    } : {},
    ...minWidth ? {
      minWidth
    } : {},
    ...marginRight ? {
      marginRight
    } : {},
    ...marginBottom ? {
      marginBottom
    } : {},
    ...textAlign ? {
      textAlign
    } : {},
    ...style
  }} {...rest}>
      {children}
    </div>;
};

export const CustomDivider = ({color = "var(--lp-color-border-default)", middleText = "", spacing = "default", style = {}, className = "", ...rest}) => {
  const spacingPresets = {
    default: {
      margin: "24px 0"
    },
    overlap: {
      margin: "-1rem 0 -1rem 0"
    },
    tight: {
      margin: "0 0 -1rem 0"
    },
    section: {
      margin: "0 0 -2rem 0"
    },
    sectionOverlap: {
      margin: "-1rem 0 -2rem 0"
    },
    deepOverlap: {
      margin: "-1rem 0 -1.5rem 0"
    }
  };
  const spacingStyle = spacingPresets[spacing] || spacingPresets.default;
  return <div role="separator" aria-orientation="horizontal" className={className} style={{
    display: "flex",
    alignItems: "center",
    ...spacingStyle,
    fontSize: style?.fontSize || "16px",
    height: "fit-content",
    ...style
  }} {...rest}>
      <span style={{
    marginRight: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
      </span>
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      {middleText && <>
          <Icon icon="circle" size={2} />
          <span style={{
    margin: "0 8px",
    fontWeight: "bold",
    color: color,
    opacity: 0.7
  }}>
            {middleText}
          </span>
          <Icon icon="circle" size={2} />
        </>}
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      <span style={{
    marginLeft: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <span style={{
    display: "inline-block",
    transform: "scaleX(-1)"
  }}>
          <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
        </span>
      </span>
    </div>;
};

<CenteredContainer preset="readable90">
  <Tip>Set `modelProvider: "livepeer"` in your Eliza character file and point `LIVEPEER_GATEWAY_URL` at a Gateway. All Eliza inference routes through the Livepeer Network.</Tip>
</CenteredContainer>

<CustomDivider />

[Eliza](https://github.com/elizaos/eliza) is an open-source multi-agent framework from ai16z. It supports pluggable model providers: OpenAI, Anthropic, Google, and Livepeer. The Livepeer plugin (`plugin-livepeer`) routes all LLM inference through a Livepeer AI Gateway, where requests execute on decentralised GPU infrastructure.

The plugin was built by the Agent SPE (approved April 2025 with 30,000 LPT) as part of the first production AI agent pipeline on Livepeer.

<CustomDivider />

## Minimal setup

```json theme={"theme":{"light":"github-light","dark":"dark-plus"}}
{
  "name": "MyAgent",
  "modelProvider": "livepeer",
  "settings": {
    "model": "meta-llama/Meta-Llama-3.1-8B-Instruct"
  },
  "clients": [],
  "system": "You are a helpful AI assistant.",
  "bio": ["AI assistant on decentralised compute"],
  "lore": [],
  "knowledge": [],
  "topics": ["general"],
  "adjectives": ["helpful"]
}
```

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
# .env
LIVEPEER_GATEWAY_URL=https://dream-gateway.livepeer.cloud
# API key optional for community gateway; required for production gateways
# LIVEPEER_API_KEY=your-key
```

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
pnpm start --characters="characters/my-agent.character.json"
```

The `modelProvider: "livepeer"` field tells Eliza to load the Livepeer plugin and route all `generate()` calls through `LIVEPEER_GATEWAY_URL`. The `model` field accepts any Ollama-compatible model ID supported by the Livepeer LLM pipeline.

<CustomDivider />

## Plugin architecture

The Livepeer plugin implements Eliza's `IModelProvider` interface. When Eliza calls `provider.generate()`, the plugin:

1. Formats the messages as an OpenAI-compatible chat completion request
2. POSTs to `{LIVEPEER_GATEWAY_URL}/llm` with the model ID and messages
3. Returns the response text to Eliza's agent loop

The plugin does not modify Eliza's memory, knowledge, or action systems. It replaces only the inference backend. All other Eliza features (RAG, actions, evaluators, client connectors) work unchanged.

<CustomDivider />

## Supported models

Any Ollama-compatible model on the Livepeer LLM pipeline works. Warm models respond immediately; cold models load on first request (30-90 seconds).

| Model                                   | Warm          | VRAM  |
| --------------------------------------- | ------------- | ----- |
| `meta-llama/Meta-Llama-3.1-8B-Instruct` | Yes           | 8 GB  |
| `mistralai/Mistral-7B-Instruct-v0.3`    | Check network | 8 GB  |
| `google/gemma-2-9b-it`                  | Check network | 10 GB |
| `Qwen/Qwen2.5-7B-Instruct`              | Check network | 8 GB  |

<CustomDivider />

## Extending the agent

**Client connectors:** Add `"slack"`, `"discord"`, or `"twitter"` to the `clients` array. Configure credentials in `.env`. The Livepeer inference backend works with all Eliza client connectors.

**Knowledge and RAG:** Add entries to the `knowledge` array in the character file. Eliza's built-in vector store indexes them for retrieval-augmented generation.

**Multi-agent:** Eliza supports running multiple agents in one process, each with different character files. Each agent can use a different `modelProvider` or the same Livepeer backend with different model IDs.

<CustomDivider />

The [AI agent on Livepeer tutorial](/v2/developers/build/tutorials/ai-agent-on-Livepeer) walks through the complete setup from clone to running agent. The [Eliza Livepeer plugin tutorial](/v2/developers/build/tutorials/eliza-livepeer-plugin) covers the plugin architecture in depth.
