新闻详情

新闻详情

首页 / 资讯中心 / 详情

Orca 插件系统入门:从零编写你的第一个 Orca 插件(完整教程)

发布时间:2026/8/31 9:48:48来源:尧图网络
Orca 插件系统入门:从零编写你的第一个 Orca 插件(完整教程)
Orca 插件系统入门从零编写你的第一个 Orca 插件完整教程【免费下载链接】orcaOrca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and VPS.项目地址: https://gitcode.com/GitHub_Trending/orca48/orcaOrca 插件让每个 Orca 用户都能扩展自己的智能体舰队工作台。Orca 是面向并行编码智能体coding agents的 ADEAgent Development Environment而 Orca 插件系统允许你在不修改主程序的前提下添加自定义面板、命令和事件监听器。本教程带新手从零编写第一个 Orca 插件全程不超过 30 分钟。为什么需要 Orca 插件在使用多智能体并行开发时你常会遇到这些场景想在 Orca 里加一个自定义控制面板一眼看到当前工作区状态希望自动监听事件比如新 worktree 创建时通知我、agent 状态变化时记录日志想给团队分发自己的小工具而不用等待官方版本更新。Orca 插件正是为解决这些问题设计的它是一个独立进程中的 Node 模块 一个沙箱 HTML 面板通过受权限管控的宿主 API 与 Orca 主程序通信。插件架构速览3 个文件搞定一个最简 Orca 插件只需要 3 个文件仓库里就有一个官方示例文件作用参考orca-plugin.json插件清单ID、版本、能力声明、贡献声明orca-plugin.jsonmain.mjsworker 入口注册命令和事件main.mjspanel.html沙箱 UI 面板panel.html核心设计有 3 个要点权限门控capabilities插件必须显式声明需要的能力如workspace:read、terminal:send未声明的能力会被拒绝进程隔离main.mjs运行在独立的 Node 进程中无 Electron崩溃不会影响 Orca 主程序面板沙箱panel.html运行在不透明 origin 的 iframe 中只能通过postMessage与宿主通信。第一步编写插件清单 orca-plugin.json清单是插件的身份证。以官方示例为例来源orca-plugin.jsonid/version唯一标识与语义化版本engines.orca声明兼容的 Orca 最低版本示例为1.4.0contributes.panels向主界面注册面板指定标题、图标与入口 HTMLcontributes.commands注册可手动调用的命令如hello-pingcontributes.events声明要订阅的事件如worktree.created、agent.status.changedcapabilities声明所需权限例如storage持久化存储、notifications:show系统通知。 新手建议第一版只申请你真正需要的能力。Orca 的权限系统会在用户同意后才放行对应 API 调用。第二步编写 worker 入口 main.mjsworker 入口的默认导出是一个activate(orca)函数orca对象是插件 API。官方示例展示了 3 类最常用 API来源main.mjsexport default function activate(orca) { // 1. 注册命令可被面板按钮或用户手动触发 orca.commands.register(hello-ping, async (args) { const stored await orca.host.call(storage.get, { key: pings }) const count (typeof stored?.value number ? stored.value : 0) 1 await orca.host.call(storage.set, { key: pings, value: count }) return { pong: true, count } }) // 2. 订阅事件新 worktree 创建时弹出系统通知 orca.events.on(worktree.created, async (payload) { await orca.host.call(notifications.show, { title: Worktree created, body: payload.path }) }) // 3. 记录日志orca.log 输出到插件日志缓冲 orca.events.on(agent.status.changed, (payload) { orca.log(agent status: ${payload.state}) }) }orca.host.call(action, params)是统一的能力门控通道常用 action 包括Action所需 capability说明storage.get/storage.setstorage键值持久化存储notifications.shownotifications:show发送系统通知workspace.readContextworkspace:read读取聚焦 worktree 与终端列表terminal.sendTextterminal:send向指定终端输入文本并回车第三步编写沙箱面板 panel.html面板是用户能看到的 UI。它运行在沙箱 iframe 中与宿主通信的唯一方式是postMessage请求/响应模式。官方示例封装了一个call(action, params)工具函数来源panel.html发出{ type: orca-panel-action, requestId, action, params }监听orca-panel-action-result消息按requestId匹配并 resolve Promise。面板样式可以直接使用 Orca 注入的 CSS 设计令牌如var(--foreground)、var(--border)你的插件 UI 会自动跟随主应用主题无需额外适配。第四、五步安装与调试插件开发涉及的服务端实现集中在 src/main/plugins/ 目录几个关键模块插件发现plugin-discovery.ts 扫描并解析插件清单开发者热重载plugin-dev-watcher.ts 监听插件文件变化改完即生效worker 生命周期plugin-worker-manager.ts 负责按需 fork、监督与重启 worker 进程面板宿主plugin-panel-controller.ts 管理面板 iframe 的创建与消息路由。调试建议先把插件目录放入 Orca 的插件发现路径确认清单解析无报错触发contributes中注册的命令观察orca.log输出打开面板用读取上下文 / 显示通知两个按钮验证权限是否已授予——若返回error/errorCode优先检查清单中的capabilities是否缺失。安全与最佳实践清单✅最小权限原则只声明必要的 capabilities权限越少越容易通过用户信任审查✅不要假设当前终端API 没有活动终端概念terminal.sendText必须传明确的terminalId✅面板保持无状态依赖所有数据都通过宿主 API 获取不要直连网络或读取本地文件✅错误要展示面板中检查result.ok并把错误显示给用户便于排障⚠️ 仓库中还附有一个恶意面板反例 hostile-panel可帮助你理解沙箱边界——插件做不到清单之外的事这是 Orca 插件安全模型的核心。常见问题FAQQ我的插件支持哪些事件A在contributes.events中订阅示例覆盖了worktree.created与agent.status.changed事件总线实现见 plugin-event-bus.ts。Q插件崩溃会影响 Orca 吗A不会。worker 是独立 Node 进程由 plugin-supervisor.ts 监督并在必要时重启。Q如何持久化数据A使用storage.get/storage.set数据由 Orca 的插件存储plugin-storage-store.ts统一管理。Q下一步学什么A读完示例后再看 src/main/plugins/plugin-host-methods.ts了解宿主向插件开放的全部方法族。从示例复制、改名、改逻辑你就拥有第一个 Orca 插件了。配合 Orca CLI把插件能力融入你的多智能体工作流从用工具升级为造工具。【免费下载链接】orcaOrca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and VPS.项目地址: https://gitcode.com/GitHub_Trending/orca48/orca创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Java+AI工程化实战:用Claude Code与Harness构建可控开发流程 2026/8/31 10:39:00

