开箱即用的代码开发桌面 Agent:dsh 内核 + Qoder 外观 + 真实 Firefox 可接管 + 严格筛选的技能 + 内置 CPA 路由。
Kokoa 不是又一个新 Agent 框架。它把经过验证的组件装配成一个 clone 即用的开发环境:
| 能力 | 实现 | 位置 |
|---|---|---|
| Agent 内核 | dsh(100% 功能保留,版本锁定) | vendor/ |
| 视觉皮肤 | Qoder 风格(qoder-ui CSS + ThemeService token 覆盖,不替换任何功能组件) | packages/dsh-skin-qoder、packages/qoder-ui-css |
| 浏览器 | 真实 Firefox(非 Playwright 补丁构建):BRP(brp-spec)为主路径,Open Browser Control 为备选;支持 AI 控制 / 人工接管切换 | packages/browser-firefox-mcp、plugins/browser-handoff |
| 技能 | skills-curator:多云技能仓库 + 私有仓库统一发现 → 严格筛选 → 只加载合格技能 | plugins/skills-curator |
| 模型路由 | CPA(CLIProxyAPI)原生嵌入(Go SDK sdk/cliproxy),500+ flash 模型故障转移;零配置自生成 + 端口冲突自动顺延 + 自带面板禁用,管理设置进 dsh「设置 → 模型」页 + 壳托管生命周期 |
packages/cpa-embed、packages/dsh-plugin-cpa-settings、configs/cpa |
| 记忆 | 长步数记忆(ADR-005/008/009/010/011):Constraints 独立命名空间永不进标题/文件名;dsh 运行时预算化注入;物理观测 vs 模型结论硬隔离(错误结论不会以 observation 身份长期注入);观测陈旧标注(不降分只提示复验);TS 单实现核心(src/*.ts strict,Node ≥ 20 零运行时依赖) |
packages/dsh-plugin-memory |
git clone https://github.com/mmqz/kokoa.git
cd kokoa
bash scripts/bootstrap.shbootstrap 会:校验环境 → 锁定版本拉取 dsh / CPA → 应用 Qoder 皮肤 → 安装 Firefox 扩展(BRP 或 Open Browser Control)→ 运行 skills-curator 生成「已认证技能包」→ 启动桌面。
Playwright 对 Firefox 使用自维护补丁构建(Juggler),非官方品牌 Firefox:指纹异常、无法装 AMO 扩展、登录态不保留。Kokoa 的主路径:
- BRP(tomjiu/brp-spec)— Rust Bridge + AMO 商店扩展 + MCP 适配器,操控用户真实 Firefox,21 个工具,域名黑白名单 / 敏感信息脱敏 / Token 认证。
- Open Browser Control — Firefox 官方生态扩展,原生 AI / User / Collaborative 模式切换,作为备选。
- Mozilla firefox-devtools-mcp — 需要底层 DevTools / 控制台时按需接入。
UI 提供「AI 控制 / 人工接管」按钮(plugins/browser-handoff),状态与扩展双向同步。
绝不把所有 index 无脑灌进 dsh。skills-curator 的流水线:
发现(云仓库 + 私仓 + 远程记录)
→ 格式校验(SKILL.md / MCP schema)
→ 安全检查(无任意 shell / 明文密钥 / 高危权限)
→ 质量过滤(描述、示例、更新时间、非空实现)
→ 去重(同名按优先级/版本保留一份)
→ 白名单/黑名单(configs/skills-whitelist.yaml 人工锁定)
→ 生成「已认证技能包」→ 注册进 dsh
bash scripts/test.sh # 23 个测试套件(与 CI 同命令;含 memory 四套件:store 49 项 / 500 步长视野 / plugin 37 项 / tsc strict 类型检查)
npm --prefix packages/dsh-plugin-memory run test:longhorizon # 500 步长视野仿真单独跑MIT(各依赖遵循其原始许可)