Skip to content

ACP (Agent Communication Protocol) agents allow integration of external coding agents and AI assistants into the AgentPool pool. These agents run as separate processes and communicate via the ACP protocol.

Overview

AgentPool supports integration with many popular coding agents:

  • Claude Code: Anthropic's Claude-based coding agent
  • Gemini CLI: Google's Gemini-based coding agent
  • Codex: OpenAI Codex-based agent
  • OpenCode: Open-source coding agent
  • Goose: Block's AI coding assistant
  • OpenHands: Open-source AI coding agent
  • FastAgent: Fast and lightweight coding agent
  • Amp: Sourcegraph's AI coding assistant
  • Auggie: AI pair programming assistant
  • Cagent: AI coding agent
  • Kimi: Moonshot's AI coding agent
  • Stakpak: AI infrastructure assistant
  • VTCode: Visual Studio Code AI assistant
  • Mistral: Mistral AI's coding agent

These agents can be configured to work alongside AgentPool agents, enabling hybrid workflows that leverage specialized external tools.

Configuration Reference

Custom ACP Agent Configuration

Configuration for a custom ACP agent with explicit command.

Use this for ACP servers that don't have a preset, or when you need full control over the command and arguments.

Example:

agents:
  custom_agent:
    type: acp
    provider: custom
    command: my-acp-server
    args: ["--mode", "coding"]
    cwd: /path/to/project

Custom ACP Agent Configuration (YAML)
agentname:
  provider: custom  # Discriminator for custom ACP agent.
  command: claude-code-acp  # Command to spawn the ACP server.
  args: []  # Arguments to pass to the command.
  providers: []  # Model providers this agent can use.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

Codex ACP Agent Configuration

Configuration for Zed Codex via ACP.

Provides typed settings for the codex-acp server.

Example:

agents:
  coder:
    type: acp
    provider: codex
    cwd: /path/to/project
    model: o3
    sandbox_permissions:
      - disk-full-read-access

Codex ACP Agent Configuration (YAML)
agentname:
  provider: codex  # Discriminator for Codex ACP agent.
  model: null  # Model override.
  sandbox_permissions: null  # Sandbox permissions.
  shell_environment_policy_inherit: null  # Shell environment inheritance policy.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

OpenCode ACP Agent Configuration

Configuration for OpenCode via ACP.

Provides typed settings for the opencode acp server.

Example:

agents:
  coder:
    type: acp
    provider: opencode
    cwd: /path/to/project
    log_level: INFO

OpenCode ACP Agent Configuration (YAML)
agentname:
  provider: opencode  # Discriminator for OpenCode ACP agent.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

Goose ACP Agent Configuration

Configuration for Goose via ACP.

Block's open-source coding agent.

Example:

agents:
  coder:
    type: acp
    provider: goose
    cwd: /path/to/project

Goose ACP Agent Configuration (YAML)
agentname:
  provider: goose  # Discriminator for Goose ACP agent.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

OpenHands ACP Agent Configuration

Configuration for OpenHands via ACP.

Open-source autonomous AI agent (formerly OpenDevin).

Example:

agents:
  coder:
    type: acp
    provider: openhands
    cwd: /path/to/project

OpenHands ACP Agent Configuration (YAML)
agentname:
  provider: openhands  # Discriminator for OpenHands ACP agent.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

Amp ACP Agent Configuration

Configuration for Amp (AmpCode) via ACP.

ACP bridge adapter that spawns the Amp CLI internally. The amp-acp bridge itself has no CLI configuration options. It spawns amp --no-notifications and bridges the communication to ACP protocol.

