工具技能(SKILLS) :oh-my-pi (omp) · 技能详解与使用场景
🔑 一句话定位
omp = 把 IDE 能力直接接进 AI Agent 的编程助手——不是”AI帮你写代码”,而是”AI拥有你IDE的一切能力”
📊 核心数据
| 维度 | 数量 | 说明 |
|---|---|---|
| 模型供应商 | 40+ | Anthropic/OpenAI/Google/xAI/Mistral + Coding Plans + Local |
| 内置工具 | 32 | 文件6 + 运行时3 + 代码智能2 + 协调5 + 外部5 + 记忆5 + 杂项6 |
| LSP操作 | 14 | references/rename/definition/hover/diagnostics/code actions… |
| DAP调试 | 28 | breakpoints/step/threads/stack/variables/evaluate… |
| Rust核心 | ~55k行 | ripgrep/glob/find/brush/bash/image/tokens 全链接进进程 |
| 核心能力 | 20 | 详见下方 |
🧠 20大核心能力速览
| # | 能力 | 一句话 | 核心工具 |
|---|---|---|---|
| 01 | 双核代码执行 | Python+JS双内核+工具回调桥 | eval |
| 02 | LSP接入每次写入 | 重命名自动更新所有引用 | lsp |
| 03 | 驱动真实调试器 | lldb/dlv/debugpy真debug | debug |
| 04 | 时间旅行流式规则 | 流式中断→注入规则→重试 | TTSR |
| 05 | 一等子Agent | 隔离worktree并行→typed结果 | task |
| 06 | Advisor监督 | 第二模型每轮review | --advisor |
| 07 | 实时协作 | 分享链接+QR,队友加入 | /collab |
| 08 | Web+PDF | 14供应商+arxiv论文直接读 | web_search+read |
| 09 | 原生实现 | ripgrep/bash进进程,Win原生 | native |
| 10 | 代码Review | P0-P3优先级+Verdict | /review |
| 11 | Hashline编辑 | 内容哈希锚定,省61%token | edit |
| 12 | GitHub即文件系统 | PR/Issue是路径,read统一接口 | pr:// issue:// |
| 13 | Hindsight记忆 | 跨session记住项目知识 | retain/recall/reflect |
| 14 | ACP编辑器集成 | Zed内直接驱动Agent | ACP |
| 15 | 继承其他Agent配置 | Cursor/Cline/Codex/Copilot 8种格式 | config |
| 16 | 原子化commit | 按依赖拆分→循环检测拒绝 | omp commit |
| 17 | 12种内部URI | pr://issue://agent://skill://rule://… | URI schemes |
| 18 | 冲突一行URL | conflict://N → @theirs/@ours | conflict:// |
| 19 | AST预览→接受 | 结构化替换→预览→确认→原子写入 | ast_edit |
| 20 | 真浏览器+Electron | Stealth反检测+驱动Slack | browser |
🥧 Oh My Pi · 内置IDE的AI编程智能体详解
20大核心能力 · 32内置工具 · 14 LSP操作 · 28 DAP操作 · 40+模型供应商 · ~55k行Rust核心
Oh My Pi (omp):一个把IDE完整接入的AI编程智能体——不只是写代码,而是理解代码结构(LSP)、驱动调试器(DAP)、并行子智能体、实时协作、浏览器自动化、跨会话记忆,开箱即用,全平台支持
🥧 20大核心能力详解
01
🔄 代码执行+工具回调
持久化Python和Bun worker,任一内核可回调agent工具(read/search/task)。一个cell里Python读CSV+JS画图表,无需离开。
Runtime
02
📡 LSP接入每次写入
rename走workspace/willRenameFiles,re-exports/barrel files/aliased imports自动更新。IDE知道的,agent也知道。
Code Intelligence
03
🐛 驱动真实调试器
C二进制segfault→attach lldb;Go服务hang→attach dlv;Python进程卡住→debugpy。不是sprinkle print,是真DAP协议。
Code Intelligence
04
⏳ 时间旅行流规则
规则平时休眠,模型跑偏时regex匹配中断stream,注入system reminder,同点重试。纠正不占context税,注入存活compaction。
Rules
05
🤖 一等子智能体
task展开到隔离worktree,各worker独立工具面,最终yield是schema-validated对象。无需解析prose,无兄弟merge冲突。
Coordination
06
👁️ 顾问模型实时监督
配对一个reviewer模型到advisor角色,它读取每回合,注入note(提醒/关切/硬阻塞)。独立上下文+独立模型,catch doer漏过的。
Collaboration
07
🔗 分享链接即协作
/collab放到relay→返回链接+QR。队友omp join或浏览器打开。read-write配对或view只读。帧客户端密封,relay不碰密钥。
Collaboration
08
🌐 读arxiv PDF
web_search串联14个provider→URL直接交给read。arxiv PDF/GitHub页面/SO帖子→结构化markdown。引用/跟进/引用源全保留。
Web
09
⚡ 原生实现·全平台
ripgrep/glob/find: in-process。brush是bash,session跨调用存活。同一binary跑macOS/Linux/Windows,无需WSL。
Native
10
📋 代码审查+优先级判定
/review派专有reviewer子智能体并行扫branch/单commit/uncommitted。每个issue排名P0-P3+置信度。先修阻塞发布的。
Review
11
✏️ Hashline: 内容哈希编辑
模型指向anchor而非重打行内容→空格战/string-not-found循环消失。文件过期时anchor偏移→拒绝patch防腐败。Grok 4 Fast省61% token。
Edit
12
📂 GitHub=文件系统
read already handles paths; PRs are paths. 一个接口教模型,一个surface保持正确。无gh_issue_view/gh_pr_view各自参数。
GitHub
13
🧠 Hindsight: 跨会话记忆
retain写入事实→recall搜索→reflect综合回答。每session压缩为心智模型→下次首轮加载。项目级隔离,repo学到的不泄露。
Memory
14
🖥️ ACP: 编辑器驱动agent
在Zed里跑omp=终端里同样的agent。读你正看的buffer,写走editor save路径,shell走editor terminal。破坏性工具弹权限。
Editor
15
📥 继承其他工具配置
原生读取8种格式:Cursor MDC/Cline .clinerules/Codex AGENTS.md/Copilot applyTo等。无需迁移脚本,团队上季度写的配置今晚照用。
Compatibility
16
📝 omp commit: 原子拆分
读working tree→按依赖排序拆分为原子commit。循环依赖拒绝。源文件>测试>文档>配置,headline commit是关键那个。lock file排除。
Git
17
🔗 12种内部URI Scheme
pr:///issue:///agent:///skill:///rule:///conflict://等。read pr://1428=read src/foo.ts同形态。search走diff如目录。agent://拉子智能体输出字段。
URI
18
🔀 冲突解决变URL
每个merge conflict→一个URL。write @theirs/@ours/@base到conflict://N→文件干净解决。批量: conflict://*
Git
19
👁️ 预览后接受
ast_edit返回(proposed)卡片+替换数→agent调resolve→TUI变Accept卡片→磁盘操作原子发生。all or nothing。
Edit
20
🌐 驱动真实浏览器
Stealth默认开→页面看正常用户而非headless bot。同一API驱动Electron app→指向Slack读DM。Puppeteer+CDP。
Browser
🎯 解决什么场景问题?
| 类别 | 场景痛点 | Oh My Pi 解决 | 核心能力 | 效果 |
|---|---|---|---|---|
| 🧠 代码理解 | AI改了函数名但调用的地方没改→编译报错 | LSP wired rename:走workspace/willRenameFiles,barrel/alias全更新 | #02 LSP | 改名一次到位,零遗漏 |
| 🧠 代码理解 | AI不知道代码结构,到处找定义/引用 | LSP 14种操作:definition/references/hover/diagnostics/implementation… | #02 LSP | AI和IDE知道的一样多 |
| 🐛 调试 | AI遇到bug只会sprinkle print→加一行打一行→效率极低 | 驱动真实DAP调试器:attach lldb/dlv/debugpy→设断点→步进→读变量 | #03 Debug | 从print调试进化为真正的IDE级调试 |
| ✏️ 编辑 | AI edit因空格/缩进差异频繁失败→string not found→重试→token浪费 | Hashline内容哈希anchor→不再重打行内容→空格战消失。文件过期拒绝patch | #11 Hashline | Grok 4 Fast省61%输出token |
| ✏️ 编辑 | AI批量改代码→改错无法回滚→文件被损坏 | ast_edit预览→(proposed)卡片→resolve接受→原子apply。all or nothing | #19 Preview | 改之前先看,确认后才写磁盘 |
| 🤝 协作 | AI一个人干所有活→慢→瓶颈 | task并行子智能体→隔离worktree→schema-validated结果→无merge冲突 | #05 Subagents | 多任务并行,结果结构化 |
| 🤝 协作 | AI犯错但没人及时发现→错误累积 | Advisor模型实时监督每回合→注入note/concern/blocker | #06 Advisor | 第二个模型实时审查,catch doer漏过的 |
| 🤝 协作 | 想让同事看AI在做什么→无法分享 | /collab→链接+QR→浏览器/终端join。read-write或view只读 | #07 Collab | 一键分享,实时协作 |
| ⚡ 约束 | AI写了不安全代码(Box::leak)但你没及时发现 | 时间旅行流规则:regex匹配→中断stream→注入reminder→同点重试 | #04 Stream Rules | 跑偏立即纠正,不占context税 |
| ⚡ 约束 | 切换AI工具要把配置全迁移→格式不兼容 | 原生读8种格式(Cursor/Cline/Codex/Copilot等)→零迁移 | #15 Inherit | 团队现有配置直接用 |
| 🧠 记忆 | 每次开新session AI对项目一无所知→重复问重复学 | Hindsight:retain写事实→recall搜索→reflect综合→跨session记忆 | #13 Memory | 项目知识跨会话保留 |
| 🌐 浏览器 | AI操作浏览器被反爬检测→headless bot被拦 | Stealth默认开→页面看正常用户。可驱动Electron app(Slack/Notion) | #20 Browser | 绕过检测,真实浏览器体验 |
| 📂 Git | merge conflict满屏<<<<<<<→手动解冲突又慢又错 | conflict://N URL→write @theirs/@ours/@base→文件干净解决 | #18 Conflict | 冲突解决变一个URL写入 |
| 📊 数据 | AI无法同时用Python+JS处理数据→要切换环境 | eval持久化Python+Bun worker→任一内核回调agent工具→跨语言协同 | #01 Eval | 一个cell里Python读+JS画 |
🔧 32个内置工具一览
| 分类 | 工具 | 功能 | 默认 |
|---|---|---|---|
| 📂 文件与搜索 | read | 文件/目录/归档/SQLite/PDF/notebook/URL/内部scheme,一个path全搞定 | ✅ |
write | 创建/覆盖文件、归档条目、SQLite行 | ✅ | |
edit | Hashline补丁:内容哈希anchor+过期anchor恢复 | ✅ | |
ast_edit | 结构化重写:ast-grep驱动,预览后apply | ✅ | |
ast_grep | 结构化代码查询:50+ tree-sitter语法 | ✅ | |
search | 正则搜索:文件/glob/内部URL,西部最快 | ✅ | |
find | Glob路径查找(内容匹配用search) | ✅ | |
| 🖥️ 运行时 | bash | 工作区shell,可选PTY/后台任务 | ✅ |
eval | 持久化Python+JS cell,共享prelude+工具回调 | ✅ | |
ssh | 对配置主机的单条远程命令 | ✅ | |
| 📡 代码智能 | lsp | 14种操作:诊断/导航/符号/重命名/code actions/原始请求 | ✅ |
debug | 28种DAP操作:断点/步进/线程/栈/变量/求值 | ✅ | |
| 🤝 协调 | task | 并行子智能体展开,可选workspace隔离 | ✅ |
irc | 进程内agent间短消息 | ✅ | |
todo | session todo list有序变更+阶段追踪 | ✅ | |
job | 等待/取消后台任务 | ✅ | |
ask | 交互式结构化追问 | ✅ | |
| 🌐 外部 | browser | Puppeteer标签:headless Chromium或CDP附加应用 | ✅ |
web_search | 跨provider搜索→答案+引用 | ✅ | |
github | GitHub CLI:repo/PR/issues/code search/Actions | 🔒 | |
generate_image | 生成/编辑图片:Gemini/GPT/xAI Grok图像模型 | ✅ | |
inspect_image | 视觉模型分析本地图片 | 🔒 | |
tts | 文本转语音:xAI Grok Voice,5种内置语音 | 🔒 | |
| 🧠 记忆与状态 | checkpoint | 标记对话状态用于后续collapse-and-report | 🔒 |
rewind | 修剪探索性context,保留精简报告 | 🔒 | |
retain | 写入持久事实到Hindsight记忆库 | 🔒 | |
recall | 搜索Hindsight记忆库 | 🔒 | |
reflect | 让Hindsight综合回答记忆库 | 🔒 | |
| 🔧 杂项 | resolve | 应用/丢弃排队的预览操作 | ✅ |
search_tool_bm25 | BM25搜索隐藏工具索引;mid-session激活 | 🔒 |
🏗️ 大案例拆解:用Oh My Pi重构”电商平台支付服务”
📋 场景:电商平台支付服务需要从单体重构为微服务——拆分支付网关/退款/对账三个模块,同时修复一个生产segfault bug
Phase 1
🐛 生产bug:支付服务segfault — debug工具
#03 Debug
#01 Eval
场景:生产环境支付二进制segfault,传统做法是sprinkle print→部署→等crash→看log→猜→改→再部署,循环数小时
Oh My Pi做法:agent用
发现空指针:payment_ref=NULL但代码没check→加null check→验证→修复完成
同时:用
Oh My Pi做法:agent用
debug工具attach lldb-dap→设断点→步进到坏指针→读栈帧变量→定位根因debug attach --adapter lldb-dap /usr/local/bin/payment-servicedebug set_breakpoint --file payment.c:142debug step_over → 读取变量 debug evaluate --expression "order->payment_ref"发现空指针:payment_ref=NULL但代码没check→加null check→验证→修复完成
同时:用
eval Python内核分析core dump histogram,JS内核画分布图→一个session两种语言协同
Phase 2
📡 重构前的代码理解 — lsp + ast_grep + read
#02 LSP
#11 Hashline
场景:重构前需要理解支付服务的所有引用关系——谁调用了
Oh My Pi做法:
无需手动在IDE里一个个ctrl+click,agent一次拿到全部结构信息
process_payment()?退款逻辑在哪些文件?Oh My Pi做法:
lsp references --symbol process_payment → 返回12处引用跨8个文件lsp definition --symbol RefundService → 跳到定义src/refund.tslsp incoming_calls --symbol process_payment → 谁调用了它?3个callerast_grep --pattern "process_payment($$$)" --lang typescript → 结构化搜索所有调用点read src/payment/ → 目录结构一览,不是dump内容而是summarized snippets无需手动在IDE里一个个ctrl+click,agent一次拿到全部结构信息
Phase 3
🤖 并行拆分三个微服务 — task + irc
#05 Subagents
#17 URI Scheme
场景:支付服务拆为3个独立模块:支付网关/退款服务/对账服务。每个模块独立,可并行开发。
Oh My Pi做法:用
3个子智能体在隔离worktree中并行工作,各自有独立工具面
子智能体间需要协调?用
结果是schema-validated对象,parent直接读取字段:
Oh My Pi做法:用
task并行派发3个子智能体task --name PaymentGateway --isolate "拆分支付网关模块,迁移路由和handler"task --name RefundService --isolate "拆分退款服务,迁移退款逻辑和退款API"task --name Reconciliation --isolate "拆分对账服务,迁移FCS对接和对账逻辑"3个子智能体在隔离worktree中并行工作,各自有独立工具面
子智能体间需要协调?用
irc发消息:RefundService告诉PaymentGateway”退款回调接口改了”结果是schema-validated对象,parent直接读取字段:
agent://PaymentGateway/findings.0.path
Phase 4
⏳ 重构时的安全约束 — Stream Rules
#04 Stream Rules
#06 Advisor
场景:重构时agent可能引入不安全模式(硬编码密钥/忽略错误处理/用Box::leak等)
Stream Rules:预设规则,agent跑偏时即时纠正
规则:
规则:
agent写到
不占context税,注入存活compaction
Advisor模型:配对GPT-5.5为advisor → 读取agent每回合 → 注入concern/blocker
agent对process_payment只catch ENOENT → advisor注入”这个fix不再匹配用户的验收标准” → agent扩展catch范围
Stream Rules:预设规则,agent跑偏时即时纠正
规则:
no-hardcoded-secrets: /password|secret_key|api_key/i → "禁止硬编码密钥,使用环境变量"规则:
no-unchecked-error: /catch\s*\(\s*\)/ → "禁止空catch,必须处理或日志"agent写到
password = "abc123"时 → stream中断 → 注入规则 → 同点重试 → 改为password = process.env.PAYMENT_PASSWORD不占context税,注入存活compaction
Advisor模型:配对GPT-5.5为advisor → 读取agent每回合 → 注入concern/blocker
agent对process_payment只catch ENOENT → advisor注入”这个fix不再匹配用户的验收标准” → agent扩展catch范围
Phase 5
📡 LSP驱动重命名+ast_edit批量改 — LSP + Hashline + Preview
#02 LSP
#11 Hashline
#19 Preview
场景:process_payment重命名为process_order_payment,同时批量替换所有console.log为structured logger
LSP rename:
→ 走workspace/willRenameFiles → barrel files/aliased imports/re-exports全部自动更新 → 5处修改跨3文件 ✅
ast_edit批量改:
→ 返回(proposed)卡片:3 replacements · 1 file →
Hashline编辑:用内容哈希anchor精确定位 → 空格/缩进差异不再导致失败 → 文件过期时anchor偏移→拒绝patch
LSP rename:
lsp rename --symbol process_payment --new_name process_order_payment→ 走workspace/willRenameFiles → barrel files/aliased imports/re-exports全部自动更新 → 5处修改跨3文件 ✅
ast_edit批量改:
ast_edit --pattern "console.log($$$ARGS)" --replacement "logger.info($$$ARGS)"→ 返回(proposed)卡片:3 replacements · 1 file →
resolve --accept → 原子apply ✅Hashline编辑:用内容哈希anchor精确定位 → 空格/缩进差异不再导致失败 → 文件过期时anchor偏移→拒绝patch
Phase 6
📋 代码审查+原子提交 — /review + omp commit
#10 Review
#16 Commit
场景:重构完成,需要审查代码质量→修复问题→提交
/review:派发reviewer子智能体并行扫branch
→ 返回P0-P3分级+置信度:P0(退款金额未校验, confidence:0.95) / P1(缺少重试逻辑) / P2(注释过时) / P3(命名可改善)
→ P0阻塞发布→先修P0→再修P1→P2/P3后续处理
omp commit:读working tree→按依赖排序拆分为原子commit
→ commit 1: feat: 拆分支付网关模块 (源文件优先)
→ commit 2: feat: 拆分退款服务模块
→ commit 3: feat: 拆分对账服务模块
→ commit 4: test: 添加微服务集成测试
→ lock file排除分析,循环依赖拒绝
/review:派发reviewer子智能体并行扫branch
→ 返回P0-P3分级+置信度:P0(退款金额未校验, confidence:0.95) / P1(缺少重试逻辑) / P2(注释过时) / P3(命名可改善)
→ P0阻塞发布→先修P0→再修P1→P2/P3后续处理
omp commit:读working tree→按依赖排序拆分为原子commit
→ commit 1: feat: 拆分支付网关模块 (源文件优先)
→ commit 2: feat: 拆分退款服务模块
→ commit 3: feat: 拆分对账服务模块
→ commit 4: test: 添加微服务集成测试
→ lock file排除分析,循环依赖拒绝
Phase 7
🔗 PR+冲突解决+跨会话记忆 — URI + Conflict + Hindsight
#12 GitHub=FS
#18 Conflict
#13 Memory
PR操作:
冲突解决:merge时3个conflict →
→
批量:
跨会话记忆:
下次session:
项目级隔离:支付项目学到的不泄露到其他项目
read pr://1428 = 读源码同形态 → search pr://1428/diff 走diff如目录冲突解决:merge时3个conflict →
read src/payment.ts (⚠ 3 conflicts)→
write conflict://1 @theirs / write conflict://2 @ours / write conflict://3 @base → 全部解决 ✅批量:
write conflict://* @theirs跨会话记忆:
retain "支付服务已拆分为3个微服务:payment-gateway/refund/reconciliation"retain "退款回调接口改为POST /refund/callback"下次session:
recall "退款服务架构" → 找回 → reflect "当前支付服务架构" → Hindsight综合回答项目级隔离:支付项目学到的不泄露到其他项目
Phase 8
🌐 浏览器验证+协作 — Browser + Collab
#20 Browser
#07 Collab
浏览器验证:agent用
→ 导航到结算页→点击支付→验证新微服务是否正常→截图确认
→ 可驱动Electron app:指向Slack→读DM通知→确认支付告警通道正常
实时协作:
→ 队友
→ read-write配对编程,或view只读旁听
→ 帧客户端密封,relay不碰密钥
browser打开支付页面 → Stealth默认开→页面看正常用户→ 导航到结算页→点击支付→验证新微服务是否正常→截图确认
→ 可驱动Electron app:指向Slack→读DM通知→确认支付告警通道正常
实时协作:
/collab→放到relay→返回链接+QR→ 队友
omp join或浏览器打开→看到agent实时工作→ read-write配对编程,或view只读旁听
→ 帧客户端密封,relay不碰密钥
🔗 12种内部URI Scheme
pr://读PR如同读文件
read pr://1428issue://读Issue如同读文件
read issue://925agent://拉子智能体输出字段
agent://X/findings.0skill://读取技能定义
read skill://debugrule://读取规则定义
read rule://box-leakconflict://解决merge冲突
write conflict://1 @theirsdiff://搜索diff如目录
search pr://1428/diffcommit://读取commit详情
branch://读取分支信息
action://读取GitHub Actions
review://读取代码审查结果
session://读取会话状态
📡 LSP 14种操作
references
rename
definition
hover
diagnostics
code actions
implementation
type_definition
document_symbol
workspace_symbol
incoming_calls
outgoing_calls
folding_range
selection_range
🌐 40+模型供应商
Frontier APIs
AnthropicOpenAIOpenAI CodexGoogle GeminiGoogle AntigravityxAIMistralGroqCerebrasFireworksTogetherHugging FaceNVIDIAOpenRouterSyntheticVercel AICloudflare AIWaferPerplexity
Coding Plans
CursorGitHub CopilotGitLab DuoKimi CodeMoonshotMiniMaxAlibaba/QwenZ.AI/GLMXiaomi MiMoQianfanNanoGPTVeniceKiloZenMuxOpenCode
Local
OllamavLLMLM Studio
一句话总结:Oh My Pi 是唯一把IDE完整接入的AI编程智能体——LSP让AI和IDE知道的一样多,DAP让AI能真调试而非sprinkle print,Hashline让编辑不再因空格失败,Stream Rules让约束即时生效而非事后发现,Hindsight让项目知识跨会话保留。不是”AI写代码”,而是“AI用IDE写代码”。