deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
DeepSeek Harness 的「子代理团队」插件:9 个分工明确的专职子代理 + 代码质量流水线 + 持久化多代理团队运行时。
一个官方 bundle 形态的独立插件,可经 GitHub / npm 安装到 DSH(桌面端与 web 端皆可)。
提供模型可见的角色工具(team_read / team_write / team_code_write / team_code_review …),
以及一套真正的事件驱动团队运行时(建队 / 成员 / 任务依赖 / 邮箱 / 自动调度 / 「子代理」活动标签页)。
| 能力 | 说明 |
|---|---|
| 角色分工 | 9 个专职子代理:读、码读、识图、写文件、写码、写文档、修码、审码、统筹 |
| 代码质量流水线 | 写 → 审(可借力 ocr) → 修 → 复审 → 补文档,闭环留痕 |
| 可续做长任务 | continuable:会话被截断/打断后可续做、可追问 |
| Token / 预算可调 | 每角色 maxTokens、team_budget 结合外部并发槽 |
| 性能优化 | 快任务一次性、稳定 KV、黑板去重、后台并行不阻塞 |
| 独立优先 | 外部插件(如 ocr)是增强项,缺失时自动落内置兜底,绝不报错 |
| 团队运行时 | team_create/member_add/create_task/claim/update/reassign/send/status/delete + 自动调度 + 「子代理」标签页 |
cordis.patch.yml 配置 half:按官方 bundle 挂载 9 个角色实例(复用 dsh-subagent 委派引擎)
src/index.mjs 编译 half:注册 team_run/team_note/team_stat/team_budget/team_env 与动态授权的 team_code_*
src/team-runtime.mjs 团队运行时(M1-M4):状态机 / 邮箱 / 事件调度 / 快照 / UI 路由
src/client.js client half:「子代理」标签页(按 __ModuleLoader__ 协议,零依赖)
change-*.md,审码角色必须写 review-*.md。本插件声明 "dsh": { "bundle": { "patch": "./cordis.patch.yml" } },因此走 DSH 官方插件安装流程:
# ① 桌面端(xuqingsakura/deepseek-harness):设置 → 插件 → 添加
# GitHub: github:xuqingsakura/dsh-subagent-team#main
# ② CLI(等价)
dsh plugin --profile web add "github:xuqingsakura/dsh-subagent-team#main"
dsh plugin --profile web remove dsh-subagent-team
安装器会把本包追加进
dsh.profile.bundles。改完 bundle / settings 后需完全退出并重启桌面端。
.\scripts\setup.ps1 -CheckOnly # 只读体检
.\scripts\setup.ps1 # 检查 + 自动补写 mimo-v2.5 的 input(改前备份)
.\scripts\setup.ps1 -SetKey # Key 缺失时引导写入 $DSH_HOME\.env
会校验/补写 settings.yaml 中视觉模型(如 mimo-v2.5)的 input: [text, image](read_image 放行前提),
并检查 OpenAI 兼容 Key(.credentials.yaml / 环境变量 / .env),不打印明文。
team_read / team_code_read / team_vision / team_write / team_code_write / team_doc /
team_code_fix / team_code_review / team_lead。在会话中直接调用即可。
| 工具 | 归属 | 作用 |
|---|---|---|
team_create |
队长 | 建队(一个工作区一队) |
team_member_add / team_member_remove |
队长 | 添加/移除可持续续做成员 |
team_create_task |
队长 | 建任务,可接依赖、可指派 |
team_list |
全体 | 平铺列出成员/任务/状态/依赖 |
team_claim_task |
全体 | 领取就绪任务,返回 attempt_id |
team_update_task |
全体 | 状态流转(必须带 attempt_id,陈旧即拒) |
team_reassign_task |
队长 | 重试/改派/接管 |
team_send |
全体 | 邮箱互发 |
team_status |
全体 | 全量观测快照 |
team_delete |
队长 | 归档并解散 |
快速开始:
team_create {name, description}
team_member_add {name, role}
team_create_task {subject, description, dependencies, assignee}
# 调度器自动把就绪任务派给空闲成员 → 成员 team_claim_task → 干活 → team_update_task
team_status
team_delete {confirm: true}
team_run / 角色工具报 spawn 类错误 → 确认当前会话 maxDepth ≥ 1(宿主放开,非插件 bug)。value.results[0].error must be a string 等 schema 拒绝 → node test-smoke.mjs 的 schema 检查定位结构。team_env 卡顿 → 确认装的是最新版(异步探测 ocr,不再阻塞事件循环)。Ctrl+F5 硬刷新。toolFilter 是可见性/组合限制,不是安全边界(沙箱/授权由父级作用域继承)。cordis.patch.yml)。maxTokens/深度/工具面约束,暂无硬性全局 Token 预算(见 docs/ANALYSIS.zh.md)。settings.yaml 声明 input + 插件 agentOptions.model。docs/DESIGN.zh.md — 设计要点与能力边界docs/ANALYSIS.zh.md — 现状审计与风险docs/PLAN.zh.md — 完善计划(S1–S7 / M1–M4 已实现)docs/EVENTS.zh.md — 会话事件词汇表与守卫test-smoke.mjs — 端到端 smokeMIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。