我们的目标,就是为了能用一个平台,管理所有的AI 。也就是把pc平台的AI软件的元素,要能映射到web平台,尤其是怎样发布新任务。新任务需要关联pc端,可能会有如下的一些信息变量:任务工作目录,任务的
怎么说呢,我再说详细一点: 我们的目标,就是为了能用一个平台,管理所有的AI 。也就是把pc平台的AI软件的元素,要能映射到web平台,尤其是怎样发布新任务。新任务需要关联pc端,可能会有如下的一些信息变量:任务工作目录,任务的类型(work、code、design) 每个AI都可能不一样,都需要深入探究。 比如咱们现在做的Dumate通讯机制,通过web网页,是否能像在pc机面前那样控制Dumate! 这方面你再仔细思考,一定要做好!否则群星系统没有任何意义!
Trae做的工作
搭子桥 — 当前架构全景
核心目标
通过 Web 网页实现与 PC 端 DuMate 同等的控制能力。
已经实现的完整能力
| 能力 | 实现方式 | 状态 |
|---|---|---|
| 发现 DuMate 安装 | 读ctrl-servers.json发现内核端口 | ✅ |
| 检测内核状态 | 命名管道探测 + 日志分析 | ✅ |
| 列出所有任务 | 解析 Agent 输出文件 + 计划文件 + 内核日志 | ✅ |
| 新建任务 | 通过命名管道发送COMATE_AGENT_START_NEW_CHAT+COMATE_AGENT_NEW_MESSAGE | ✅ |
| 关联工作目录 | 新建任务时可选workspaceId,自动从日志发现可用目录 | ✅ |
| 关联任务类型 | work(TODOS) /code(CODE) /design(DESIGN) 三种策略 | ✅ |
| 实时状态推送 | SSE 流推送KERNEL_SPEC_STATE_CHANGED事件 | ✅ |
| 实时内容展示 | 每 2 秒轮询 Agent 输出文件,展示 AI 生成进度 | ✅ |
| 结束任务 | 发送COMATE_AGENT_STOP到内核 | ✅ |
| 查看日志 | 搜索内核日志匹配会话 ID | ✅ |
| 复制内容 | 完整内容复制到剪贴板 | ✅ |
本次改进的关键点
修复了任务创建时序— 按 PC 端真实流程:创建会话 → 设置前台 → 等待初始化 → 发送消息,确保消息不会丢失
新增实时内容轮询— 因为 DuMate 内核的 AI 响应是写入文件而非管道流出的,所以通过
GET /api/dumate/conversations/{id}/output每 2 秒轮询最新输出内容,前端流式展示支持双模式查询—
conversation_id端点和get_conversation_output方法同时支持:- UUID 格式(新建任务返回的会话ID)
- 数字格式(从任务列表选取的解析器ID)
新建任务后自动选中最新任务— 打开详情面板并启动内容轮询
当前架构图
Plain Text
Web 浏览器 (dumate.html) │ ├── REST API ←→ FastAPI 路由 ←→ DuMateBridge ←→ 命名管道 ←→ DuMate 内核 │ │ │ │ │ │ ├── 持久连接 ├── 写 Agent 输出文件 │ │ ├── 后台读取线程 ├── 写内核日志 │ │ └── 响应队列 └── 发送 ENGINE SEND │ │ │ └── SSE 流 ←── 实时推送 KERNEL_SPEC_STATE_CHANGED │ └── 内容轮询 (2s) ←── GET /api/dumate/conversations/{id}/output可以直接在浏览器中查看
页面已打开:http://localhost:8000/ui/pages/dumate.html
你可以试试:
- 新建任务— 选择任务类型(工作/代码/设计)、工作目录,输入提示词
- 查看实时生成— 选中活跃任务,详情面板会实时显示 AI 响应内容
- 结束任务— 点击卡片上的停止按钮
后续可扩展方向
- 继续对话— 向已有会话发送后续消息(
add-message协议已支持) - 会话历史— 在详情面板中显示完整的对话(用户消息 + AI 回复)
- 文件操作结果— 当 DuMate 创建/修改文件时,在 Web 端展示变更
又让AI参考deepseek harness
现在deepseek发布了deepseek harness,从中我们能得到什么灵感呢?
Trae做的工作
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 秒查一次。可以设计一个群星事件总线:
Plain Text
群星事件总线 ├── 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 都只是写一个插件的事。