Configuration is done via environment variables: - AMP_EXECUTABLE: Path to amp binary (default: 'amp' from PATH) - AMP_PREFER_SYSTEM_PATH: Set to '1' to use system amp instead of npx version - AMP_API_KEY: API key for Amp service - AMP_URL: URL for Amp service (default: https://ampcode.com/) - AMP_SETTINGS_FILE: Path to settings file

For amp CLI configuration (permissions, MCP servers, etc.), use the amp settings file at ~/.config/amp/settings.json

Example:

agents:
  amp:
    type: acp
    provider: amp
    cwd: /path/to/project
    env:
      AMP_EXECUTABLE: /usr/local/bin/amp
      AMP_PREFER_SYSTEM_PATH: "1"
      AMP_API_KEY: your-api-key

Amp ACP Agent Configuration (YAML)
agentname:
  provider: amp  # Discriminator for Amp ACP agent.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

Cagent ACP Agent Configuration

Configuration for Docker cagent via ACP.

Agent Builder and Runtime by Docker Engineering.

Example:

agents:
  cagent:
    type: acp
    provider: cagent
    cwd: /path/to/project
    agent_file: ./agent.yaml
    code_mode_tools: true
    working_dir: /path/to/work

Cagent ACP Agent Configuration (YAML)
agentname:
  provider: cagent  # Discriminator for Docker cagent ACP agent.
  agent_file: null  # Agent configuration file or registry reference.
  code_mode_tools: false  # Provide a single tool to call other tools via Javascript.
  env_from_file: null  # Set environment variables from file.
  models_gateway: null  # Set the models gateway address.
  working_dir: null  # Set the working directory for the session.
  debug: false  # Enable debug logging.
  otel: false  # Enable OpenTelemetry tracing.
  log_file: null  # Path to debug log file.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

Stakpak ACP Agent Configuration

Configuration for Stakpak Agent via ACP.

Terminal-native DevOps Agent in Rust with enterprise-grade security.

Example:

agents:
  stakpak:
    type: acp
    provider: stakpak
    cwd: /path/to/project
    model: smart
    workdir: /path/to/work
    verbose: true

Stakpak ACP Agent Configuration (YAML)
agentname:
  provider: stakpak  # Discriminator for Stakpak ACP agent.
  workdir: null  # Run the agent in a specific directory.
  verbose: false  # Enable verbose output.
  debug: false  # Enable debug output.
  disable_secret_redaction: false  # Disable secret redaction (WARNING: prints secrets to console).
  privacy_mode: false  # Enable privacy mode to redact private data.
  study_mode: false  # Enable study mode to use the agent as a study assistant.
  index_big_project: false  # Allow indexing of large projects (more than 500 supported files).
  enable_slack_tools: false  # Enable Slack tools (experimental).
  disable_mcp_mtls: false  # Disable mTLS (WARNING: uses unencrypted HTTP communication).
  enable_subagents: false  # Enable subagents.
  subagent_config: null  # Subagent configuration file subagents.toml.
  allowed_tools: null  # Allow only the specified tools in the agent's context.
  profile: null  # Configuration profile to use.
  model: null  # Choose agent model on startup.
  config: null  # Custom path to config file.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

Mistral ACP Agent Configuration

Configuration for Mistral Agent via ACP.

Example:

agents:
  coder:
    type: acp
    provider: mistral
    cwd: /path/to/project

Mistral ACP Agent Configuration (YAML)
agentname:
  provider: mistral  # Discriminator for Mistral ACP agent.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

VTCode ACP Agent Configuration

Configuration for VT Code via ACP.

Rust-based terminal coding agent with semantic code intelligence.

Example:

agents:
  vtcode:
    type: acp
    provider: vtcode
    cwd: /path/to/project
    model: gemini-2.5-flash-preview-05-20
    model_provider: gemini
    workspace: /path/to/workspace

VTCode ACP Agent Configuration (YAML)
agentname:
  provider: vtcode  # Discriminator for VT Code ACP agent.
  model: null  # LLM Model ID.
  model_provider: null  # LLM Provider.
  api_key_env: null  # API key environment variable.
  workspace: null  # Workspace root directory for file operations.
  enable_tree_sitter: false  # Enable tree-sitter code analysis.
  performance_monitoring: false  # Enable performance monitoring.
  research_preview: false  # Enable research-preview features.
  security_level: null  # Security level for tool execution.
  show_file_diffs: false  # Show diffs for file changes in chat interface.
  max_concurrent_ops: null  # Maximum concurrent async operations.
  api_rate_limit: null  # Maximum API requests per minute.
  max_tool_calls: null  # Maximum tool calls per session.
  config: null  # Configuration file path.
  skip_confirmations: false  # Skip safety confirmations.
  full_auto: false  # Enable full-auto mode (no interaction).
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

Cursor ACP Agent Configuration

Configuration for Cursor via ACP.

Cursor CLI agent with filesystem and terminal capabilities. See https://github.com/blowmage/cursor-agent-acp-npm

Example:

agents:
  coder:
    type: acp
    provider: cursor
    cwd: /path/to/project
    session_dir: ~/.cursor-sessions
    timeout: 30000

Cursor ACP Agent Configuration (YAML)
agentname:
  provider: cursor  # Discriminator for Cursor ACP agent.
  config: null  # Path to configuration file.
  log_level: null  # Logging level.
  log_file: null  # Log file path (logs to stderr by default).
  session_dir: null  # Session storage directory (default: ~/.cursor-sessions).
  timeout: null  # Cursor-agent timeout in milliseconds (default: 30000).
  retries: null  # Number of retries for cursor-agent commands (default: 3).
  max_sessions: null  # Maximum number of concurrent sessions (default: 100).
  session_timeout: null  # Session timeout in milliseconds (default: 3600000).
  no_filesystem: false  # Disable filesystem tools.
  no_terminal: false  # Disable terminal tools.
  max_processes: null  # Maximum number of terminal processes (default: 5).
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

Claude ACP Agent Configuration

Configuration for Claude Code via ACP.

Provides typed settings for the claude-code-acp server.

Note: If ANTHROPIC_API_KEY is set in your environment, Claude Code will use it directly instead of the subscription. To force subscription usage, set env: {"ANTHROPIC_API_KEY": ""} in the config.

Example:

agents:
  coder:
    type: acp
    provider: claude
    cwd: /path/to/project
    model: sonnet
    permission_mode: acceptEdits
    env:
      ANTHROPIC_API_KEY: ""  # Use subscription instead of API key
    allowed_tools:
      - Read
      - Write
      - Bash(git:)

Claude ACP Agent Configuration (YAML)
agentname:
  provider: claude  # Discriminator for Claude ACP agent.
  include_builtin_system_prompt: true  # If True, system_prompt is appended to Claude's builtin prompt.
  model: null  # Model override. Use alias ('sonnet', 'opus') or full name.
  permission_mode: null  # Permission handling mode for tool execution.
  allowed_tools: null  # Whitelist of allowed tools (e.g., ['Read', 'Write', 'Bash(git:)']).
  disallowed_tools: null  # Blacklist of disallowed tools.
  strict_mcp_config: false  # Only use MCP servers from mcp_config, ignoring all other configs.
  add_dir: null  # Additional directories to allow tool access to.
  tools: null  # Available tools from built-in set. Empty list disables all tools.
  fallback_model: null  # Fallback model when default is overloaded.
  dangerously_skip_permissions: false  # Bypass all permission checks. Only for sandboxed environments.
  output_type: null  # Structured output configuration. Generates --output-format and --json-schema.
  toolsets: []  # Toolsets to expose to this ACP agent via MCP bridge.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

Gemini ACP Agent Configuration

Configuration for Gemini CLI via ACP.

Provides typed settings for the gemini CLI with ACP support.

Example:

agents:
  coder:
    type: acp
    provider: gemini
    cwd: /path/to/project
    model: gemini-2.5-pro
    approval_mode: auto_edit
    allowed_tools:
      - read_file
      - write_file
      - terminal

Gemini ACP Agent Configuration (YAML)
agentname:
  provider: gemini  # Discriminator for Gemini ACP agent.
  model: null  # Model override.
  approval_mode: null  # Approval mode for tool execution.
  sandbox: false  # Run in sandbox mode.
  yolo: false  # Automatically accept all actions.
  allowed_tools: null  # Tools allowed to run without confirmation.
  allowed_mcp_server_names: null  # Allowed MCP server names.
  extensions: null  # List of extensions to use. If not provided, all are used.
  include_directories: null  # Additional directories to include in the workspace.
  output_format: null  # Output format.
  toolsets: []  # Toolsets to expose to this ACP agent via MCP bridge.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

FastAgent ACP Agent Configuration

Configuration for fast-agent via ACP.

Robust LLM agent with comprehensive MCP support.

Supports MCP server integration via: - Internal bridge: Use toolsets field to expose agentpool toolsets - External servers: Use url field to connect to external MCP servers - Skills: Use skills_dir to specify custom skills directory

Example:

agents:
  coder:
    type: acp
    provider: fast-agent
    cwd: /path/to/project
    model: claude-3.5-sonnet-20241022
    toolsets:
      - type: subagent
      - type: agent_management
    skills_dir: ./my-skills

FastAgent ACP Agent Configuration (YAML)
agentname:
  provider: fast-agent  # Discriminator for fast-agent ACP agent.
  model: anthropic.claude-3-7-sonnet-latest  # Model to use.
  shell_access: false  # Enable shell and file access (-x flag).
  skills_dir: null  # Override the default skills directory for custom agent skills.
  url: null  # MCP server URL to connect to. Can also be used with internal toolsets bridge.
  auth: null  # Authentication token for MCP server.
  toolsets: []  # Toolsets to expose to this ACP agent via MCP bridge.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

Auggie ACP Agent Configuration

Configuration for Auggie (Augment Code) via ACP.

AI agent that brings Augment Code's power to the terminal.

Example:

agents:
  auggie:
    type: acp
    provider: auggie
    cwd: /path/to/project
    model: auggie-sonnet
    workspace_root: /path/to/workspace
    rules: [rules.md]
    shell: bash

Auggie ACP Agent Configuration (YAML)
agentname:
  provider: auggie  # Discriminator for Auggie ACP agent.
  model: null  # Model to use.
  workspace_root: null  # Workspace root (auto-detects git root if absent).
  rules: null  # Additional rules files.
  augment_cache_dir: null  # Cache directory (default: ~/.augment).
  retry_timeout: null  # Timeout for rate-limit retries (seconds).
  allow_indexing: false  # Skip the indexing confirmation screen in interactive mode.
  augment_token_file: null  # Path to file containing authentication token.
  github_api_token: null  # Path to file containing GitHub API token.
  permission: null  # Tool permissions with 'tool-name:policy' format.
  remove_tool: null  # Remove specific tools by name.
  shell: null  # Select shell.
  startup_script: null  # Inline startup script to run before each command.
  startup_script_file: null  # Load startup script from file.
  toolsets: []  # Toolsets to expose to this ACP agent via MCP bridge.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

Kimi ACP Agent Configuration

Configuration for Kimi CLI via ACP.

Command-line agent from Moonshot AI with ACP support.

Example:

agents:
  kimi:
    type: acp
    provider: kimi
    cwd: /path/to/project
    model: kimi-v1
    work_dir: /path/to/work
    yolo: true

Kimi ACP Agent Configuration (YAML)
agentname:
  provider: kimi  # Discriminator for Kimi CLI ACP agent.
  verbose: false  # Print verbose information.
  debug: false  # Log debug information.
  agent_file: null  # Custom agent specification file.
  model: null  # LLM model to use.
  work_dir: null  # Working directory for the agent.
  yolo: false  # Automatically approve all actions.
  thinking: null  # Enable thinking mode if supported.
  toolsets: []  # Toolsets to expose to this ACP agent via MCP bridge.
  type: acp  # Top-level discriminator for agent type.
  cwd: null  # Working directory for the session.
  env: {}  # Environment variables to set.
  execution_environment: local  # Execution environment config for the agent's own toolsets.
  client_execution_environment: null  # Execution environment for handling subprocess requests (filesystem, terminals).
  allow_file_operations: true  # Whether to allow file read/write operations.
  allow_terminal: true  # Whether to allow terminal operations.
  requires_tool_confirmation: always  # Whether to automatically grant all permission requests.
  system_prompt: null  # System prompt for the agent. Can be a string or list of strings/prompt configs.
  name: null  # Identifier for the node. Set from dict key, not from YAML.
  display_name: null  # Human-readable display name for the node.
  description: null  # Optional description of the agent / team.
  triggers: []  # Event sources that activate this agent / team
  connections: []  # Targets to forward results to.
  mcp_servers: []  # List of MCP server configurations:
  input_provider: null  # Provider for human-input-handling.
  event_handlers: []  # Event handlers for processing agent stream events.

Configuration Notes

  • ACP agents run as separate processes managed by AgentPool
  • Each agent type has specific configuration options for its underlying tool
  • Model selection depends on what the external agent supports
  • MCP servers can be attached to capable agents for extended functionality
  • Environment variables can be used for API keys and secrets
  • Agents are started on-demand and terminated when the pool closes