现在deepseek发布了deepseek harness,从中我们能得到什么灵感呢?
DeepSeek Harness 昨晚刚发布,今天凌晨就开源了,来得正好。我已经研究了它的架构,对群星系统来说,可借鉴的点非常多。
DeepSeek Harness 能给群星什么启发?
1. 最核心的理念:"一切皆插件" → 群星应该成为"AI 的插件系统"
Harness 的 Cordis 微内核把模型、工具、技能、会话、沙箱、存储、Agent Loop、调度、UI全部做成插件,没有不可替换的"特权核心"。
对群星的启发:
目前群星集成 DuMate 的方式是写死的——dumate_bridge.py里硬编码了管道协议、任务类型、Agent 配置。如果未来要接入 Trae Work、Cursor、Windsurf 等其他 AI,每接入一个就要写一个新的xxx_bridge.py,重复造轮子。
群星应该借鉴 Cordis,设计一个统一的服务注册表,让每个 AI 适配器以插件形式注册:
Plain Text
群星内核 (微内核) ├── AI 插件: DuMateAdapter ├── AI 插件: TraeWorkAdapter ├── AI 插件: CursorAdapter ├── 工具插件: FileSystem ├── 工具插件: Shell ├── 存储插件: SessionLog └── UI 插件: WebDashboard每个插件只需要实现:
getCapabilities()→ 返回该 AI 支持的能力列表(创建任务、读取输出、停止生成等)execute(action, params)→ 执行具体操作onEvent(eventName, callback)→ 注册事件监听
这样群星从"DuMate 专属控制台"变成"所有 AI 的通用控制台"。
2. 可追溯性(Append-only Session Log)→ 群星的任务审计系统
Harness 有一条硬约束:"模型可见的,必须可被日志重建"。所有交互——系统提示词、推理过程、工具调用结果、子Agent调度——都被记录在 append-only 的会话日志中。上下文压缩不会删除原始历史,只是用替换事件改变模型此后看到的表象。
对群星的启发:
当前群星的任务记录很零散——从.output文件读内容、从内核日志 grep 关键字、从计划文件提取元数据。这些数据分散在不同位置,没有统一的追溯视图。
可以设计一个群星会话日志(Star Session Log):
- 每条记录是 append-only 的事件流
- 记录每次 AI 任务的完整生命周期:发起→执行→输出→结束
- 支持回放(replay):用户能回看 AI 当时做了什么、看到了什么
- 支持分叉(fork):基于某个历史状态重新发起任务
- 支持恢复(resume):断连后恢复任务状态
这和群星"管理所有 AI"的定位天然契合——每个 AI 的任务都产生统一格式的事件流,群星成为所有 AI 行为的审计总闸。
3. Profile/Bundle 分层配置 → 群星的"AI 模式"管理
Harness 的 Profile 是命名的插件组合——web、headless、minimal等不同 profile 加载不同插件集。配置通过分层 patch 覆盖,每个 bundle 都可以被上层覆盖。
对群星的启发:
群星可以为不同的使用场景定义AI 模式(AI Profile):
Plain Text
群星模式管理器 ├── "全栈开发模式": DuMate + TraeWork + 文件系统 + 终端 ├── "代码审查模式": DuMate(code) + Git集成 + LSP ├── "设计模式": DuMate(design) + 图片生成API ├── "极简模式": 仅 DuMate(work)用户可以在群星 UI 中一键切换模式,不同模式自动加载/卸载对应的 AI 适配器插件。这与当前dumate.html中的任务类型选择器(work/code/design)思路一致,但扩展到更大的粒度。
4. 类型化事件系统 → 群星的 AI 事件总线
Cordis 的事件有四种派发模式:emit(观察)、waterfall(中间件,可短路)、parallel(并行)、serial(串行)。插件通过事件通信,而不是直接调用。
对群星的启发:
当前群星中,当 DuMate 有任务完成时,前端靠轮询/api/dumate/conversations/{id}/output每 2 秒查一次。可以设计一个群星事件总线:
群星事件总线 ├── task.started → UI 更新任务列表 + 通知 ├── task.progress → UI 更新流式输出 ├── task.completed → UI 标记完成 + 触发后续动作 ├── task.failed → UI 显示错误 + 自动重试 ├── ai.connected → 侧边栏更新状态 ├── ai.disconnected → 侧边栏更新状态 + 清理资源每个 AI 插件发布事件,其他插件订阅事件。这样添加新的 AI 时,不需要修改 UI 代码——只要发布标准事件,UI 自动响应。
5. 无特权核心 → 群星的"可替换性"
Harness 强调"There is no privileged core to patch"——所有组件都是可替换的插件。这意味着你可以用 Harness 的框架,但换上自己的模型、自己的工具、自己的 UI。
对群星的启发:
群星不应该绑定任何特定 AI。今天用 DuMate,明天可能用 Trae Work,后天可能用 DeepSeek Harness 本身。群星的核心价值是提供一个统一的管理层,而不是某个 AI 的专属外壳。
每个 AI 适配器应该是可替换的——如果某个 AI 的协议变了,只需要更新对应的插件,不需要动群星内核。
6. Creator Mode → 群星的"AI 实验场"
Harness 的 Creator Mode 允许 Agent 检查当前运行时,在内存中试验插件,并组合成新的运行模式。
对群星的启发:
群星可以提供一个**"AI 排障模式"**——当某个 AI 集成异常时,可以让用户:
- 查看当前 AI 的协议通信日志(类似
dumate_bridge.py的原始管道数据) - 在 UI 中手动发送原始命令测试
- 动态调整参数(如工作目录、任务类型映射)
- 实时看到 AI 的原始响应
这相当于给群星加了一个**"开发者工具"**面板,降低调试新 AI 集成的门槛。
总结:群星可以怎么做?
| Harness 理念 | 群星对应设计 | 预期价值 |
|---|---|---|
| 一切皆插件 | AI 适配器插件注册表 | 一次设计,接入所有 AI |
| Append-only 日志 | 任务事件流 + 回放/分叉/恢复 | 完整审计,永不丢失 |
| Profile/Bundle | AI 模式管理器 | 按场景动态组合 AI 能力 |
| 类型化事件 | 事件总线 | 解耦 AI 与 UI |
| 无特权核心 | 可替换适配器 | 不被任何 AI 绑定 |
| Creator Mode | AI 排障面板 | 降低集成调试成本 |
一句话总结:DeepSeek Harness 告诉我们,Agent 框架的正确方向不是"集成更多能力",而是"设计一个让所有能力都可插拔的架构"。群星如果从一开始就做好这个底座,未来接入任何 AI 都只是写一个插件的事。