Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

模型: openai/gpt-5.4
生成日期: 2026-04-01
书名: Claude Code VS OpenCode:架构、设计与未来
章节: 第4章 — 工具系统设计
Token用量: 约 13,500 input + 2,300 output

4.2 共有工具清单

尽管 OpenCode、Claude Code 与 OMO 的定位不同,但三者已经收敛出一套相当稳定的 common tool surface。它们都围绕六类能力展开:文件操作、搜索、执行、网络、组合、交互。这个共性非常重要,因为它说明 2026 年的 coding agent 已经出现了一套事实上的“最小充分工具集”。

第一类是 文件操作。OpenCode 提供 readwriteeditmultiedit;Claude Code 对应 FileReadToolFileWriteToolFileEditToolNotebookEditTool;OMO 一方面沿用宿主能力,另一方面补充 hashline-edit 之类更精细的编辑工具。其核心目标一致:让模型能以受控方式读取局部内容、修改目标片段、写入新文件。这里的关键不是“能写文件”,而是“能在最小上下文成本下写对文件”。

第二类是 搜索。OpenCode 有 grepglobcodesearch;Claude Code 有 GrepToolGlobToolLSPToolToolSearchTool;OMO 则扩展出 ast_grep_searchast_grep_replace、会话搜索与 session search。grep/glob 解决的是文本与路径层面的定位,codesearch 和 AST-Grep 则进一步进入 syntax-aware 或 repository-aware 搜索。所谓 AST(Abstract Syntax Tree,抽象语法树),可以简单理解为“把源码从字符序列提升为语法结构树”,因此 AST 搜索比普通字符串搜索更接近“程序结构理解”。

第三类是 执行。OpenCode 的代表是 bashbatch;Claude Code 有 BashToolPowerShellToolREPLTool;OMO 除常规执行外,还引入 interactive-bash,借助 PTY/Tmux 管理长生命周期交互命令。PTY(Pseudo-Terminal,伪终端)可理解为“给程序模拟一个真实终端会话”,因此它适用于 vimhtop、交互式 REPL 这类一次命令无法完成的场景。

第四类是 网络。OpenCode 提供 webfetchwebsearch;Claude Code 对应 WebFetchToolWebSearchTool、浏览器或 MCP 网络能力;OMO 则在此基础上增加 google_searchwebsearch_web_search_exa 等封装。这里的 common pattern 是:一个工具负责定向抓取 URL,另一个工具负责开放式搜索,再由模型决定何时直接读网页、何时先搜再抓。

第五类是 组合。OpenCode 用 taskskilltodoplan_enter/exit 形成基本编排;Claude Code 用 AgentTool、任务工具族、TodoWriteTool、skill 体系形成更产品化的 orchestration layer;OMO 则把这一层推到极致,加入 call_omo_agent、background task、session manager、skill-MCP、slash command 等工具。它说明多智能体系统真正强大的地方,往往不是单个工具,而是工具之间能不能彼此调用、彼此分工。

第六类是 交互。OpenCode 有 question,Claude Code 有 AskUserQuestionTool 与消息类工具,OMO 也保留提问、通知、状态汇报相关能力。其意义在于,Agent 不是全自动脚本,而是需要在不确定性高时把控制权还给用户。

下面给出一个简化映射表:

能力类别OpenCodeClaude CodeOMO
文件读取readFileReadToolread / 封装读取
文件写入writeFileWriteToolwrite / 守卫增强
文件编辑edit / multieditFileEditTool / NotebookEditToolhashline-edit + 宿主编辑
路径搜索globGlobToolglob
文本搜索grepGrepToolgrep
代码/结构搜索codesearch / lspLSPTool / ToolSearchToolast_grep_search / LSP工具
命令执行bash / batchBashTool / PowerShellTool / REPLToolbash / interactive-bash
网页抓取webfetchWebFetchToolwebfetch / 网络扩展
网络搜索websearchWebSearchToolgoogle_search / Exa 封装
子任务/子代理taskAgentTool / Task toolscall_omo_agent / background task
技能skillSkillTool / skill discoveryskill / skill_mcp
用户提问questionAskUserQuestionToolquestion / 相关交互工具

从这张表可以看出,三者并不是“工具完全不同”,而是共享一套核心骨架,再在搜索深度、编排能力、交互复杂度上分化。OpenCode 给出了干净的最小集,Claude Code 给出了工业级高覆盖实现,OMO 则在这个共同骨架之上发展出更激进的 orchestration superstructure。这一共享清单,本身就是当代 Agent 设计共识的缩影。