|
| 1 | +# ACP Kit SDK Intro |
| 2 | + |
| 3 | +ACP Kit is a Python SDK and CLI for turning an existing agent surface into a truthful ACP server boundary. |
| 4 | + |
| 5 | +Today that mostly means exposing `pydantic_ai.Agent` through `pydantic-acp`, while keeping models, modes, plans, approvals, MCP metadata, host tools, and session state aligned with what the underlying runtime can actually support. |
| 6 | + |
| 7 | +This intro is intentionally short. The canonical deep references should come from the docs set in `docs/`, not from a second parallel skill-specific spec. |
| 8 | + |
| 9 | +## Core Positioning |
| 10 | + |
| 11 | +ACP Kit is not a new agent framework. |
| 12 | + |
| 13 | +It sits between: |
| 14 | + |
| 15 | +- an existing agent runtime |
| 16 | +- ACP clients such as editors and host applications |
| 17 | + |
| 18 | +The central contract is: |
| 19 | + |
| 20 | +> expose ACP state only when the underlying runtime can actually honor it. |
| 21 | +
|
| 22 | +That rule drives model selection, mode switching, slash commands, native plan state, approval flow, MCP metadata, and host-backed tooling. |
| 23 | + |
| 24 | +## Start With The Real Docs |
| 25 | + |
| 26 | +Published docs base URL: |
| 27 | + |
| 28 | +- `https://vcoderun.github.io/acpkit/` |
| 29 | + |
| 30 | +Use these docs pages as the primary references: |
| 31 | + |
| 32 | +| Need | Local source | Published docs | |
| 33 | +| --- | --- | --- | |
| 34 | +| Product overview and package map | `docs/index.md` | `https://vcoderun.github.io/acpkit/` | |
| 35 | +| Construction seams and adapter overview | `docs/pydantic-acp.md` | `https://vcoderun.github.io/acpkit/pydantic-acp/` | |
| 36 | +| Runtime config and session ownership | `docs/pydantic-acp/adapter-config.md` | `https://vcoderun.github.io/acpkit/pydantic-acp/adapter-config/` | |
| 37 | +| Models, modes, slash commands, thinking | `docs/pydantic-acp/runtime-controls.md` | `https://vcoderun.github.io/acpkit/pydantic-acp/runtime-controls/` | |
| 38 | +| Plans, approvals, and cancellation | `docs/pydantic-acp/plans-thinking-approvals.md` | `https://vcoderun.github.io/acpkit/pydantic-acp/plans-thinking-approvals/` | |
| 39 | +| Host-owned state patterns | `docs/providers.md` | `https://vcoderun.github.io/acpkit/providers/` | |
| 40 | +| ACP-visible extension seams | `docs/bridges.md` | `https://vcoderun.github.io/acpkit/bridges/` | |
| 41 | +| Host-backed tools and projections | `docs/host-backends.md` | `https://vcoderun.github.io/acpkit/host-backends/` | |
| 42 | +| Maintained example ladder | `docs/examples/index.md` | `https://vcoderun.github.io/acpkit/examples/` | |
| 43 | +| Production showcase | `docs/examples/workspace-agent.md` | `https://vcoderun.github.io/acpkit/examples/workspace-agent/` | |
| 44 | +| API surface | `docs/api/pydantic_acp.md` | `https://vcoderun.github.io/acpkit/api/pydantic_acp/` | |
| 45 | + |
| 46 | +## Construction Seams To Reach For |
| 47 | + |
| 48 | +Use these seams intentionally: |
| 49 | + |
| 50 | +| Seam | Use it when | |
| 51 | +| --- | --- | |
| 52 | +| `run_acp(agent=...)` | you want the smallest direct path from `pydantic_ai.Agent` to a running ACP server | |
| 53 | +| `create_acp_agent(...)` | you need the ACP-compatible agent object before running it | |
| 54 | +| `agent_factory=` | session context should influence agent construction, but a full custom source is unnecessary | |
| 55 | +| `agent_source=` | you need full control over agent build path, host binding, and session-specific dependencies | |
| 56 | +| built-in `AdapterConfig` fields | the adapter can own the relevant session state cleanly | |
| 57 | +| providers | the host or product layer should remain the source of truth | |
| 58 | +| bridges | the runtime needs ACP-visible capabilities without hard-coding them into the adapter core | |
| 59 | + |
| 60 | +## High-Value Guardrails |
| 61 | + |
| 62 | +- `FileSessionStore` takes `root=Path(...)`, not `base_dir=...` |
| 63 | +- slash mode commands are dynamic; `ask`, `plan`, and `agent` are examples, not built-in global names |
| 64 | +- mode ids must not collide with reserved slash command names like `model`, `thinking`, `tools`, `hooks`, or `mcp-servers` |
| 65 | +- only one `PrepareToolsMode(..., plan_mode=True)` is allowed |
| 66 | +- `plan_tools=True` is how a non-plan execution mode keeps plan progress tools visible |
| 67 | +- `/thinking` only exists when `ThinkingBridge()` is configured |
| 68 | +- native ACP plan state and `PlanProvider` are separate ownership paths |
| 69 | +- `HookBridge(hide_all=True)` suppresses hook listing output, not the underlying hook capability itself |
| 70 | + |
| 71 | +## Reference Files In This Skill |
| 72 | + |
| 73 | +These skill-local references are only routing aids back into the docs: |
| 74 | + |
| 75 | +- `references/package-surface.md` |
| 76 | +- `references/runtime-capabilities.md` |
| 77 | +- `references/docs-examples-map.md` |
| 78 | + |
| 79 | +Use them to find the right docs page quickly, not as independent source-of-truth specs. |
0 commit comments