> ## 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.

# Building Agents with Livepeer

> How AI agents use Livepeer inference pipelines: Eliza plugin, LLM provider integration, BYOC containers, and the Agent SPE programme.

export const TableCell = ({children, align = "left", header = false, style = {}, className = "", ...rest}) => {
  const Component = header ? "th" : "td";
  return <Component className={className} style={{
    padding: "0.75rem 1rem",
    textAlign: align,
    border: header ? "none" : "1px solid var(--lp-color-border-default)",
    ...style
  }} {...rest}>
      {children}
    </Component>;
};

export const TableRow = ({children, header = false, hover = false, style = {}, className = "", ...rest}) => {
  const rowId = `table-row-${Math.random().toString(36).substr(2, 9)}`;
  return <>
      {hover && <style>{`
          #${rowId}:hover {
            background-color: var(--lp-color-bg-card);
          }
        `}</style>}
      <tr id={rowId} className={className} style={{
    ...header && ({
      backgroundColor: "var(--lp-color-accent-strong)",
      color: "var(--lp-color-on-accent)",
      fontWeight: "bold"
    }),
    ...style
  }} {...rest}>
        {children}
      </tr>
    </>;
};

export const StyledTable = ({children, variant = "default", style = {}, className = "", ...rest}) => {
  const wrapperVariants = {
    default: {
      border: "1px solid var(--lp-color-border-default)",
      backgroundColor: "var(--lp-color-bg-card)",
      overflow: "hidden"
    },
    bordered: {
      border: "2px solid var(--lp-color-accent)",
      backgroundColor: "var(--lp-color-bg-page)",
      overflow: "hidden"
    },
    minimal: {
      border: "none",
      backgroundColor: "transparent",
      overflow: "visible"
    }
  };
  return <div data-docs-styled-table-shell className={className} style={{
    width: "100%",
    padding: 0,
    margin: 0,
    ...wrapperVariants[variant],
    ...style
  }} {...rest}>
      <table data-docs-styled-table style={{
    width: "100%",
    borderCollapse: "collapse",
    borderSpacing: 0,
    margin: 0,
    backgroundColor: "transparent"
  }}>
        {children}
      </table>
    </div>;
};

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 LinkArrow = ({href, label, description, newline = true, borderColor, className = '', style = {}, ...rest}) => {
  const linkArrowStyle = {
    display: 'inline-flex',
    alignItems: 'center',
    justifyContent: 'center',
    gap: "var(--lp-spacing-1)",
    width: 'fit-content',
    ...borderColor && ({
      borderColor
    })
  };
  return <span className={className} style={style} {...rest}>
      {newline && <br />}
      <span style={linkArrowStyle}>
        <a href={href} target="_blank" rel="noopener noreferrer">
          {label}
        </a>
        <Icon icon="arrow-up-right" size={14} color="var(--lp-color-accent)" />
      </span>
      {description && description}
      {description && <div style={{
    height: "var(--lp-spacing-3)"
  }} />}
    </span>;
};

<CenteredContainer preset="readable90">
  <Tip>Livepeer AI pipelines work as drop-in inference backends for agent frameworks. Agents send standard HTTP requests to a Gateway endpoint and receive results without managing GPU infrastructure.</Tip>
</CenteredContainer>

***

AI agents running on frameworks like elizaOS need inference compute for image generation, audio transcription, vision tasks, and LLM completions. Livepeer provides that compute through its decentralised GPU network. Agents interact with a Gateway endpoint using the same request shape as any other client.

The Agent SPE (Special Purpose Entity), funded by the Livepeer treasury, focuses on integrating Livepeer inference into leading agent frameworks and building tooling for autonomous video agents.

<CustomDivider />

## Eliza Plugin

Livepeer is integrated into elizaOS as an image generation provider and an LLM provider. Both integrations ship in the elizaOS core repository.

