OMP 內部設計導讀 #10:hooks/skills/MCP/marketplace 四大擴展面
OMP 將 hooks、skills、MCP、marketplace 整合為統一的擴展面:hooks 併入 extension runner 統一事件匯流排、skills 依 description 進行語意觸發、MCP 採 250ms 快速啟動閘 + deferred fallback、marketplace 採雙 scope 並相容 Claude Code catalog 格式。
OMP 將 hooks、skills、MCP、marketplace 整合為統一的擴展面:hooks 併入 extension runner 統一事件匯流排、skills 依 description 進行語意觸發、MCP 採 250ms 快速啟動閘 + deferred fallback、marketplace 採雙 scope 並相容 Claude Code catalog 格式。
AgentHarness 核心類別、System Prompt 動態組裝流程、Skills 載入與格式化、Prompt Templates 系統、Harness 如何決定 Tool 可用性、Result Handling、Telemetry Schema 註冊、預設 Harness 建構、Extension 如何擴充 Harness。
Hooks 管控制流、skills 注入知識、plugins 負責打包。looplane 已有 opt-in deny-only project hooks、bounded SKILL.md loader、exact enabled_skills 選擇、plugin manifest/install/list 與 external runtime projection;仍缺 hook input rewrite、完整 lifecycle、遠端 registry 與成熟 marketplace。
Looplane 把 skills 當成有界的 repository-local guidance、把 hooks 當成 opt-in 且只能否決的 host commands,再用 local plugin manifest 封裝 skill 與 hook;三者的權限完全不同。
Warp 的自我改進 Agent 不把每次錯誤塞進 prompt。base skill 做任務,人類在 GitHub 或 Slack 留回饋,improver skill 把重複訊號整理成小 diff,再走 PR review。真正有價值的是這套工程邊界:可追溯、可回滾、可拒絕更新。
Hermes 的記憶是硬上限的:MEMORY.md 2,200 字元、USER.md 1,375 字元,寫爆不會自動壓縮而是回錯誤讓 agent 自己騰位子。技能則由 curator 背景維護,預設 7 天跑一次、只在閒置 2 小時後啟動,30 天未用標 stale、90 天封存——但從不刪除。真正該打開的開關是 `memory.write_approval` 與 `skills.write_approval`,它們把背景自我改進的寫入變成待審。
LLM agent 的難點不是把 function calling、skill、code interpreter、文件工具各自做出來,而是把它們組成一個會選工具、會寫程式、會拆任務、會驗證結果、又不會被 prompt injection 打穿的系統。這篇把代表論文整理成六個工程決策:function calling 可靠度、tool/skill selection、code-as-action、多步 planning、skill 系統、安全與文件生成。
Skill 路徑通常是 runtime-specific,跨 agent 真正穩的是 AGENTS.md;個人共用能力放各自 agent 支援的全域目錄,專案 workflow 放 repo 內。
gstack 是 Garry Tan 開源的 Claude Code skills 工具集,用 20 個專業 skill 把一個人變成一整個工程團隊——從產品規劃、設計審查、code review、QA 到部署,全部自動化。
Skills 從六個來源載入、同名時高優先者勝,而 per-agent 的清單是取代不是合併。子 agent 預設拿不到 session 與訊息工具——它回傳純文字給父 agent,人看得到的回覆權留在父 agent 手上。
Plugin 的價值不是新能力,而是分發:把散在 .claude/ 的 skills、agents、hooks、MCP 設定收進一個帶 manifest 的目錄,透過 marketplace 安裝、更新、鎖版本。本文拆解 plugin 目錄結構、最小建立流程、marketplace 發佈與 dependencies 版本約束。
Global skills 放在 ~/.claude/skills/ 但新 session 或 Desktop App 看不到?問題通常不是檔案不存在,而是 skill 描述沒被載入 context。本文釐清 CLI vs Desktop App 的差異、settings.json 的角色,以及最穩定的解法。