工具
工具
Oh My OpenAgent 为你的代理提供世界级的工具。LSP、AST-Grep、Tmux、MCP — 真正集成的,而不是拼凑在一起的。
Hashline(哈希锚定编辑工具)
线束问题是真实存在的。大多数代理失败不是模型的问题 — 而是编辑工具的问题。
“这些工具没有一个给模型提供稳定的、可验证的行标识符来标记它想要更改的行……它们都依赖模型重现它之前看到的内容。当它做不到时 — 而且它经常做不到 — 用户就会责怪模型。”
受 oh-my-pi 启发,Hashline 为每一行标记内容哈希:
11#VK| function hello() {
22#XJ| return "world";
33#MB| }
代理通过引用这些标签进行编辑。如果文件自上次读取后发生了变化,哈希将不匹配,编辑会在损坏之前被拒绝。无需重现空白字符。零过时行错误。
影响: Grok Code Fast 1 的成功率从 6.7% → 68.3% — 仅仅通过更换编辑工具就实现了。
IntentGate
在分类或行动之前分析用户的真实意图。不再有字面误解。
当你输入请求时,IntentGate:
- 解析你真正的意思(而不只是你说了什么)
- 分类任务类型
- 路由到合适的代理
这防止了代理过于字面地理解指令并产生意外结果。
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 | 基于 | 功能 |
|---|---|---|
websearch | Exa | 网络搜索 — 查找相关代码、文档、解决方案 |
context7 | Context7 | 官方文档查询 — 获取库文档到上下文中 |
grep_app | Grep.app | GitHub 代码搜索 — 搜索公共仓库 |
这些默认配置,无需设置。它们为代理提供实时访问网络信息、文档和代码搜索的能力。