AI 项目

文渊阁 · DSH AI Team

把工作交给一支有负责人、有独立验收、有完整账本的 AI 团队。

文渊阁 · DSH AI Team 项目封面或真实界面
JavaScript主要技术栈
0GitHub Stars
0Forks
125索引文件
MIT License许可标记
2026-11-10最近更新

01 / PROJECT OVERVIEW

项目研究解读

文渊阁是 DeepSeek Harness 的按需启用插件,将持久 Agent 成员、任务负责人、独立验收和 append-only 事件账本组合成三栏工作台。执行者不能验收自己完成的任务,Human 负责方向与关键决策,而不是逐条调度。模型目录直接复用 DSH 配置,降低了多智能体部署成本。

ai-teamdeepseek-harnessdsh-packdsh-pluginagiagi-architecture

02 / CORE CAPABILITIES

值得关注的能力

  1. 01

    Project、Task 和结果都有明确 owner

  2. 02

    执行与验收分离,支持独立 QA 角色

  3. 03

    消息、Thread、任务与收件箱共享事件账本

  4. 04

    成员、个性、技能和模型配置可持久化

03 / ENGINEERING

工程与仓库结构

仓库以 JavaScript 为主要实现语言,研究快照包含 125 个文件、13 个主要顶层入口。已提供 README 作为使用与能力说明。 项目最近更新时间为 2026-11-10,许可标记为 MIT License。

01CHANGELOG.md

项目文件与实现资料

02LICENSE

项目文件与实现资料

03README.md

项目文件与实现资料

04client.js

项目文件与实现资料

05cordis.patch.yml

项目文件与实现资料

06icon.svg

项目文件与实现资料

04 / USE CASES

适合用在哪里

  • 多智能体软件研发
  • 长任务分工与独立验收
  • DSH 多 Agent 工作台

05 / QUICK START

从仓库开始

以下命令摘自项目 README 或根据仓库地址生成。请先阅读源仓库的安装要求、许可和脚本,再在自己的环境中运行。

git clone https://github.com/suifei/dsh-ai-team.git
cd dsh-ai-team

06 / REPOSITORY MAP

目录证据导览

