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

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)