# DSH ProgressTarget

English · 简体中文

> 让 AI Agent 真正完成长期任务,而不只是写一份待办清单。 DSH ProgressTarget 是面向 [DeepSeek Harness](https://github.com/deepseek-ai/DeepSeek-Harness) 的持久化计划与执行控制插件。它为每个会话提供语义阶段、质量门、交付物门、截止时间、可审计重试、多资源执行计划和动态资源发现。 ## 为什么需要 ProgressTarget? 普通 Agent 计划经常出现这些问题:没有可用交付物就宣布阶段完成;指标定义模糊;截止时间被悄悄延后;阶段转换后继续使用过期的 GPU 状态;明明可以自主推进,却频繁停下来等待用户确认。 ProgressTarget 将普通计划升级为可执行契约: - **会话级持久化**:每个会话维护独立计划。 - **语义化阶段**:按真实依赖拆分,而不是机械四等分。 - **质量与交付物双门控**:指标达标和产物可用分别判断。 - **阶段质量关联最终目标**:v2 每阶段必须说明该阶段质量如何保护、提升或验证最终目标。 - **先调研、后选指标**:比较候选代理指标,记录可追溯来源、测量方法、局限性和阈值依据。 - **诚实表达不确定性**:无法预估贡献幅度时保留 `null`,通过 pilot、消融或对照实验验证,禁止编造精确收益。 - **截止时间语义**:`completed` 表示按时达标;`overdue` 表示逾期但交付物仍可使用。 - **证据优先**:必需交付物必须具备验收标准和证据。 - **动态资源发现**:阶段启动、转换和重规划时刷新全部已配置资源。 - **全可用服务器分片**:可分片的推理、评估和数据任务必须覆盖所有可用服务器。 - **可审计重试**:记录结果摘要、诊断结论和下一轮调整。 - **不设 continuation 轮数上限**:未超过截止时间且仍有可执行调整方案时,必须继续调研和重试;尝试次数或自动续跑预算不能成为停止理由。 - **递归重新估时**:未完成时重新安排 50%/100% 检查点,而不是高频轮询。 - **进度可视化**:在 DSH Web 中查看阶段、指标、交付物、重试、截止时间和资源快照。 ## 执行模型 ```text 制定计划 → 发现资源 → 启动阶段 ↓ 5分钟 / 50% / 75% 检查 → 100%结果收获 ↓ 质量门 + 交付物门 + 截止时间门 ├─ 按时全部通过 → completed → 刷新资源 → 下一阶段 ├─ 质量未达标、交付物可用且已超时 → overdue → 刷新资源 → 下一阶段 └─ 交付物缺失 → 保持 in-progress → 诊断 → 重规划 → 重试 ``` ## 安装 本仓库是一个 DSH Profile Bundle。请将它加入承载 Web GUI 的实际 Profile;Profile 名称由部署决定: ```powershell dsh plugin --profile <你的-profile> add ``` 安装后重启原有 DSH Web Host。不要另起一个替代 Vite 服务,因为 Web 启动状态由正在运行的 DSH Host 注入。 开发时,可以将仓库复制或链接到用户自有的 DSH 插件目录,再加入相应 Profile,并按当前 DSH 版本要求重新构建或重启受影响的 Web 产物。 ## 快速开始 安装后,让 Agent 先阅读 [`GUIDE.zh-CN.md`](GUIDE.zh-CN.md),然后在执行任务时调用 `update-progress-target`: ```text 请执行 [XXX任务]。开始前先完整阅读本仓库的 GUIDE.zh-CN.md,并使用 update-progress-target 为当前会话建立独立计划。按真实依赖拆分语义阶段;每阶段必须设置 deadlineAt、结构化质量硬目标、可供下一阶段消费的必需交付物及验收证据、executionPlan 和资源分支。建立计划、启动阶段、阶段转换和重规划时,都要重新查询全部配置资源的实时状态,不能复用旧快照。除非缺少用户专属输入、权限、安全确认或遇到无法自主解决的外部阻塞,否则持续推进到完整计划结束。 ``` 完整提示词位于 [`PROMPT.zh-CN.md`](PROMPT.zh-CN.md)。 ## 使用前配置自己的部署 ProgressTarget **没有通用服务器清单**。服务器名称、资源查询方式、质量阈值、交付物规则、存储位置、截止时间、权限与资源限制,都必须由使用者根据自己的环境配置。 在 `cordis.patch.yml` 中修改: ```yaml config: requiredServers: - gpu-a - gpu-b resourceDiscoveryMaxAgeMinutes: 10 dataDir: .progress-target ``` | 配置 | 默认值 | 含义 | |---|---:|---| | `requiredServers` | `[]` | 每份资源快照必须覆盖的固定服务器或资源池清单 | | `resourceDiscoveryMaxAgeMinutes` | `10` | 阶段启动或重规划时允许的最大快照年龄 | | `dataDir` | `.progress-target` | 相对于 `DSH_CWD` 或 Host 工作目录的存储目录 | `requiredServers: []` 表示不强制固定服务器清单,适用于 CPU-only、云端自动扩缩容、调度器资源池或动态发现环境。如果配置了清单,每份快照必须覆盖所有名称;同时仍允许记录额外发现的资源。 生产使用前,请完整阅读[配置与部署审计清单](CONFIGURATION.md)。ProgressTarget 只校验 Agent 提交的状态和证据;它不会自动提供 SSH、调度器、凭据、GPU、计时器或后台作业能力。 ## 状态语义 | 状态 | 含义 | |---|---| | `pending` | 已规划但尚未启动 | | `in-progress` | 正在执行,可包含重试和重新估时 | | `completed` | 截止时间前通过质量门和交付物门 | | `overdue` | 已超过截止时间,质量可未达标,但必需交付物可用 | 必需交付物缺失时,即使超时也不能启动下游阶段。默认保护终态历史;管理性修改或删除应要求用户明确授权,并留下审计记录。 ## 存储 计划按会话保存到: ```text //.json ``` 默认 `dataDir` 为 `.progress-target`。不要提交运行态计划文件;仓库的 `.gitignore` 已排除默认目录。 ## 安全与隐私 - 发布截图或计划 JSON 前,先检查资源查询证据。 - 不要在 evidence 字段写入 Token、密码、私钥、内部用户名或机密数据路径。 - 集群凭据应由部署自身的秘密管理系统维护。 - 使用前明确计划文件的保留、备份以及授权修改策略。 ## v2 质量贡献契约 新计划使用 `schemaVersion: 2`,首先定义结构化 `finalObjective`,包括最终指标和最终交付物。每个阶段随后必须提供: - `metricResearch`:调研问题、可追溯来源、候选指标、已选指标及选择理由; - `objectiveContribution`:关联的最终指标、影响机制、证据等级、不确定性、未达标风险和验证方案; - 指标元数据:`kind`、测量方法、局限性和阈值依据。 v2 阶段不能只用“任务完成”“文件生成”等过程指标通过门控,至少需要一个经过调研的 `quality` 或 `final` 指标,用于保护、提升或验证最终目标。插件会拒绝 `数量 > 0`、`文件数 > 0` 等只证明“存在”的空洞阈值,也会拒绝全部质量指标都只是 `> 0` 或 `>= 0` 的阶段。`adaptive` 阈值仅用于探索,必须在调研或 pilot 后冻结为具有证据依据的正式阈值,才能进入正式阶段。若暂时无法估算影响幅度,应将 `impactEstimate` 设为 `null`,明确不确定性,并安排 pilot、消融或对照验证,不能编造数值。 ## 兼容与迁移 既有且没有 `schemaVersion` 的计划继续按 v1 规则执行,不会被静默改写;仍可更新进度、结束阶段并按原契约推进。 迁移必须显式、完整且原子化。调用 `operation="migrate-plan"` 时,必须设置 `userAuthorizedMigration=true`、填写迁移原因,并为全部既有阶段提供完整 v2 契约。迁移不得增删阶段,也不得改写原状态和完成时间;任何验证失败都会保留磁盘中的原 v1 计划。详见 [v2质量贡献契约和迁移示例](V2-CONTRACT.zh-CN.md)。 ## 文档 - [v2质量贡献契约](V2-CONTRACT.zh-CN.md) - [配置与部署审计清单](CONFIGURATION.md) - [完整中文使用指南](GUIDE.zh-CN.md) - [生产提示词模板](PROMPT.zh-CN.md) - [变更记录](CHANGELOG.md) - [贡献指南](CONTRIBUTING.md) ## 许可证 MIT,参见 [LICENSE](LICENSE)。