ACP adapter for pydantic-ai agents.
Project description
pydantic-acp
pydantic-acp adapts pydantic_ai.Agent instances to the ACP agent interface.
Public Entry Points
run_acp(...)create_acp_agent(...)AdapterConfigAcpSessionContextAgentSource,AgentFactory,StaticAgentSource,FactoryAgentSourceAgentBridgeBuilder- provider protocols
- capability bridges
- hook projection and existing-hook introspection
- host backends
Implemented Scope
- Milestone 1-7 scope is implemented
- the adapter includes session lifecycle, session-local model control, providers, approvals, bridges, projection maps, and host backends
- slash commands are available for
/model,/tools,/hooks, and/mcp-servers
Quick Start
from pydantic_acp import run_acp
from pydantic_ai import Agent
agent = Agent("test", name="demo-agent")
run_acp(agent=agent)
Factory-backed usage:
from pydantic_acp import AcpSessionContext, create_acp_agent
from pydantic_ai import Agent
def build_agent(session: AcpSessionContext) -> Agent[None, str]:
return Agent("test", name=f"demo-{session.cwd.name}")
acp_agent = create_acp_agent(agent_factory=build_agent)
File-backed session persistence:
from pathlib import Path
from pydantic_acp import AdapterConfig, FileSessionStore, run_acp
run_acp(
agent=agent,
config=AdapterConfig(
session_store=FileSessionStore(base_dir=Path(".acp-sessions")),
),
)
Projection map example:
from pydantic_acp import FileSystemProjectionMap, run_acp
run_acp(
agent=agent,
projection_maps=(
FileSystemProjectionMap(
default_read_tool="read_file",
default_write_tool="write_file",
default_bash_tool="execute",
),
),
)
Hook projection example:
from pydantic_acp import HookProjectionMap, run_acp
run_acp(
agent=agent,
projection_maps=(
HookProjectionMap(
hidden_event_ids=frozenset({"after_model_request"}),
)
),
)
Major Features
- ACP session lifecycle support
- transcript and model-message history replay
- generic tool projection with ACP tool updates
- projection maps for filesystem diffs and bash command previews
- session-local models, modes, config options, and plan updates
- deferred approval bridging
- provider seams for host-owned state
- capability bridges for hooks, history processors, prepare-tools, and MCP
- hook introspection and
HookProjectionMaprendering for existingHookscapabilities - session-scoped host backends
Examples
See examples/pydantic/ for focused SDK examples covering static agents, factories, providers,
bridges, approvals, host-context usage, and hook projection.
Key entry points:
examples/pydantic/hook_projection.pyexamples/pydantic/my_agent.py
For fuller workspace documentation, see the root README.md and the docs/ directory.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pydantic_acp-0.3.1.tar.gz.
File metadata
- Download URL: pydantic_acp-0.3.1.tar.gz
- Upload date:
- Size: 35.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62d84cc4ca1b931a855ed991713bf3daf50ce284297284c671158cc507ed306a
|
|
| MD5 |
3250d53004ed2f3dffa180503919f5da
|
|
| BLAKE2b-256 |
2bb7c907983af7fc1bb5595a011a37b719a155186369e76404be6e6b56594fa8
|
File details
Details for the file pydantic_acp-0.3.1-py3-none-any.whl.
File metadata
- Download URL: pydantic_acp-0.3.1-py3-none-any.whl
- Upload date:
- Size: 49.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd2632aa62a3aad448150a3950e2b5935d25e4a7441458e8e38e5ccc0982db73
|
|
| MD5 |
2f68140d7047f6a39c22c27bf8171b3a
|
|
| BLAKE2b-256 |
5ce0a6be4d34a7414809e9356f924d6d88a39954fa4fec239db9200fe89548f5
|