**Image generation provider**: merged in elizaOS v0.1.7-alpha.2 (PR #1525, contributed by the Agent SPE). Agents configured with the Livepeer provider route `GENERATE_IMAGE` actions to a Livepeer Gateway endpoint. The provider uses the `text-to-image` pipeline and returns image URLs that the agent can post, embed, or pass to downstream actions.

Configuration in an Eliza character file:

```json theme={"theme":{"light":"github-light","dark":"dark-plus"}}
{
  "imageModelProvider": "livepeer",
  "settings": {
    "imageSettings": {
      "modelId": "ByteDance/SDXL-Lightning",
      "width": 1024,
      "height": 1024
    }
  }
}
```

Set `LIVEPEER_GATEWAY_URL` in your environment to point to a Gateway. The community Gateway at `dream-gateway.livepeer.cloud` works for development.

**LLM provider**: Livepeer is also available as an LLM provider in elizaOS (PR #2154). This routes the agent's language model calls through the Livepeer `llm` pipeline, which exposes an OpenAI-compatible completions endpoint backed by network Orchestrators.

See <LinkArrow href="/v2/developers/build/tutorials/eliza-livepeer-plugin" label="Eliza Livepeer Plugin tutorial" newline={false} /> for a full walkthrough of both integrations.

<CustomDivider />

## Using AI Pipelines from Agents

Any agent that can make HTTP requests can call Livepeer AI pipelines directly. The access model is the same as for any other developer: POST to a Gateway endpoint, receive a result.

The nine batch pipelines cover the inference tasks most agents need:

<StyledTable variant="bordered">
  <thead>
    <TableRow header>
      <TableCell header>Agent task</TableCell>
      <TableCell header>Pipeline</TableCell>
    </TableRow>
  </thead>

  <tbody>
    <TableRow>
      <TableCell>Generate an image from a prompt</TableCell>
      <TableCell>`text-to-image`</TableCell>
    </TableRow>

    <TableRow>
      <TableCell>Transcribe audio (voice input, podcast ingestion)</TableCell>
      <TableCell>`audio-to-text`</TableCell>
    </TableRow>

    <TableRow>
      <TableCell>Caption or describe an image</TableCell>
      <TableCell>`image-to-text`</TableCell>
    </TableRow>

    <TableRow>
      <TableCell>Generate speech from text</TableCell>
      <TableCell>`text-to-speech`</TableCell>
    </TableRow>

    <TableRow>
      <TableCell>Segment objects in an image</TableCell>
      <TableCell>`segment-anything-2`</TableCell>
    </TableRow>

    <TableRow>
      <TableCell>Run an LLM completion</TableCell>
      <TableCell>`llm`</TableCell>
    </TableRow>

    <TableRow>
      <TableCell>Transform a live video stream</TableCell>
      <TableCell>`live-video-to-video`</TableCell>
    </TableRow>
  </tbody>
</StyledTable>

See <LinkArrow href="/v2/developers/build/ai-and-agents/ai-pipelines" label="AI Pipelines" newline={false} /> for endpoint shapes and request schemas.

<CustomDivider />

## BYOC Containers for Agents

Agents that need custom inference logic (fine-tuned models, proprietary pipelines, or non-standard modalities) can run as BYOC (Bring Your Own Compute) containers registered with a Livepeer Orchestrator. The Orchestrator handles capability advertisement, job routing, and probabilistic micropayment settlement. The BYOC container only needs to expose an HTTP endpoint matching the pipeline contract.

This pattern suits autonomous agents that process jobs continuously instead of on demand: an agent running a persistent embedding pipeline, a custom vision model, or a specialised audio processor registers once and receives routed jobs as demand arrives on the network.

See <LinkArrow href="/v2/developers/build/compute/byoc/overview" label="BYOC Overview" newline={false} /> for the container interface and registration steps.

<CustomDivider />

## Autonomous Streaming Agents

The Agent SPE Phase 2 (funded March 2025, 30,000 LPT) is developing autonomous VTuber agents: AI-driven 3D avatars built on Unreal Engine's MetaHuman technology that stream live to platforms using Livepeer infrastructure. These agents use Livepeer AI pipelines for real-time video transformation, LLM-driven dialogue, and audio synthesis.

The architecture combines the `live-video-to-video` pipeline for real-time avatar rendering with the `llm` pipeline for autonomous response generation and the `text-to-speech` pipeline for voice output. The Livepeer Gateway handles stream routing; the Orchestrator network provides the inference compute.

This is the primary production use case for agent-driven `live-video-to-video` traffic on the network as of 2025.

<CustomDivider />

## Agent SPE

The Agent SPE is a Livepeer treasury-funded programme that integrates Livepeer inference into AI agent frameworks and builds tooling for the autonomous agent economy. Phase 1 (funded January 2025) delivered the Eliza image generation and LLM provider integrations. Phase 2 (funded March 2025) focuses on VTuber streaming agents and framework expansion.

The Agent SPE maintains a developer presence in the elizaOS Discord and provides support for builders using Livepeer with agent frameworks. The programme is run by Titan-Node, Phoenix, and DeFine.

<CustomDivider />

The [Eliza Livepeer plugin tutorial](/v2/developers/build/tutorials/eliza-livepeer-plugin) is the complete walkthrough for building an agent with Livepeer inference. For Storyboard's agent runtime, see [@livepeer/agent](/v2/developers/build/ai-and-agents/agents/storyboard).

## Related Pages

<CardGroup cols={2}>
  <Card title="Eliza Plugin Tutorial" icon="robot" href="/v2/developers/build/tutorials/eliza-livepeer-plugin" arrow horizontal>
    Full walkthrough of the Livepeer image generation and LLM provider integrations in elizaOS.
  </Card>

  <Card title="AI Pipelines" icon="cpu" href="/v2/developers/build/ai-and-agents/ai-pipelines" arrow horizontal>
    Endpoint shapes and request schemas for all nine batch pipeline types.
  </Card>

  <Card title="BYOC Overview" icon="box" href="/v2/developers/build/compute/byoc/overview" arrow horizontal>
    Run custom inference containers registered with a Livepeer Orchestrator.
  </Card>

  <Card title="Real-Time AI" icon="video" href="/v2/developers/build/ai-and-agents/realtime-ai/overview" arrow horizontal>
    The live-video-to-video pipeline used by streaming agent applications.
  </Card>
</CardGroup>
