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

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)