← Back to home@yiqiaowang-arch

orchestra

Context continuity & multi-session orchestration for DeepSeek Harness.

Stars
0
Language
JavaScript
Created
Aug 14, 2026
Updated
Aug 27, 2026

Introduction

Orchestra(乐团模式,曾用名:接力模式)· Continuity for DeepSeek Harness

topic: dsh-plugin English | 中文

让一个长任务跨多个上下文有限的 AI 会话持续前进:压力可测、交接可验证、会话可续、任务可并行、目标可自动编排、多会话可协调。

动机

  1. 上下文窗口有限:长任务跑到后半程,模型会遗忘、变慢、被压缩,最后无法继续。
  2. 手工续写不可靠:把旧对话内容复制给新对话,会丢信息、无法验证、不保证"从上次的下一步继续"。
  3. 复杂任务需要协作:多个并行会话各干一段,由一个协调者统筹;任何会话上下文快满时都能无缝轮换到新会话,任务不中断。

做法

全部是用户级装配,零侵入出厂 Harness,运行在 ~/.dsh:

层位置作用
Agent 预设~/.dsh/.agent-presets/continuity/26 条专属命令(另有 6 条继承自标准模式)+ 角色纪律;GUI 预设选择器选中即用
Host 驱动器~/.dsh/continuity-host/轮换、并行 worker、自动编排——经 profile 补丁层热应用
持久 checkpoint会话消息流重启、轮换、新会话都从日志恢复,不依赖内存

能力五域:接力(跨会话续接)· 并行(worktree worker)· 编排(mission)· 协调(多会话 hub)· 节奏(pace)。

用法

场景命令
看上下文还剩多少/continuity
存档后继续/handoff
从旧会话续跑/continue <session-id>
一键换新会话/rotate
开启并行任务/worktree <任务简报>
管理 worker/workers · /worker-report <id> · /worker-send <id> <消息> · /worker-stop <id>
自动实现一个目标/mission <目标> · /mission_status · /mission resume
链接两个会话/coordinate <session-id>
星型协调已有会话/coordinate-hub <spoke-id>… [-- 你的想法] · /coordinate-intake
只读窥视/session-peek <id> [n] [--full]
会话清单/sessions · /sessions_active · /current_session
节奏自省/pace

v34 起:/sessions、/sessions_active、/workers 会按会话工作目录标注工作区类别([worktree of <repo>] = git worktree 兄弟检出、[plain] = 非 Git 目录),一眼看出每个会话在哪个仓库里干活。

v35 起:角色纪律段加入"能力自查"行——任何会话先检查自己实际拥有的委派工具(插件命令可用就用命令,否则用 subagent 族),需要隔离实验工作时自行 git worktree add 建兄弟工作区并在报告中列出路径;worker 提示词相应获得"自组织许可"(第 6 条纪律),"只在此工作区干活、干完即停"语义不变。

v36 起:消息关联——/relay、/steer、/coordinate-intake 的信封带短问题编号 q-xxxxxx;被点名会话回复时开头回显该 id(如 [q-3f9a2c] 答案…),协调者一眼知道这条回复回答的是哪条指令;自动转发回来的回复还会带 [reply to q-xxxxxx] 标记兜底(启发式,找不到就不带)。

v37 起:决策层模型——每个协调者都知道自己处于什么决策层(等级 = 派生态:从协调树求到叶子的最长路径,L0 叶子 / L1 首层 hub / L2+ 嵌套 hub,树长等级就长),以及自己的 mandate(决策域旨意,/coordinate-hub … --mandate <文本> 声明并持久化);链接建立/重启恢复时定向注入等级行与信息契约(等级管信息浓度、mandate 管决策边界),/coordinate status 随时可查——重启后依然可用。

v38/v9 起:轮换链接迁移修复(生产缺陷)——/rotate(或 /worker-successor)时协调链接随轮换迁移:源 hub 的 hub=… spokes=… 记录改写成继任者、每个 spoke 收到新 hub=<继任者> 记录,重启后 spokes 自动指向新 hub;迁移由插件侧读取源日志并传给 host 驱动(驱动侧拿不到 sessionQuery,这正是旧版本生产环境静默失败的根因);迁移失败绝不静默——完成消息写明 coordination links NOT migrated: <原因>,继任者还会收到"协调链接未迁移"提示(手动 /coordinate-hub 或等重启 restore 恢复)。另外,配置 coordinateForwardMarker 后,回复开头回显问题编号 q-id 且该编号确为本会话日志中最近的协调指令时,即使没有协调标记也会自动转发回协调者(被点名问题的直接回答必须回来;裸"收到"仍被过滤)。