这里列出快照中的前 125 个索引文件中的代表路径,帮助你快速定位源码、文档、测试与资源。

  • .gitignore
  • CHANGELOG.md
  • LICENSE
  • README.md
  • client.js
  • cordis.patch.yml
  • icon.svg
  • index.js
  • lib/diaglog.js
  • lib/domain/errors.js
  • lib/domain/ids.js
  • lib/domain/inbox.js
  • lib/domain/member-config.js
  • lib/domain/member-profile.js
  • lib/domain/policy.js
  • lib/domain/task.js
  • lib/domain/thread.js
  • lib/host/decision-report.js
  • lib/host/default-roster.js
  • lib/host/fault-adapter.js
  • lib/host/member-tools.js
  • lib/host/model-catalog.js
  • lib/host/permission-guard.js
  • lib/host/pmo.js
  • lib/host/project-registry.js
  • lib/host/project-runtime.js
  • lib/host/service.js
  • lib/host/views.js
  • lib/host/waker.js
  • lib/ledger/checkpoint.js
  • lib/ledger/events.js
  • lib/ledger/fold.js
  • lib/ledger/writer.js
  • lib/runtime/core-skill.js
  • lib/runtime/failure-policy.js
  • lib/runtime/host-agent.js
  • lib/runtime/member-runtime.js
  • lib/runtime/skill-catalog.js
  • lib/runtime/skill-loader.js
  • lib/runtime/skill-policy.js
  • lib/runtime/skill-provider.js
  • lib/vendor/skillopt/LICENSE
  • lib/vendor/skillopt/requirements.txt
  • lib/vendor/skillopt/scripts/sleep.py
  • lib/vendor/skillopt/skillopt_sleep/__init__.py
  • lib/vendor/skillopt/skillopt_sleep/__main__.py
  • lib/vendor/skillopt/skillopt_sleep/adapters/__init__.py
  • lib/vendor/skillopt/skillopt_sleep/adapters/superpowers.py
  • lib/vendor/skillopt/skillopt_sleep/backend.py
  • lib/vendor/skillopt/skillopt_sleep/budget.py
  • lib/vendor/skillopt/skillopt_sleep/config.py
  • lib/vendor/skillopt/skillopt_sleep/consolidate.py
  • lib/vendor/skillopt/skillopt_sleep/cycle.py
  • lib/vendor/skillopt/skillopt_sleep/dream.py
  • lib/vendor/skillopt/skillopt_sleep/evalkit.py
  • lib/vendor/skillopt/skillopt_sleep/evidence.py
  • lib/vendor/skillopt/skillopt_sleep/experiments/__init__.py
  • lib/vendor/skillopt/skillopt_sleep/experiments/gbrain_bench.py
  • lib/vendor/skillopt/skillopt_sleep/experiments/personas.py
  • lib/vendor/skillopt/skillopt_sleep/experiments/report.py
  • lib/vendor/skillopt/skillopt_sleep/experiments/run_experiment.py
  • lib/vendor/skillopt/skillopt_sleep/experiments/run_gbrain.py
  • lib/vendor/skillopt/skillopt_sleep/experiments/run_transfer.py
  • lib/vendor/skillopt/skillopt_sleep/experiments/sweep.py
  • lib/vendor/skillopt/skillopt_sleep/gate.py
  • lib/vendor/skillopt/skillopt_sleep/handoff_backend.py
  • lib/vendor/skillopt/skillopt_sleep/harvest.py
  • lib/vendor/skillopt/skillopt_sleep/harvest_codex.py
  • lib/vendor/skillopt/skillopt_sleep/harvest_copilot.py
  • lib/vendor/skillopt/skillopt_sleep/harvest_copilot_cli.py
  • lib/vendor/skillopt/skillopt_sleep/harvest_cursor.py
  • lib/vendor/skillopt/skillopt_sleep/harvest_opencode.py
  • lib/vendor/skillopt/skillopt_sleep/harvest_pi.py
  • lib/vendor/skillopt/skillopt_sleep/harvest_sources.py
  • lib/vendor/skillopt/skillopt_sleep/judges.py
  • lib/vendor/skillopt/skillopt_sleep/llm_miner.py
  • lib/vendor/skillopt/skillopt_sleep/memory.py
  • lib/vendor/skillopt/skillopt_sleep/mine.py
  • lib/vendor/skillopt/skillopt_sleep/multi_skill.py
  • lib/vendor/skillopt/skillopt_sleep/prompts.py
  • lib/vendor/skillopt/skillopt_sleep/replay.py
  • lib/vendor/skillopt/skillopt_sleep/rollout.py
  • lib/vendor/skillopt/skillopt_sleep/scheduler.py
  • lib/vendor/skillopt/skillopt_sleep/skill_resolver.py
  • lib/vendor/skillopt/skillopt_sleep/slow_update.py
  • lib/vendor/skillopt/skillopt_sleep/staging.py
  • lib/vendor/skillopt/skillopt_sleep/state.py
  • lib/vendor/skillopt/skillopt_sleep/tasks_file.py
  • lib/vendor/skillopt/skillopt_sleep/types.py
  • lib/vendor/skillopt/src/index.js

07 / SOURCE NOTES

README 原文摘录

保留原始说明便于复核。中文研究结论以当前快照为依据,后续变化请以 GitHub 仓库为准。

文渊阁

把工作交给一支 AI 团队:它们把事做到底,你定方向、把关键的关。

文渊阁,藏修、校勘、纂辑之地。
在这里,Human 不在环里逐条调度,而是在环上定方向、守信任、做最后那一步。

@suifei/dsh-ai-team 是 DeepSeek Harness 的按需启用插件:装进专用 ai-team profile 后,DSH 里出现一个三栏工作台——左侧 Project 与成员,中间主对话 / 看板 / 态势,右侧 Thread。Agent 自己认领 Task、互相交接,由做的人以外的成员验收;Human 只处理方向、信任和不可撤回的决定。

新 Project 自带一组可改的默认成员:墨渊(主理人)、青岚(执行)、白砚(验收)、玄策(编程)。名字、职责、个性、模型都可以改;模型提供商和模型名称直接读取 DSH 的 llm 目录,不需要手填 id。


为什么是「文渊阁」

  • 成员是持久的。 每个 Agent 有名字、角色、personality、notes、skills 和 session;DSH 重启、上下文压缩、换代之后,它还是它。
  • 每个结果都有 owner。 Project 有具名 owner;Task 有唯一 accountable owner,由它推到验收。
  • 做的人不验收。 Agent 只能验收已进入待验收、且自己从未认领过的 Task;QA Task 只有 QA 成员能验收。
  • 房间是为 Agent 设计的。 成员从自己的 inbox 拉取消息,而不是被每条消息推着走;对着已经变化的 Thread 写的回复会被退回,并附上变化摘要。
  • 一切有记录。 Main stream、Thread、Task、收件箱都是同一本 append-only 账本的视图。
  • 没有定时器。 Agent 只由 Team 事件(消息、@、交接、验收请求)唤醒;团队完全安静时不会自己醒来。