Java+AI工程化实战:用Claude Code与Harness构建可控开发流程

如果把“让 AI 写代码”理解成打开终端,输入一句话,然后看着它输出一整个项目,这个认知会把很多人带进第一个坑里。真正有价值的,不是让 AI 替你把键盘敲完,而是让 AI 在你给定约束、给出评审、逐轮修正的情况下&#…

阅读更多 →
Django全栈开发实战:从模型迁移到Admin后台与DRF接口 2026/8/31 10:39:00

Django全栈开发实战:从模型迁移到Admin后台与DRF接口

这次我们直接聊 Django。它最大的特点不是“新”,而是“全”:ORM、Admin 后台、用户认证、表单处理、模板引擎、路由系统全部内置,新手不用在技术选型上反复纠结,装完 Django 就能开始写业务代码。 很多新手第一次从 Java 生态听…

阅读更多 →
让 text-generation-webui 撑住 10+ 轮多轮对话的 5 步完整配置指南 2026/8/31 10:39:00

让 text-generation-webui 撑住 10+ 轮多轮对话的 5 步完整配置指南

让 text-generation-webui 撑住 10 轮多轮对话的 5 步完整配置指南 【免费下载链接】textgen Open-source desktop app for local LLMs. Text, vision, tool-calling, OpenAI/Anthropic-compatible API. 100% private. 项目地址: https://gitcode.com/GitHub_Trending/te/tex…

阅读更多 →
AgentConnect:用FastAPI与SQLite实现多Agent权限隔离 2026/8/31 10:39:00

AgentConnect:用FastAPI与SQLite实现多Agent权限隔离

多 Agent 应用从 Demo 走向团队协作时,最常被低估的问题不是模型能力,而是权限。AgentConnect 这个项目名称可以理解为一套常见设计思路:多个用户可以共享同一个 Agent 实例,但每个用户、每个团队能执行的操作和能接触的数据范围必…

阅读更多 →
marketingskills:快速解决内容、获客、转化、数据痛点的完整 AI 营销技能库 2026/8/31 10:39:00

marketingskills:快速解决内容、获客、转化、数据痛点的完整 AI 营销技能库

marketingskills:快速解决内容、获客、转化、数据痛点的完整 AI 营销技能库 【免费下载链接】marketingskills Marketing skills for Claude Code and AI agents. CRO, copywriting, SEO, analytics, and growth engineering. 项目地址: https://gitcode.com/GitH…

阅读更多 →
Zotero插件AI-Butler:大模型驱动的文献一键精读与笔记生成 2026/8/31 10:33:59

Zotero插件AI-Butler:大模型驱动的文献一键精读与笔记生成

文献管理工具 Zotero 本身是不带阅读理解的,PDF 存了一堆,真正要精读的时候还是得自己一篇一篇啃。这次要看的 AI-Butler,就是给 Zotero 补上这个短板的插件——把大模型直接接到文献管理流程里,选中一篇 PDF 就能做精读&#xff…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