Skip to content

Home

Connect all the agents!

Key Features

🔌 ACP Integration

First-class support for the Agent Client Protocol (ACP):

  • Integrate directly into IDEs like Zed, VS Code, and others
  • Wrap external agents (Claude Code, Goose, Codex, fast-agent) as nodes
  • Unified node abstraction - ACP agents work like native agents
  • Compose ACP agents into teams with native agents

📝 Easy Agent Configuration

AgentPool excels at static YAML-based agent configuration:

  • Define agents with extreme detail in pure YAML (Pydantic-backed)
  • Expansive JSON schema for IDE autocompletion and validation, backed by an extremely detailed schema.
  • Multi-Agent setups with native as well as remote (ACP / AGUI) agents

🧩 Unified Node Architecture

Everything is a MessageNode - enabling seamless composition:

  • Native agents with a large set of default tools
  • ACP agents
  • AG-UI agents
  • Teams (parallel and sequential)
  • Human-in-the-loop-agents
  • All nodes share the same interface

Dependencies

Name Summary Marker
apprise Push Notifications that work with just about every platform! extra == "notifications"
typer Typer, build great CLIs. Easy to code. Based on Python type hints.
evented Event emitters.
starlette The little ASGI library that shines. extra == "a2a"
braintrust SDK for integrating Braintrust extra == "braintrust"
upathtools UPath utilities
docstring_parser Parse Python docstrings in reST, Google and Numpydoc format
structlog Structured Logging for Python
uvicorn The lightning-fast ASGI server.
fastembed Fast, light, accurate library built for retrieval embedding generation python_full_version < "3.14" and extra == "mcp-discovery"
fsspec File-system specification
exxec Execution environments
searchly Search tools for agents
slashed Slash commands and autocompletions
logfire The best Python observability tool! 🪵🔥
tree-sitter-json JSON grammar for tree-sitter extra == "coding"
epregistry A registry for entry points (cached and generically typed)
watchfiles Simple, modern and high performance file watching and code reload in python.
ag-ui-protocol extra == "ag-ui"
grep-ast A tool to grep through the AST of a source file extra == "coding"
toprompt Convert python objects to LLM-friendly descriptions
schemez Pydantic shim for config stuff
tiktoken tiktoken is a fast BPE tokeniser for use with OpenAI's models extra == "tiktoken"
codexed Alternative codex app-server client
slack_sdk The Slack API Platform SDK for Python extra == "bot"
python-telegram-bot We have made you a wrapper you can't refuse extra == "bot"
tree-sitter-python Python grammar for tree-sitter extra == "coding"
anyenv Compatibility layer for some basic operations to allow painless operation in PyOdide and Python pre-releases
anyvoice Common interface for streaming tts providers extra == "tts"
zstandard Zstandard bindings for Python extra == "zed"
rustworkx A High-Performance Graph Library for Python extra == "coding"
tree-sitter-javascript JavaScript grammar for tree-sitter extra == "coding"
fastmcp The fast, Pythonic way to build MCP servers and clients.
langfuse A client library for accessing langfuse extra == "langfuse"
pyarrow Python library for Apache Arrow python_full_version < "3.14" and extra == "mcp-discovery"
keyring Store and access your passwords safely.
mcpx-py An mcp.run client for Python extra == "mcp-run"
yamling Enhanced YAML loading and dumping.
bashkit A sandboxed bash interpreter for AI agents
lancedb lancedb python_full_version < "3.14" and extra == "mcp-discovery"
promptantic Generate pydantic models using prompts
tree-sitter-typescript TypeScript and TSX grammars for tree-sitter extra == "coding"
pillow Python Imaging Library (Fork)
httpx The next generation HTTP client.
tree-sitter-yaml YAML grammar for tree-sitter extra == "coding"
ripgrep-rs A Python wrapper for ripgrep
llmling-models Pydantic-AI models for AgentPool
psygnal Fast python callback/event system modeled after Qt Signals
platformdirs A small Python package for determining appropriate platform-specific dirs, e.g. a user data dir.
mcp Model Context Protocol SDK
tree-sitter-c C grammar for tree-sitter extra == "coding"
fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production
clawd-code-sdk Python SDK for Claude Code
tree-sitter-rust Rust grammar for tree-sitter extra == "coding"
autoevals Universal library for evaluating AI models extra == "braintrust"
docler Abstractions & Tools for OCR / document processing
pydantic Data validation using Python type hints
tokonomics Calcuate costs for LLM Usage based on token count
sqlmodel SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.
rich Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal
sublime-search
Jinja2 A very fast and expressive template engine.
slackify_markdown Convert markdown to Slack-compatible formatting extra == "bot"
composio SDK for integrating Composio with your applications. extra == "composio"
py-key-value-aio Async Key-Value Store - A pluggable interface for KV Stores
pydocket A distributed background task system for Python functions
tree-sitter-cpp C++ grammar for tree-sitter extra == "coding"
croniter croniter provides iteration for datetime object with cron like format extra == "bot"
markitdown Utility tool for converting various files to Markdown python_full_version < "3.14" and extra == "markitdown"
websockets An implementation of the WebSocket Protocol (RFC 6455 & 7692)
alembic A database migration tool for SQLAlchemy.
tree-sitter Python bindings to the Tree-sitter parsing library extra == "coding"
python-dotenv Read key-value pairs from a .env file and set them as environment variables
SQLAlchemy Database Abstraction Library
copykitten A robust, dependency-free way to use the system clipboard in Python. extra == "clipboard"
ast-grep-py Structural Search and Rewrite code at large scale using precise AST pattern. extra == "coding"
fasta2a Convert an AI Agent into a A2A server! ✨ extra == "a2a"
pydantic-ai-slim Agent Framework / shim to use Pydantic with LLMs, slim package
promptlayer PromptLayer is a platform for prompt engineering and tracks your LLM requests. extra == "promptlayer"
tree-sitter-go Go grammar for tree-sitter extra == "coding"
jinjarope Jinja2 utilities, loaders & fsspec integration.

License

MIT License - see LICENSE for details.

Quick Start

Basic Agent Configuration

# agents.yml
agents:
  assistant:
    display_name: "Technical Assistant"
    model: openai:gpt-4
    system_prompt: You are a helpful technical assistant.
    tools:
      - type: file_access

Python Usage

from agentpool import AgentPool

async def main():
    async with AgentPool("agents.yml") as pool:
        agent = pool.get_agent("assistant")
        response = await agent.run("What is Python?")
        print(response.data)

if __name__ == "__main__":
    import anyio
    anyio.run(main)