快速开始

1. 建专用 profile
dsh --profile ai-team --from-default-profile web --dump-config
2. 从 npm 安装
dsh plugin --profile ai-team add @suifei/dsh-ai-team

或从 checkout 安装:

dsh plugin --profile ai-team add E:/works/dsh-ai-team
3. 启动
dsh --profile ai-team --no-open --port 33271

打开终端输出的 URL,点侧栏 文渊阁。

第一次进入 Project 先设置 工作目录:默认 Project 会显示「这个项目还没有工作目录」,点「选择目录」或用输入框填路径;新建项目时也会要求填工作目录。每个 Project 独立一个目录,成员只在这个目录里执行 Task。

插件只应安装在可信机器 / 可信 Workspace:成员以 danger-full-access 运行,且 profile patch 会把 sandbox / approval / permission 固定为 danger-full-access / never。普通 desktop/web profile 不安装时保持原有 preset roster。

界面

┌ 文渊阁 ───────────────────────────────────────────────────────────┐
│ Projects        │  Main stream / Board / Situation   │  Thread     │
│  # 我的项目      │  主对话:一句话开工                 │  回复        │
│  # UI 项目       │  看板:待处理 / 进行中 / 待验收 / 完成│  验收 / 退回  │
│                 │  态势:需要你 / 团队在做 / 等待受阻 / 最近完成 │ 任务动作     │
│ Agents          │                                    │             │
│  墨渊 (Lead)     │                                    │             │
│  白砚 (QA)       │                                    │             │
└─────────────────┴────────────────────────────────────┴─────────────┘
  • 主对话:Human 的一句话进入 Main stream,Project owner 拆 Task;顶部「团队动态」直接显示正在推进的 Task 和运行中的成员,点击 Task 可打开 Thread。
  • PMO 全自动:Project header 的「PMO 自动」默认开启;每 60s 按最高价值建议自动处理 Human 决策,无 active Task 时自动唤醒 owner 续派下一批 Task;关闭后决策回到收件箱。PMO 只能由插件算法执行,不接受外部人工/脚本指挥。
  • 看板:四列;进行中的卡片显示 accountable owner 与执行者;数量只统计 active Task。
  • 态势:四象限——需要你、团队在做、等待受阻、最近完成。点击条目打开对应 Task 的 Thread。
  • 收件箱:跨 Project 聚合;顶部「待你处理 · N」一键进入;只放真正需要 Human 的决策/失败,Agent 的进度汇报留在 Thread/动态,不制造“打开 Task 后无事可做”。
  • 直接对话:点击成员名字直接打开该 Agent 的 DSH 原生 Session;没有 session 会先激活;打不开时落到成员资料,资料里有「直接对话」按钮。
  • 成员任务:成员资料里点「他的任务」,查看他 owner/assignee 的 Task。
  • 成员资料:点「⋯」改名、职责、personality、provider/model、运行配方、notes、skills、re-distill、离队/人才库。

能力地图

能力说明
Project具名 owner;独立工作目录;并发 runtime;每 Project 独立账本、Waker、SSE
Task唯一 accountable owner;pending / in_progress / pending_acceptance / done / cancelled
Threadappend-only;回复带 baseSeq,旧基线会被拒并说明变化
验收maker 不能验收;QA 硬门禁;qaChecklist 逐项通过
收件箱Human/Agent 各自拉取;跨 Project 聚合;顶部待办入口;askHuman 结构化问题与选项直接展开并提交
关注关注 Task;完成后收到 followed_task_update
默认成员新 Project 初始化墨渊 / 青岚 / 白砚 / 玄策;可改名、改职责、改个性、改模型
成员持久 session;点击名字直接对话;「⋯」资料里有任务视图与直接对话
模型Provider / Model 下拉读取 DSH llm 目录;可跟随系统默认
进化team.evolve 只改自己的 personality;验收后 reflection wake
人才库leave/rejoin;遗留 Task 可被接管(taken-over)
运行配方standard / ptc / minimal / cordis
技能DSH skill 工具真实加载;SkillOpt 7 工具内置
重启恢复team/startup 恢复未完成 Task,无定时器
安全每次成员工具调用前守卫 danger-full-access

