***

title: AgentServer
slug: /reference/python/agents/livewire/agent-server
description: Server registration and session entrypoint decorator for LiveWire agents.
max-toc-depth: 3
---------------------

For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

[run-app]: /docs/server-sdks/reference/python/agents/livewire/run-app

[agentserver]: /docs/server-sdks/reference/python/agents/agent-server

[jobprocess]: /docs/server-sdks/reference/python/agents/livewire/job-context

[rtcsession]: /docs/server-sdks/reference/python/agents/livewire/agent-server/rtc-session

`AgentServer` mirrors a LiveKit `AgentServer` (or `WorkerOptions`). It registers
a session entrypoint and an optional setup function, then is passed to
[`run_app()`][run-app] to start the agent.

<Note>
  This is the **LiveWire** `AgentServer`, not the SignalWire
  [`AgentServer`][agentserver] used for multi-agent
  hosting. The LiveWire version provides LiveKit-compatible registration methods; under
  the hood it creates a single-agent SignalWire deployment.
</Note>

```python {3}
from signalwire.livewire import AgentServer, JobContext, run_app

server = AgentServer()

@server.rtc_session()
async def entrypoint(ctx: JobContext):
    # Set up agent and session here
    pass

run_app(server)
```

## **Properties**

<ParamField path="setup_fnc" type="Optional[Callable]" toc={true}>
  A setup function called before the entrypoint. Receives a
  [`JobProcess`][jobprocess] instance.
  Assign directly to register.
</ParamField>

## **Methods**

<CardGroup cols={2}>
  <Card title="rtc_session" href="/docs/server-sdks/reference/python/agents/livewire/agent-server/rtc-session">
    Decorator that registers the session entrypoint function.
  </Card>
</CardGroup>