用途:该技能用于构建、审查和调试 OpenCode 扩展。OpenCode 的插件系统是唯一扩展机制,插件是一个返回 agents、tools、hooks 等配置的 TypeScript 函数,可通过 npm 分发。
主要能力:
- 插件——创建含 agent、工具或钩子的新插件。入口示例:const MyPlugin: Plugin = async (ctx) => {...},export default MyPlugin。
- Agent——定义行为,含 description、mode(primary 主代理或 subagent 子代理)、model、temperature、tools 权限与 prompt。
- Hook——拦截生命周期事件:event(会话创建、删除、错误)、tool.execute.before(执行前改参数)、tool.execute.after(处理结果)、experimental.session.compacting、chat.message。
- Tool——用 Zod 定义参数 schema 并实现 execute(params, ctx),为 agent 增加能力。
- 审查已有插件。
使用方式:先识别意图,再读取对应参考文件(plugin-architecture、agent-configuration、lifecycle-hooks、custom-tools)并遵循其指引。插件经 npm 分发,安装后注册于 ~/.config/opencode/opencode.json,示例:bunx my-opencode-plugin install。
重要约束:主 index.ts 不得导出非插件函数(OpenCode 会把所有导出当插件调用);explore/librarian 代理不得用阻塞式 task(),须用 background_task;子代理默认不得再生成子代理;修改工具参数必须走 tool.execute.before;不得硬编码模型,须以参数传入并给合理默认值。无明确设计时避免无限循环与失控委派。
适用场景:为 OpenCode 添加自定义 agent、工具、钩子或进行插件审查。限制:资料未提供具体运行环境版本要求、收费或性能数据。