文档
推荐给好友,福利领不停!好友同步开通最高 1000 万词元额度 · 后续消费分佣最高 30%。
+50万 Token生成链接

工具系统

按当前工具注册表梳理内置工具、条件工具、桌面自动化、MCP 工具和权限边界。

工具从哪里来

CrabCode 的工具池由运行时装配,不是写死在文档里。当前源码里可以确认的来源有五类:

来源说明
内置工具文件读写、编辑、Shell、Web、任务、计划、技能、记忆、终端捕获等基础能力
条件工具由 feature flag、环境变量、平台或运行模式启用,例如 LSP、工作树、桌面自动化、cron、PowerShell
MCP 工具外部 MCP server 暴露的 tools、resources、prompts
插件/技能插件可以注册 MCP server、slash command、hooks、skills;技能由模型按任务触发
GUI/App Server 能力桌面端通过 App Server 暴露浏览器、cron、插件、账号、记忆、本地模型等方法

工具池最终还会经过 allowlist、denylist、权限模式、沙盒、MCP 配置和 --bare 等规则过滤。

默认内置工具

工具用途
Agent / TaskOutput启动子智能体、读取子任务输出
Bash执行 shell 命令;受权限、沙盒和 allow/deny 规则约束
Read读取文件
Edit精确修改已有文件
Write新建或覆盖文件
NotebookEdit修改 notebook 单元
WebFetch抓取 URL 内容
WebSearch搜索互联网内容
TodoWrite维护当前任务列表
ExitPlanMode / EnterPlanMode在计划模式和执行模式之间切换
AskUserQuestion在需要人类输入时向用户提问
Skill发现并调用本地技能
TaskStop停止后台任务或子任务
ListMcpResources / ReadMcpResource列出并读取 MCP resources

如果运行时没有启用内嵌搜索实现,还会补上 GlobGrep 作为文件搜索工具。

常见条件工具

工具或工具组启用条件用途
ToolSearch可用工具搜索开关启用在大量工具中搜索匹配工具
TerminalCapture运行环境支持终端捕获读取当前终端输出
LSPENABLE_LSP_TOOL 等开关启用走语言服务做符号、诊断、跳转类能力
EnterWorktree / ExitWorktree工作树模式启用进入或退出隔离 worktree
SendMessage / ListPeers / TeamCreate / TeamDelete协同或 agent swarm 能力启用多智能体或协作消息
CronCreate / CronDelete / CronListcron 工具开关启用在模型工具层创建、删除、列出自动化任务
RemoteTrigger远程触发能力启用触发远程工作流
Monitor / Brief对应运行模式可用监控状态或切换简洁输出
SendUserFile / PushNotification / SubscribePR对应产品能力可用发送文件、推送通知、订阅 PR
PowerShellWindows/PowerShell 能力启用执行 PowerShell 命令
CtxInspect / Snip调试或上下文工具启用检查上下文、截取片段

某些内部、测试或灰度工具不会在普通用户文档中承诺稳定 API。

桌面自动化工具

当桌面自动化能力可用时,工具池会加入一组 GUI 操作工具:

工具用途
ComputerObserve观察当前桌面/应用状态
ComputerPermissions检查或请求桌面自动化权限
ComputerMove移动鼠标
ComputerClick / ComputerDoubleClick点击或双击
ComputerDrag拖拽
ComputerScroll滚动
ComputerKey / ComputerHotkey按键或组合键
ComputerTypeText输入文本

这组工具适合本地应用操作、GUI 验证和需要真实窗口状态的任务。它们通常比纯 shell 更敏感,因此审批和系统权限更重要。

--bare 极简模式

--bare 会跳过 hooks、LSP、插件同步、自动记忆等额外能力,并把工具池压到最小。普通会话通常只保留 BashReadEdit;REPL 模式会替换为对应的 REPL 工具。这个模式适合受控脚本、最小权限排障或你只想让 CrabCode 做非常窄的文件/命令操作时使用。

MCP 工具

MCP server 可以动态暴露 tools 和 resources。CrabCode 会把 MCP 工具合并进工具池,再按名称冲突、权限和配置规则过滤。管理命令见 MCPCLI 参考

常见操作:

bash
crabcode mcp list
crabcode mcp add <name> <command> [args...]
crabcode mcp add-json <name> '{"command":"node","args":["server.js"]}'
crabcode mcp get <name>
crabcode mcp remove <name>
crabcode mcp list
crabcode mcp add <name> <command> [args...]
crabcode mcp add-json <name> '{"command":"node","args":["server.js"]}'
crabcode mcp get <name>
crabcode mcp remove <name>

权限边界

工具执行同时受以下规则约束:

规则作用
--permission-mode / /permissions决定默认审批策略和允许/拒绝规则
--allowedTools / --disallowedTools启动时设置工具白名单或黑名单
--tools显式指定可用工具集,"" 可禁用全部工具,default 使用默认集合
Sandbox限制写盘、网络和命令执行边界
MCP 配置控制外部 server 是否加载、工具是否可见
插件目录决定本次会话能加载哪些插件/技能

更多细节看 权限模式Sandbox

相关