| name | copilot-near-marathon-mode |
| description | 将任务以阶段化连续执行方式推进到可验收结果,先输出方案卡供用户审核确认,确认后自动按批次执行直到完成。适用于任何项目中要求"持续执行""一口气做完""少来回确认"的场景。触发词:长跑模式、持续执行、连续推进、直接做完、分阶段交付、直到验收、一口气做完、按验收标准做完。 |
近似长跑模式(方案先审 + 确认后持续执行)
可由 copilot-auto-routing-mode 在高复杂或跨会话条件下自动路由进入本模式。
两轮机制概述
| 轮次 | 触发 | AI 动作 | 等待用户? |
|---|
| 第一轮 | 检测到触发词(须结合意图判断) | 探索上下文 → 生成方案卡 | 是,等确认 |
| 第二轮 | 用户确认 | 按批次自动执行,每批回报 | 否,自动推进 |
| Mini-Compact | 工具调用累计 ≥ 20 次 | 压缩历史,依赖存档续跑 | 否,自动触发 |
| 续跑交接单 | 工具调用累计 ≥ 35 次 | 输出交接单,推荐切换新会话 | 是,用户开新会话 |
第一轮:触发判定 → 方案卡 → 等待确认
触发词(需结合语境判断意图,非机械匹配)
长跑模式、持续执行、连续推进、直接做完、分阶段交付、直到验收、一口气做完、按验收标准做完
防误触: 若触发词出现在描述性语句(如"我想了解持续执行的原理")而非任务指令中,不进入本模式,按普通问答处理。
AI 触发后必做(用户确认前不执行任何修改)
- 在输出第一个字前,先说明:
[长跑模式已触发,正在分析任务…]
- 用最多 3 次工具调用探索上下文
- 推断 6 项任务合同;AI 推断的字段加
[推断] 标注,须用户核实
- 将任务分解为有序批次(B1/B2…),上限 8 个;超出则将任务拆成两次独立长跑
- 输出方案卡,停下等用户确认
方案卡格式
---方案卡---
目标:<一句话>
范围:<目录/文件> [推断] / [用户指定]
约束:<禁止项> [推断] / [用户指定]
验收:<可核查标准>
优先级:<速度 / 稳健>
停止条件:<完成定义>
批次计划(最多 8 个):
B1 <简述> → 产出 <文件/指标>
B2 <简述> → 产出 <文件/指标>
…
⚠️ 高风险操作:<列出,无则写"无">
(高风险:删除/重命名文件、git push/reset、修改系统/全局配置、根目录批量操作)
请确认执行,或回复"调整XXX再确认"
中途可随时输入"暂停"或"终止"停止执行
---方案卡结束---
高风险操作定义(以下任意一条命中即为高风险)
- 删除文件/目录(含
rm -rf、Remove-Item -Recurse)
- 重命名/移动关键文件(配置、数据库、主论文)
git push、git reset --hard、git rebase 等不可逆 git 操作
- 修改系统环境变量或全局配置文件
- 批量修改根目录或超出方案卡"范围"字段的目录
高风险操作在方案卡列出后,执行前再次单独确认,不得自动执行。
确认词识别(识别正向意图,不要求精确措辞)
以下均视为"确认":确认、好的、ok、OK、可以、开始、执行、没问题、go、继续执行
以下视为"调整":调整、修改、改一下、不对、范围换成…、约束加上…
以下视为"停止":停止、取消、不做了、算了、stop
第二轮:批次执行循环(确认后自动推进)
执行前:上下文刷新(防衰减)
每个批次开始前,从 JSON 存档读取目标、范围、约束、验收与批次状态,确保长对话下不偏移合同约定。
执行流程(每批)
- 输出:
[执行 Bn:<简述>]
- 执行(编辑/脚本/数据处理)
- 立即校验(测试/语法/抽样/统计对比)
- 写入存档(见存档机制)
- 输出批次回报(三行),自动进入下一批次
批次回报格式
已完成:<本批次可验证结果>
证据:<文件路径 / 命令输出 / 关键指标>
下一步:B(n+1) <动作> → <预期产出>
中途停止(任何时刻生效)
用户输入 "暂停" → 完成当前步骤后停止,写入存档,输出恢复口令
用户输入 "终止" → 立即停止,写入存档,回滚本批次未完成修改(如可回滚),输出已完成清单
全部完成后的终态总结
任务完成:<目标>
完成批次:B1 / B2 / …
验收结果:<通过 / 未通过项>
产出清单:<文件列表>
存档已清理:.marathon-<任务标识>.json 删除
中途存档机制(防崩溃续跑)
存档时机
- 每批次执行完毕后(必存)
- 工具调用累计 10 次时(中途自动存档)
- 检测到错误或中断信号时(立即存档)
存档文件位置与命名
写入工作区根目录(即当前打开的项目根目录):
.marathon-<任务目标前6字>.json
例:.marathon-文献去重优.json
(避免多任务并发时文件互相覆盖,并便于机器稳定读取)
存档内容
{
"task_goal": "<目标>",
"checkpoint_time": "<YYYY-MM-DD HH:mm>",
"scope": ["<目录或文件1>", "<目录或文件2>"],
"constraints": ["<禁止项1>", "<禁止项2>"],
"acceptance": ["<验收项1>", "<验收项2>"],
"priority": "<速度|稳健>",
"stop_condition": "<完成定义>",
"completed_batches": ["B1", "B2"],
"current_batch": {
"id": "B3",
"status": "in_progress",
"summary": "<当前动作简述>"
},
"remaining_batches": [
{"id": "B4", "summary": "<简述>", "deliverable": "<文件/指标>"},
{"id": "B5", "summary": "<简述>", "deliverable": "<文件/指标>"}
],
"artifacts": ["<路径1>", "<路径2>"],
"resume_command": "按长跑模式续跑"
}
JSON 读写约束
- 仅允许写入合法 JSON,不得夹杂解释性文本
- 字段名保持稳定,后续轮次只更新值,不随意改 schema
completed_batches、remaining_batches、artifacts 始终使用数组,避免自然语言解析歧义
- 若某字段暂无值,写入空字符串、空数组或
null,不要省略关键字段
崩溃/新会话恢复
当用户说"按长跑模式续跑"或"继续上次任务"时:
- 扫描工作区根目录,查找
.marathon-*.json
- 若找到 → 读取,输出恢复方案卡,等用户确认
- 若找到多个 → 列出让用户选择
- 若未找到 → 按正常第一轮处理
---恢复方案卡---
(检测到存档:.marathon-<名称>.json)
任务目标:<目标>
已完成:B1 ✓ / B2 ✓
剩余批次:
Bn <简述> → 产出 <文件/指标>
请确认继续,或回复"从头开始"
---恢复方案卡结束---
存档清理
终态总结输出后自动删除对应存档文件。
自动 Compact 机制(防上下文溢出)
当前环境无原生 /compact 指令,本机制通过"状态外化 + 历史压缩 + 新会话交接"实现等效效果。
压力检测(每批次开始前自动评估,三档)
| 档位 | 判断条件 | 触发动作 |
|---|
| 正常 | 工具调用累计 < 20 次,批次 ≤ 4 | 正常执行 |
| 压力 | 工具调用累计 20-35 次,或批次 5-6 | 执行 Mini-Compact(见下) |
| 临界 | 工具调用累计 > 35 次,或批次 ≥ 7 | 输出续跑交接单,推荐切换新会话 |
Mini-Compact(压力档触发)
在当前批次回报末尾追加一段状态摘要,之后 AI 只依赖存档文件 + 本摘要,不再回溯对话历史:
[Mini-Compact]
合同摘要:目标=<> | 范围=<> | 约束=<> | 验收=<>
进度:B1✓ B2✓ B3✓ 当前=B4 剩余=B5 B6
关键产出:<文件1> <文件2>
存档:<.marathon-xxx.json>
[Compact结束,后续依据存档而非对话历史]
作用:将合同约束和进度浓缩为一段,压缩 AI 需要追溯的有效上下文长度。
续跑交接单(临界档触发)
当上下文接近临界,在当前批次完成后输出续跑交接单并暂停,等用户在新会话继续:
---续跑交接单---
⚠️ 上下文已接近上限,建议开启新对话续跑
任务目标:<目标>
已完成:B1✓ / B2✓ / B3✓ / B4✓
剩余批次:
B5 <简述> → 产出 <文件/指标>
B6 <简述> → 产出 <文件/指标>
存档文件:<工作区根目录/.marathon-xxx.json>
关键产出(已存在):
- <路径1>
- <路径2>
新会话续跑口令:
按长跑模式续跑
(AI 将读取存档文件,跳过已完成批次,直接从 B5 继续)
---续跑交接单结束---
批次回报保持精简(主动压缩对话长度)
- 批次回报严格控制在 3 行,不输出多余说明
- 已完成批次的详细日志只写入 JSON 存档,不在对话中重复展示
- 校验结果只输出结论(通过/失败+原因),不展开中间过程
默认参数新增
| 参数 | 默认值 | 说明 |
|---|
| Mini-Compact 触发阈值 | 20 次工具调用 | 可在方案卡调整 |
| 续跑交接单触发阈值 | 35 次工具调用 | 不可关闭 |
质量闸门("完成"前须全通过)
- 产出文件存在且可读取
- 核心验收项全部通过
- 变更范围未越界(对照方案卡"范围"字段)
- 留下可复核证据(日志/报告/diff 摘要)
默认参数
| 参数 | 默认值 | 可调整? |
|---|
| 单批最大工具调用 | 25 次 | 方案卡阶段调整 |
| 最大批次数 | 8 个 | 超出则拆成两次长跑 |
| 风险策略 | 高风险二次确认,超高风险拒绝 | 不可放宽 |
| 存档频率 | 每批 + 每 10 次工具调用 | 方案卡阶段调整 |
快速启动口令
按长跑模式做:<任务简述>
AI 自动探索并输出方案卡(含 [推断] 标注),无需手填合同。
如需精确控制:
按长跑模式做:<任务简述>
范围:<可改目录>
约束:<禁止项>
验收:<完成标准>