Remote ACP Hosting
This page documents the remote-host pattern for combining ACP Kit adapters with ACP Remote transport.
There is intentionally no maintained examples/acpremote/ source directory. The remote-host flow is
described here as an operator pattern and mock wiring sketch so the public docs can stay stable
without shipping another example package surface.
What It Demonstrates
- adapting a Pydantic AI runtime into ACP and exposing it over WebSocket
- adapting a LangChain graph into ACP and exposing it over WebSocket
- mirroring either remote endpoint back into a local stdio ACP server
- keeping remote host ownership for
cwd, filesystem, and terminal capabilities
Pydantic Remote Flow
Remote host:
acpkit serve examples.pydantic.finance_agent:agent --host 0.0.0.0 --port 8080
Local mirror:
acpkit run --addr ws://127.0.0.1:8080/acp/ws
This path uses the maintained finance example from
examples/pydantic/finance_agent.py.
LangChain Remote Flow
Remote host:
acpkit serve examples.langchain.workspace_graph:graph --host 0.0.0.0 --port 8081
Local mirror:
acpkit run --addr ws://127.0.0.1:8081/acp/ws
This path uses the maintained plain-LangChain example from
examples/langchain/workspace_graph.py.
CLI Alternative
ACP Kit already exposes the remote-host boundary through the root CLI:
acpkit serve examples.pydantic.finance_agent:agent --host 0.0.0.0 --port 8080
acpkit serve examples.langchain.workspace_graph:graph --host 0.0.0.0 --port 8081
acpkit run --addr ws://127.0.0.1:8080/acp/ws
Mock Python Sketch
If you want the same shape in Python instead of the CLI, the transport boundary looks like this:
from acpkit import create_acp_agent
from acpremote import connect_acp, serve_acp
async def remote_host() -> None:
acp_agent = create_acp_agent(...)
server = await serve_acp(agent=acp_agent, host='0.0.0.0', port=8080)
await server.serve_forever()
async def local_mirror() -> None:
agent = connect_acp('ws://127.0.0.1:8080/acp/ws')
...
Treat that as a documented sketch rather than a maintained example module.