跳到主要内容

Toolsets Reference

Toolsets are named bundles of tools that control what the agent can do. They're the primary mechanism for configuring tool availability per platform, per session, or per task.

How Toolsets Work

Every tool belongs to exactly one toolset. When you enable a toolset, all tools in that bundle become available to the agent. Toolsets come in three kinds:

  • Core — A single logical group of related tools (e.g., file bundles read_file, write_file, patch, search_files)
  • Composite — Combines multiple core toolsets for a common scenario (e.g., debugging bundles file, terminal, and web tools)
  • Platform — A complete tool configuration for a specific deployment context (e.g., kopi-cli is the default for interactive CLI sessions)

Configuring Toolsets

Per-session (CLI)

kopi chat --toolsets web,file,terminal
kopi chat --toolsets debugging # composite — expands to file + terminal + web
kopi chat --toolsets all # everything

Per-platform (config.yaml)

toolsets:
- kopi-cli # default for CLI
# - kopi-telegram # override for Telegram gateway

Interactive management

kopi tools                            # curses UI to enable/disable per platform

Or in-session:

/tools list
/tools disable browser
/tools enable rl

Core Toolsets

ToolsetToolsPurpose
browserbrowser_back, browser_cdp, browser_click, browser_console, browser_dialog, browser_get_images, browser_navigate, browser_press, browser_scroll, browser_snapshot, browser_type, browser_vision, web_searchCore browser automation. Includes web_search as a fallback for quick lookups. browser_cdp and browser_dialog are gated at runtime — registered only when a CDP endpoint is reachable at session start (via /browser connect, browser.cdp_url config, Browserbase, or Camofox). browser_dialog works together with the pending_dialogs and frame_tree fields that browser_snapshot adds when a CDP supervisor is attached.
clarifyclarifyAsk the user a question when the agent needs clarification.
code_executionexecute_codeRun Python scripts that call Kopi tools programmatically.
cronjobcronjobSchedule and manage recurring tasks.
debuggingcomposite (file + terminal + web)Debug bundle — file, process/terminal, web extract/search.
delegationdelegate_taskSpawn isolated subagent instances for parallel work.
discorddiscordCore Discord text/embed/DM actions (gateway-only). Active on the kopi-discord toolset.
discord_admindiscord_adminDiscord moderation (bans, role changes, channel management). Active on the kopi-discord toolset; requires the bot to hold the relevant Discord permissions.
feishu_docfeishu_doc_readRead Feishu/Lark document content. Used by the Feishu document-comment intelligent-reply handler.
feishu_drivefeishu_drive_add_comment, feishu_drive_list_comments, feishu_drive_list_comment_replies, feishu_drive_reply_commentFeishu/Lark drive comment operations. Scoped to the comment agent; not exposed on kopi-cli or other messaging toolsets.
filepatch, read_file, search_files, write_fileFile reading, writing, searching, and editing.
homeassistantha_call_service, ha_get_state, ha_list_entities, ha_list_servicesSmart home control via Home Assistant. Only available when HASS_TOKEN is set.
computer_usecomputer_useBackground macOS desktop control via cua-driver — does not steal cursor/focus. Works with any tool-capable model. macOS only; requires cua-driver on $PATH.
image_genimage_generateText-to-image generation via FAL.ai (with opt-in OpenAI / xAI backends).
kanbankanban_block, kanban_comment, kanban_complete, kanban_create, kanban_heartbeat, kanban_link, kanban_showMulti-agent coordination tools — only registered when the agent is spawned by the kanban dispatcher (KOPI_KANBAN_TASK env set). Lets workers mark tasks done with structured handoffs, block for human input, heartbeat during long ops, comment on threads, and (for orchestrators) fan out into child tasks.
memorymemoryPersistent cross-session memory management.
messagingsend_messageSend messages to other platforms (Telegram, Discord, etc.) from within a session.
moamixture_of_agentsMulti-model consensus via Mixture of Agents.
rlrl_check_status, rl_edit_config, rl_get_current_config, rl_get_results, rl_list_environments, rl_list_runs, rl_select_environment, rl_start_training, rl_stop_training, rl_test_inferenceRL training environment management (Atropos).
safeimage_generate, vision_analyze, web_extract, web_search (via includes)Read-only research + media generation. No file writes, no terminal, no code execution.
searchweb_searchWeb search only (without extract).
session_searchsession_searchSearch past conversation sessions.
skillsskill_manage, skill_view, skills_listSkill CRUD and browsing.
spotifyspotify_albums, spotify_devices, spotify_library, spotify_playback, spotify_playlists, spotify_queue, spotify_searchNative Spotify control (playback, queue, search, playlists, albums, library). Registered by the bundled spotify plugin.
terminalprocess, terminalShell command execution and background process management.
todotodoTask list management within a session.
ttstext_to_speechText-to-speech audio generation.
visionvision_analyzeImage analysis via vision-capable models.
videovideo_analyzeVideo analysis and understanding tools (opt-in, not in the default toolset — add explicitly via --toolsets).
webweb_extract, web_searchWeb search and page content extraction.
yuanbaoyb_query_group_info, yb_query_group_members, yb_search_sticker, yb_send_dm, yb_send_stickerYuanbao DM/group actions and sticker search. Registered only on kopi-yuanbao.

