Skip to content

Home

Connect all the agents!

Key Features

Slash Commands

Skills exposed as slash commands across all supported protocols (ACP, AG-UI, OpenCode):

  • Define reusable skill instructions in SKILL.md files
  • Automatically exposed as protocol-native commands
  • Use /skill:my-skill in OpenCode, skill__my-skill tool in AG-UI, or slash commands in ACP

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

Category Representative Packages
Framework & AI pydantic, pydantic-ai-slim, pydantic-graph
Web, Server & Protocols fastapi, mcp, starlette, uvicorn, websockets
Storage & Database sqlalchemy, sqlmodel, alembic
CLI & Configuration typer, rich, yamling, schemez
Async, IO & Execution anyio, anyenv, fsspec, watchfiles
Observability logfire, structlog
Documents & Search docler, searchly, ripgrep-rs, tokonomics
Tooling & Events jinja2, psygnal, evented, slashed, pydocket

See the full dependency list for complete details and version info.

License

MIT License - see LICENSE for details.

Documentation

  • Tutorials — Getting started and learning guides
  • How-To Guides — Task-oriented guides for configuration, servers, and advanced features
  • Reference — CLI commands, core concepts, and API reference
  • Architecture — How and why AgentPool works
  • Decision Records — Architecture Decision Records (ADRs)
  • RFCs — Request for Comments proposals and status
  • Documentation Guide — Where to put new documentation

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)