架构

flowchart TB
  H[Human] --> UI[文渊阁 Workbench]
  UI --> HOST[Host /ai-team/api]
  HOST --> R1[ProjectRuntime prj_main]
  HOST --> R2[ProjectRuntime prj_ui]
  R1 --> L1[(append-only ledger)]
  R2 --> L2[(append-only ledger)]
  R1 --> S1[TeamService]
  R2 --> S2[TeamService]
  S1 --> M1[Member sessions]
  S2 --> M2[Member sessions]
  L1 -. Waker / SSE .-> M1
  L2 -. Waker / SSE .-> M2
  • Host:路由、命令、SSE、Waker、成员 runtime、权限守卫。
  • ProjectRuntime:一个 Project 一个 ledger + TeamService;启动时全部打开。
  • Ledger:JSONL + SHA-256 hash chain + checkpoint + 纯函数 fold。
  • MemberRuntime:真实 DSH Agent session,直接 agents.create / followup,没有模拟执行。
  • Waker:只从账本 append / HTTP 命令结果计划唤醒;没有 heartbeat/timer。
API 速览
GET  /ai-team/api/health
GET  /ai-team/api/bootstrap?project= 
GET  /ai-team/api/projects/ /board
GET  /ai-team/api/projects/ /quadrants
GET  /ai-team/api/projects/ /events      # SSE
POST /ai-team/api/projects/ /commands

命令覆盖 task.create/claim/submit/accept/request_changes/cancel/reopen/delete/reassign、member.add/activate/config.update/profile.update/message/leave/rejoin/takeover、project.create/activate、inbox.ack 等。


技能与 SkillOpt

  • 成员资料可追加 notes / skills,activation / wake prompt 会注入有界技能目录;
  • 完整技能正文由成员自己的 skill 工具加载;
  • ai-team-files provider 会读取:
  • /skills
  • /.dsh/skills
  • /.agents/skills
  • Microsoft SkillOpt 已内置:7 个 skillopt_* 工具、Python engine bootstrap、skillopt-sleep 技能随插件分发,不需要单独安装 dsh-skillopt。

验证

  • node --test:82 / 82
  • 文档 QA:node .ptc/tools/docs_check.mjs → 0 problems
  • 真实 E2E 覆盖:
  • 两 Agent claim → Thread → 独立验收;
  • 一句话 → Lead 开卡 → QA 自动验收 → owner 自进化;
  • 强停重启 → startup_resume → 继续 Task;
  • 真实浏览器私信成员;
  • 四运行配方分别执行 run_code / pwsh;
  • 并发 Project + 跨 Project 收件箱;
  • DeepSeek + Zhipu 双订阅 SSE 分桶;
  • V-10 turn 中途权限降级后工具前修复;
  • billing 402 / ECONNRESET 三次重试与恢复;
  • 从 npm 安装后在独立 profile 启动 health 200。

证据目录(本机 .ptc/rounds/,不随 npm 发布):

round-02  两 Agent 独立验收
round-06  验收后 self-evolve
round-09  重启 startup_resume
round-10  资料抽屉私信
round-11  多 Project 新建/切换
round-12  成员工具链 + skill 加载
round-13  四种运行配方
round-14  安装/卸载 smoke
round-15  并发/收件箱/V-10/billing
round-16  四技能安装
round-17  SkillOpt 内置 + 冷恢复
round-18  跨 Project 打开 Task + SSE 分桶
round-19  DeepSeek + Zhipu 双 provider

文档(仅本地)

需求、架构、UI 研究、验收报告保存在本机 docs/,不随 GitHub 仓库或 npm 包发布。 仓库只保留 README、CHANGELOG 与运行所需的源码 / 技能。


当前边界

  • 单机、单 Human;不支持多 Human 共享 Team;
  • billing/网络注入是测试 adapter,不是物理断网;
  • SSE 分桶用两个真实 provider 的独立订阅端验证,不是两个浏览器窗口;
  • distilly / darwin 不内置,有则用、无则不用;huashu-nuwa 已被 Team 技能目录排除。
  • desktop profile 由插件 patch 固定为 danger-full-access / never,只应在可信机器使用。

License

MIT。 Bundled SkillOpt integration derives from Microsoft SkillOpt plugins/dsh (MIT); its license lives at lib/vendor/skillopt/LICENSE.