Platform Toolsets

Platform toolsets define the complete tool configuration for a deployment target. Most messaging platforms use the same set as kopi-cli:

ToolsetDifferences from kopi-cli
kopi-cliFull toolset — the default for interactive CLI sessions. Includes file, terminal, web, browser, memory, skills, vision, image_gen, todo, tts, delegation, code_execution, cronjob, session_search, clarify, and safe (read-only) bundles plus the standard messaging tools.
kopi-acpDrops clarify, cronjob, image_generate, send_message, text_to_speech, and all four Home Assistant tools. Focused on coding tasks in IDE context.
kopi-api-serverDrops clarify, send_message, and text_to_speech. Keeps everything else — suitable for programmatic access where user interaction isn't possible.
kopi-cronSame as kopi-cli.
kopi-telegramSame as kopi-cli.
kopi-discordAdds discord and discord_admin on top of kopi-cli.
kopi-slackSame as kopi-cli.
kopi-whatsappSame as kopi-cli.
kopi-signalSame as kopi-cli.
kopi-matrixSame as kopi-cli.
kopi-mattermostSame as kopi-cli.
kopi-emailSame as kopi-cli.
kopi-smsSame as kopi-cli.
kopi-bluebubblesSame as kopi-cli.
kopi-dingtalkSame as kopi-cli.
kopi-feishuAdds the five feishu_doc_* / feishu_drive_* tools (only used by the document-comment handler, not the regular chat adapter).
kopi-qqbotSame as kopi-cli.
kopi-wecomSame as kopi-cli.
kopi-wecom-callbackSame as kopi-cli.
kopi-weixinSame as kopi-cli.
kopi-yuanbaoAdds the five yb_* tools (DM/group/sticker) on top of kopi-cli.
kopi-homeassistantSame as kopi-cli (the Home Assistant tools are already present by default and activate when HASS_TOKEN is set).
kopi-webhookSame as kopi-cli.
kopi-gatewayInternal gateway orchestrator toolset — union of every kopi-<platform> toolset; used when the gateway needs to accept any message source.

Dynamic Toolsets

MCP server toolsets

Each configured MCP server generates a mcp-<server> toolset at runtime. For example, if you configure a github MCP server, a mcp-github toolset is created containing all tools that server exposes.

# config.yaml
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]

This creates a mcp-github toolset you can reference in --toolsets or platform configs.

Plugin toolsets

Plugins can register their own toolsets via ctx.register_tool() during plugin initialization. These appear alongside built-in toolsets and can be enabled/disabled the same way.

Custom toolsets

Define custom toolsets in config.yaml to create project-specific bundles:

toolsets:
- kopi-cli
custom_toolsets:
data-science:
- file
- terminal
- code_execution
- web
- vision

Wildcards

  • all or * — expands to every registered toolset (built-in + dynamic + plugin)

Relationship to kopi tools

The kopi tools command provides a curses-based UI for toggling individual tools on or off per platform. This operates at the tool level (finer than toolsets) and persists to config.yaml. Disabled tools are filtered out even if their toolset is enabled.

See also: Tools Reference for the complete list of individual tools and their parameters.