v39/v10 起:混合拓扑持久化 + worker-successor 输入调用方喂入(生产缺陷第二轮)——持久链接记录现在承载全部拓扑:hub 的 /coordinate peer 链接也写进 hub 记录(hub=<id> spokes=… [peers=…]),非 hub 会话的多 peer 记录全量持久(peers=a,b,c),重启后 hub→peer、peer→hub 双向都在——此前 hub 的 peers 不进记录、重启后 hub→peer 方向永久丢失(peer 侧记录还在、变成单向);/worker-successor 的 worker 日志读取(header/checkpoint/链接记录)也移到插件侧、由调用方喂给驱动(host 驱动侧拿不到 sessionQuery,v9 的自读在生产同样会失败);worker 日志读不到且无 sessionQuery 时响亮报错,链接迁移失败沿用"NOT migrated + 提示"模式。轮换迁移改写只动 hub=,spokes=/peers= 原样保留——继任者带着完整混合拓扑。

v41/v11/v9 起:轮换全自动(用户需求原文"我不想操作任何事,我想操作的就是 rotate;不要有妥协")——/rotate 后零手动步骤。除协调链接,/rotate 还把 hub 的决策域 mandate 与持久 mission checkpoint 一并迁到继任者(mission 由插件自动 resume 续跑,无需手动 /mission resume);worker 完成通知按 worker 最新链接记录重指到存活的继任者;oldSession 默认 'auto'——全部关系迁移成功才自动归档旧会话(部分失败则保持存活并在完成消息响亮说明)。旧会话归档可配置 'keep'/'archive' 覆盖。

v42 起:hub→spoke 投递通道防呆(生产缺陷修复)——向 spoke/peer 发消息的唯一途径是执行 /relay <会话-id> <消息> 命令(重要内容用 /steer);在回复正文写『【协调中心 → X】』『【协调者 → X】』(或 [coordinator -> X])等格式不会被投递——spoke 只会收到你实际 relay/steer 的内容。协调者自身回复正文含该格式时,插件会提醒一次改用 /relay(不阻断、不改写回复)。

v46 起:全量 steer——所有 hub↔spoke 消息经下一步边界到达——hub→spoke 指令(/relay、/steer、/coordinate-intake 与对应工具)和 spoke→hub 自动转发全部改为 harness 的步骤边界通道(agent.steer):目标运行中也收到、在下一步模型决策前被消费——修正不再等到目标回合结束才出现,hub 处理上一份报告的同一回合内就能看到新报告(不再基于旧快照发协调)。v43 的 mid-turn 拒绝废除(软边界下运行中目标必达);--force 保留为命令兼容;同一目标连续多条更新按到达顺序处理、以最新为准。

v45 起:投递工具注册可靠性 + 通道文本点名工具——v44 重启后协调者仍称"本会话无 /relay"("spokes 指令需用户转达"),根因有二:① 预设 standing 挂载是单飞且按进程代次缓存,GUI 冷读可能在 boot 早期就先触发它(此时 host 的 tools 服务未就绪),旧的"服务缺失即放弃"守卫让工具静默地从整代进程中消失;v45 改为在挂载时若服务不可达就每 2s 重试(幂等)。② v42 的投递通道文本(onboard.deliveryChannel/roles.coordDelivery)只说"唯一途径 = /relay 命令",从未提工具——v45 起两处文本都写明"或直接调用 agent 工具 relay_to_session/steer_to_session(与命令同源同效,工具列表里有它们)",hub 不会再认为自己没有投递面。

v44 起:投递工具 wire schema 修复(v43 上线即全局 400 的根因)——v43 的工具定义在 parameters.properties.<name> 里写了 required: true(布尔),这在 JSON Schema 里非法(required 必须是对象级字符串数组);harness 本地注册只校验 output.schema、parameters 原样发给模型,DeepSeek 端点严格校验后整请求返回 400 Invalid schema for function 'relay_to_session': true is not of type "array"——预设是部署默认,所以当时任何会话的任何消息都报错。v44 删除属性级 required: true(对象级 required: ['target_id','message'] 保留),工具行为不变、wire 形状与一等公民工具一致。教训:工具化必须验证远端接受的 wire 形状,不能只看本地工具目录。

