附录 D · 失败模式速查

用法:按「症状」查表 → 先做「第一动作」→ 再按根因修。 铁律:先取证据,再下结论;先跑极简对照,再说模型不行。


D.1 上下文与循环类

# 症状 第一动作 高频根因 修复 章
1 反复读同一个文件 / 无限重试 查 tool/call 序列 停止条件缺失、inbox 重复投递 加 max_steps;检查 agent/turn-stopping 02 / 06
2 长任务后半段开始胡说 比对 PreCompact 归档与压缩后提示词 关键规则被压掉 把规则迁到 hook,或设为常驻 section 08 / 10
3 「你好」都要上万 token 看上下文面板 20+ 工具 schema 常驻 按需准入、Skills、极简模式 09
4 上下文越跑越长直到截断 看 tool/result 总量 中间结果全量回灌 用 PTC 只 return 聚合;工具结果落盘 09
5 同一 turn 前后行为矛盾 查 assistant/attempt 与各 step 的 request/context attempt 间运行时事实刷新 固定运行时事实,或缩短 turn 03 / 06
6 模型提到没给过的文件/人名 Trajectory 按来源逐个关闭,二分 插件注入了幽灵上下文 关掉注入源;走 agent.inject() 正规入口 06 / 10

D.2 工具与权限类

# 症状 第一动作 高频根因 修复 章
7 写了「只读」还是改了文件 看权限预设与 hook 是否真的生效 把约束写成建议 迁到 PreToolUse + 沙箱 denyWrite 02 / 08
8 hook 挡不住用 Bash 写文件 看 matcher 只匹配 Write\|Edit,Bash 不触发 加 sandbox 文件系统规则,双层覆盖 08 / 17
9 工具参数格式总错 看 step-admitted schema 描述歧义、枚举不全、无示例 收窄 schema + one-shot 示例 09
10 工具返回「成功」但结果不对 看 tool/result 原始字节 输出被截断 / 只回摘要 调大上限或落盘再读 06
11 插件一加载 Agent 就什么都不做 检查监听器 waterfall 漏写 next() 补 next() 委托 11 / 12
12 插件卸载后仍有重复工具/监听器 重新 dump 工具注册表 注册没走 ctx.effect() 全部改走可逆注册 11 / 12
13 ../ 能写出工作区 检查路径校验 只靠提示词约束 is_relative_to + OS 沙箱双层 02 / 17
14 提示注入让 Agent 外联 查网络日志与出站域名 默认允许网络 默认 deny + allowedDomains 17

D.3 模式与环境类

# 症状 第一动作 高频根因 修复 章
15 极简里能做对、标准里做不对 保持这个对照,别急着换模型 工具 schema / 提示词冲突 / 压缩 / 注入污染 逐项关能力,二分定位 05 / 06
16 极简里也做不对 检查题面是否可机器判定 模型能力 / 题面歧义 换题面或换模型,才轮到这一步 05 / 15
17 切到 PTC 后审批失效的错觉 查审批日志 误以为托管进程绕过流水线 确认子调用仍走统一流水线 05 / 09
18 Code mode / PTC 文档对不上 固定版本号 版本改名(曾伴随 session API 变化、SQLite 后端移除) 锁版本,以本机 dump 为准 04 / 05
19 配置改了不生效 dsh --dump-config patch 层叠顺序 / 被上层覆盖 按 profile→bundle→patch→overlay 顺序排查 13
20 自定义预设起不来 dump 真实树 row id 写错 / 依赖未声明 补 inject,核对 config-catalog 12 / 13

D.4 编排与调度类

# 症状 第一动作 高频根因 修复 章
21 并行 Agent 互相覆盖文件 检查是否共用工作目录 共享可变状态 一 Agent 一 worktree 14 / 18
22 定时任务没执行 查宿主是否在运行 宿主关闭期间调度停止 always-on 宿主;补投只覆盖最近一次 06 / 14
23 简报/通知发了两遍 查投递记录 投递不保证恰好一次 业务层幂等检查;任务当触发器 06 / 14
24 子 Agent 说没有定时工具 看委派 deny 列表 schedule_* 已被 deny 由主 Agent 统一调度 06 / 14
25 时区不对 / 夏令时错位 看是否显式 IANA 依赖浏览器上报时区 显式写 Asia/Shanghai 等 06
26 汇总结果格式不齐 查状态契约 输出 schema 没约定 补齐六字段状态契约 14
27 多个 DSH 进程操作同一团队冲突 查团队状态文件位置 状态默认在当前工作区、不自动同步 单进程持有 + 外置状态 14

D.5 评测与生产类

# 症状 第一动作 高频根因 修复 章
28 「感觉变快了」但说不出数字 停止优化,先建基线 没有指标 记录耗时/工具次数/输入输出 token/测试全绿/改动行数 15
29 A/B 结果不可复现 检查 git status 漏了 git clean -fd 重置脚本化,跑前校验 15
30 同时改模型与 Harness 后归因不清 拆实验 违反单变量 一次只动一个变量 15
31 Agent 宣布完成但测试是红的 查 Stop 条件 Done 是感觉不是状态 Stop hook 自检 08 / 15
32 月底才发现超支 查按 session 记账 只有账单级可见性 实时 token/USD 看板 + 熔断 18
33 告警一上线就误报 查阈值来源 静态阈值 / 单事件触发 时间窗 + 最近 24h backtest 16
34 出了问题查不到证据 查日志是否外送 只在容器 stdout audit 外送持久存储 16 / 17
35 凭据出现在日志里 全库搜 token 字样 未脱敏 / 未 mask *** redaction + envVars mask 17

D.6 万能三步(症状不在表里时用)

1. 取证据    → 读 Trajectory / trace,别复述现象
2. 做对照    → 极简模式同题面跑一次,判模型 vs 环境
3. 固化      → 一条规则 + 一个确定性检查 + 一条 eval 用例

第 3 步不可省。只修好这一次,不叫修好。


回到 第 06 章 · 第 07 章 · 总目录

本系列为本站原创教程,基线为微信公众号《DeepSeek Harness 最新高阶指南》(2026-11-05),并汇总 DeepSeek 官方仓库与文档站、Cordis / arXiv:2608.25512、以及 OpenAI / Anthropic / LangChain / Martin Fowler 等一手资料。每条引用均标证据等级,完整清单见 附录 B;未定位到一手来源的线索单列,未编造补位。DeepSeek Harness 为 developer preview,官方 SAFETY.md 明确「未经过安全审计、不得视为生产就绪」,命令与配置键可能随版本失效。资料截止 2026-11-06。姊妹篇:《FDE 入门到精通》。