Skip to content

Releases: agentclientprotocol/python-sdk

0.4.9

14 Oct 05:29
927f558

Choose a tag to compare

This release brings the SDK close to production readiness — rebuilt with stronger foundations and a clearer developer experience.

Highlights

  • Supervised queue/state store for deterministic IO and concurrency.
  • Dedicated message routers with Pydantic validation.
  • Optional telemetry via Logfire / OpenTelemetry integration.
  • New helper builders and subprocess spawners for clean embedding.
  • Improved documentation, examples, and test coverage.

Upstream Spec: Regenerated against refs/tags/v0.4.9

What's Changed

  • refactor: make routing/sending pipeline better and add optional telemetry by @PsiACE in #9
  • refactor: align spec to optimize the development experience by @PsiACE in #10
  • chore: bump to 0.4.9 by @PsiACE in #11

Full Changelog: 0.4.5...0.4.9

0.4.5

09 Oct 19:26
f65295a

Choose a tag to compare

What's Changed

  • Ergonomic type generation with well-planned naming mappings
  • Schema type generation accepts version input
  • Tracked upstream changes up to 0.4.5
  • Prevented receive-loop blocking on callback-dependent requests

Full Changelog: 0.3.0...0.4.5

0.3.0

30 Sep 04:01
ae5e795

Choose a tag to compare

What's Changed

image

New Contributors

  • @PsiACE made their first contribution in #4

Full Changelog: 0.0.1...0.3.0

Agent Client Protocol (Python) - v0.0.1

06 Sep 10:26

Choose a tag to compare

A minimal Python SDK for the Agent Client Protocol (ACP). Build agents that talk to ACP clients (e.g. Zed) over stdio.

Install

pip install agent-client-protocol

Minimal agent

import asyncio
from acp import Agent, AgentSideConnection, Client, InitializeRequest, InitializeResponse, PromptRequest, PromptResponse, SessionNotification, stdio_streams, PROTOCOL_VERSION
from acp.schema import ContentBlock1, SessionUpdate2

class EchoAgent(Agent):
    def __init__(self, client: Client):
        self.client = client
    async def initialize(self, _p: InitializeRequest) -> InitializeResponse:
        return InitializeResponse(protocolVersion=PROTOCOL_VERSION)
    async def prompt(self, p: PromptRequest) -> PromptResponse:
        await self.client.sessionUpdate(SessionNotification(
            sessionId=p.sessionId,
            update=SessionUpdate2(sessionUpdate="agent_message_chunk", content=ContentBlock1(type="text", text="Hello from ACP")),
        ))
        return PromptResponse(stopReason="end_turn")

async def main() -> None:
    reader, writer = await stdio_streams()
    AgentSideConnection(lambda c: EchoAgent(c), writer, reader)
    await asyncio.Event().wait()

if __name__ == "__main__":
    asyncio.run(main())

Use this executable from your ACP client.

More