v43 起:投递工具(插件注册的 agent 工具)——relay_to_session(<目标会话-id>, <消息>) 与 steer_to_session(<目标会话-id>, <消息>) 两个 agent 工具与 /relay、/steer 命令同源同效(同一投递内核、同一 continuity-coord/continuity-steer 源标记、同一 v36 q-id 信封),注册在预设 standing scope 层——本预设的 agent 工具目录里都有它们,模型调用工具即可投递(与命令逐字一致);steer_to_session 无 --force 逃生口(目标 mid-turn 一律拒绝)。命令面仍 26 条(工具不占命令槽)。

v40 起:审批卡点检测 + goal 冲突提示(运维盲区修复,纯插件方案)——harness 审批无超时、无查询接口,卡在审批对话框的会话外部状态与正常干活无异(协调者巡检曾完全看不见);插件从会话自身日志的 approval/asked/approval/decided 审计配对检测:hub 巡检为卡审批的 spoke 追加"审批卡点告警"(⚠️ spoke {id} 卡在审批:{tool}(自 {time})——可能需要你批准)、/workers 在卡审批的 worker 行尾标 ⏳ 待审批: <tool>、/session-peek 输出头部加待审批提示。另外,harness /goal 是"驱动式"(agent 空闲就排下一轮、无退避)而协调是"等待式"——/coordinate status 检测到本会话(hub)有激活 goal 时警告:等待 spoke 回复或用户决策时先 /goal pause(GUI 或本会话均可),自动编排改用 /mission。使用禁忌详见 docs/COMMANDS.md 六之二。

完整命令参考见 docs/COMMANDS.md。

快速开始

前提:已部署 DeepSeek Harness(DSH_HOME,默认 ~/.dsh)。

在任意目录执行(克隆到哪都行:安装脚本会把 deploy/ 镜像复制进 ~/.dsh,这个目录只是暂存区):

git clone https://github.com/yiqiaowang-arch/orchestra.git
cd orchestra
powershell -ExecutionPolicy Bypass -File scripts/install.ps1

然后新建会话,预设选择器选 Orchestra,跑 /continuity 看到 tokens / 容量 / 比率即成功。

维护者(本仓库发布者)流程:改动 live 运行时文件(~/.dsh/.agent-presets/…、~/.dsh/continuity-host/…、profile 补丁层)后、每次提交前先运行 scripts/sync-deploy.ps1——它把 live 镜像进 deploy/(旧代次自动归档、<USER> 占位符消毒),再运行 scripts/install.ps1 验证同一套文件的安装闭环(install 会还原占位符成真实路径并做差异备份)。克隆安装的用户不需要、也不应运行 sync-deploy——它只做 live→deploy 镜像(且写回的是仓库目录);安装一律走 install.ps1(deploy→live)。

平台:当前面向 Windows。macOS / Linux 需自装 PowerShell Core(brew install powershell → pwsh)才能运行安装脚本;且本预设的 shell 工具链目前只启用了 Windows 的 pwsh,macOS / Linux 暂未适配。

文档索引

文档读者
README.en.mdEnglish readers
docs/AGENTS.md在此仓库工作的 Agent(红线/升级/提交/交接协议)
docs/ARCHITECTURE.md开发者(平面/组件/状态机/时序/约束)
docs/COMMANDS.md使用者(命令全集)
docs/STATES.md所有人(三种状态环速查)
docs/GLOSSARY.md所有人(双语术语表——全库口径准绳)
docs/CHANGELOG.md / docs/MANIFEST.md版本史 / 维护速查
docs/design/CONTEXT_CONTINUITY_SYSTEM_DESIGN_V4.md设计文档

许可

本项目为 DeepSeek Harness(MIT)的个人能力扩展,运行于用户自有目录(~/.dsh),与业务仓库解耦;不修改出厂安装。采用与 DeepSeek Harness 相同的 MIT License。

仓库内不含任何个人绝对路径:本机路径一律以 C:\Users\<USER>\ 占位,安装脚本、测试与文档检查均通过 $DSH_HOME / $DSH_HARNESS 环境变量(缺省 ~/.dsh / ~/Documents/GitHub/deepseek-harness)动态解析真实位置。