跳转到内容

工具

工具

Oh My OpenAgent 为你的代理提供世界级的工具。LSP、AST-Grep、Tmux、MCP — 真正集成的,而不是拼凑在一起的。

Hashline(哈希锚定编辑工具)

线束问题是真实存在的。大多数代理失败不是模型的问题 — 而是编辑工具的问题。

“这些工具没有一个给模型提供稳定的、可验证的行标识符来标记它想要更改的行……它们都依赖模型重现它之前看到的内容。当它做不到时 — 而且它经常做不到 — 用户就会责怪模型。”

Can Bölük, The Harness Problem

oh-my-pi 启发,Hashline 为每一行标记内容哈希:

11#VK| function hello() {
22#XJ|   return "world";
33#MB| }

代理通过引用这些标签进行编辑。如果文件自上次读取后发生了变化,哈希将不匹配,编辑会在损坏之前被拒绝。无需重现空白字符。零过时行错误。

影响: Grok Code Fast 1 的成功率从 6.7% → 68.3% — 仅仅通过更换编辑工具就实现了。

IntentGate

在分类或行动之前分析用户的真实意图。不再有字面误解。

当你输入请求时,IntentGate:

  1. 解析你真正的意思(而不只是你说了什么)
  2. 分类任务类型
  3. 路由到合适的代理

这防止了代理过于字面地理解指令并产生意外结果。

LSP 工具

为每个代理提供 IDE 精确度:

工具功能
lsp_rename安全的跨文件符号重命名
lsp_goto_definition跳转到符号定义
lsp_find_references查找符号的所有引用
lsp_diagnostics构建前诊断检查

这些为代理提供了与你的 IDE 相同的代码智能 — 类型安全的重构、精确的导航和实时错误检测。

AST-Grep

跨 25 种语言的模式感知代码搜索和重写。

与基于文本的搜索不同,AST-Grep 理解代码结构:

  • 按语法模式搜索,而非字符串匹配
  • 重写代码时保留结构
  • 支持 TypeScript、Python、Go、Rust、Java 等 20 多种语言

示例模式:

  • 查找所有使用 useState 的 React 组件
  • 查找所有没有错误处理的异步函数
  • 批量替换已弃用的 API 调用

Tmux 集成

完整的交互式终端。REPL、调试器、TUI 应用。你的代理保持在会话中。

Tmux 支持:

  • 运行长时间进程(开发服务器、测试监听器)
  • 与 REPL 交互(Node.js、Python、IRB)
  • 使用调试器(gdb、pdb、node —inspect)
  • 运行 TUI 应用(vim、htop、lazygit)
  • 代理在多次交互间保持会话状态

嵌入技能的 MCP

MCP 服务器会消耗你的上下文预算。Oh My OpenAgent 解决了这个问题。

技能自带 MCP 服务器:

  • 按需启动 — 仅在技能激活时
  • 任务范围限定 — 只暴露相关工具
  • 完成后消失 — 上下文窗口保持干净

内置技能

技能功能
playwright浏览器自动化 — 截图、E2E 测试、网页抓取
git-master原子提交、rebase 精细操作、整洁的 git 历史
frontend-ui-ux设计优先的 UI 实现

自定义技能

添加你自己的技能:

  • 项目级:.opencode/skills/*/SKILL.md
  • 用户级:~/.config/opencode/skills/*/SKILL.md

每个技能包含:

  • 领域调优的系统指令
  • 嵌入的 MCP 服务器定义
  • 范围限定的权限

内置 MCP

三个 MCP 服务器始终在线:

MCP基于功能
websearchExa网络搜索 — 查找相关代码、文档、解决方案
context7Context7官方文档查询 — 获取库文档到上下文中
grep_appGrep.appGitHub 代码搜索 — 搜索公共仓库

这些默认配置,无需设置。它们为代理提供实时访问网络信息、文档和代码搜索的能力。

后续步骤

  • 代理系统 — 代理如何使用这些工具
  • 功能 — Ralph Loop 和其他功能
  • 配置 — 配置 MCP、LSP 和工具行为