-
Notifications
You must be signed in to change notification settings - Fork 3
Plugins.zh CN
phinn edited this page Sep 18, 2026
·
2 revisions
🌐 语言:中文 | English
从 SDK v3 起,任意外部 CLI agent 都能注册为 KinetAios 引擎 —— 零 JS 代码,plugin.json 里一个声明式 engine 字段即可。插件的 CLI 会以 plugin:<name> 出现在引擎下拉里,流式 token、工具事件、会话续接、成本追踪 —— 内置 CLI 引擎(Claude Code / Codex)有的它都有。
本页面向使用插件引擎的用户。插件开发全流程(工具 / slash 命令 / 面板)见仓库根目录的 KinetAiosPlugin.md。
- 把插件目录放到
<userData>/plugins/<name>/(设置 → 插件 页显示确切路径)。 - 插件的
plugin.json声明engine块(见下)。 - 设置 → 行为 里开启 "启用 CLI 引擎"(插件引擎与内置 CLI 引擎共用此开关)。
- 会话头部引擎下拉里选
plugin:<name>,显示名为 spec 的label。
安装 / 卸载 / 启用 / 禁用后引擎表热重建,无需重启 app。正在运行的会话持有旧引擎引用跑完,不受影响。
| protocol | 行格式 | 适用 |
|---|---|---|
ndjson |
每行一个 JSON 对象:{"type":"token","text":..}、{"type":"tool",...}、{"type":"cost",...}、{"type":"done"}、{"type":"error","message":..}
|
自己写的 CLI |
jsonl-claude |
兼容 claude -p --output-format stream-json
|
claude 协议的 agent |
jsonl-codex |
兼容 codex exec --json
|
codex 协议的 agent |
plain |
整段 stdout 当答案文本 | 普通 CLI(git、ripgrep 包装等) |
-
resume.idField声明携带 session id 的事件字段(来自sessionStarted事件)。引擎发出后,KinetAios 把 id 存进conv.engineSessionId,下一轮自动追加续接参数。 -
mode: "flag"(默认)→--resume <id>;mode: "subcommand"→resumeFlag按空格切开后前置,如"session resume"→my-agent session resume <id> <prompt>(codex 式子命令)。
-
inject: "prompt"(默认,codex 式):persona + 项目规则 + 记忆用---分隔后拼在 prompt 前。 -
inject: "system":注入块走systemFlag(默认--append-system-prompt)作为独立 argv 对 —— claude 式。
-
Windows
.cmd垫片走shell: true(与 claude/codex 相同);真正的.exe/unix 二进制直接 spawn。中止时杀整棵进程树(taskkill /T /F)。 - plain 协议:stderr 从答案流中剥离;CLI 非零退出时,最后 8 行 stderr 拼进错误信息。退出码 0 且无终态事件 = 完成。
- 非法 spec(protocol 拼错、bin 缺失、resume 残缺)—— 引擎不注册;设置页插件卡片显示红色徽章,悬停看具体原因。
- 重名冲突:两个插件贡献同名引擎,后者覆盖(与工具摊平同语义)。
- 贡献引擎的插件,manifest 的
engines字段被忽略(引擎本身即入口)。
仓库 plugins/examples/git-agent/ 把裸 git 包装成引擎(plain 协议,-C {cwd} 工作目录)。它是全链路的参考实现:manifest → 引擎注册表 → 下拉 → plain 协议 token 流。
- Engines —— 内置引擎与共享的 CliEngineAdapter 骨架
-
KinetAiosPlugin.md—— 插件开发完整 SOP(分类、工具、slash 命令、面板)
{ "name": "my-agent", "version": "1.0.0", "engine": { "bin": "my-agent", // CLI 名,从 PATH + 常见安装目录解析 "protocol": "plain", // ndjson | jsonl-claude | jsonl-codex | plain(默认) "args": ["--no-color"], // argv 前缀,prompt 之前 "cwdFlags": ["-C", "{cwd}"], // {cwd} 占位符 = 会话工作目录 "inject": "prompt", // prompt(默认)| system "resume": { "idField": "session_id", "resumeFlag": "--resume", "mode": "flag" }, "label": "My Agent" // 下拉 / NEXUS 显示名 } }