> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # AgentServer > Server registration and session entrypoint decorator for LiveWire agents. [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. ```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** **`setup_fnc`** `Callable | None` — default: None A setup function called before the entrypoint. Receives a [`JobProcess`][jobprocess] instance. Assign directly to register. --- ## **Methods** #### [rtc\_session](/docs/server-sdks/reference/python/agents/livewire/agent-server/rtc-session) Decorator that registers the session entrypoint function. > Server registration and session entrypoint decorator for LiveWire agents. ## Docs - [rtc_session](https://signalwire.com/docs/server-sdks/reference/python/agents/livewire/agent-server/rtc-session.md): Decorator that registers the session entrypoint function.