Skip to content

12. 中断恢复与人工确认:信息不足时,先停下来问清楚

上一章练习参考答案

第一题,知识检索、训练者记忆读取、K 线窗口读取在很多场景下可以并行,因为它们都依赖交易上下文,但彼此不强依赖。

第二题,上下文完整性检查最适合做中断恢复。因为它能判断止损、止盈、计划、截图备注是否足够。

第三题,保护栏应该入口先做,输出前再做一次。入口挡明显越界,输出前防止模型生成了不该说的话。

新问题:信息不够时,系统不能硬编

第三章我们已经埋了一个样本:T-2001 缺少止损和止盈。

现在产品问:

“用户信息没填全时,能不能先问他两个问题,等他补完再继续?”

这就是中断恢复。

如果没有中断机制,系统只有两个坏选择:要么硬编一份复盘,要么直接报错结束。训练产品更好的做法是先停下来,问缺什么。

真实调用效果

请求:

powershell
Invoke-RestMethod `
  -Uri "http://127.0.0.1:18091/api/pa-review/reviews" `
  -Method Post `
  -ContentType "application/json; charset=utf-8" `
  -Body '{"tradeId":"T-2001","includeKline":false,"question":"只知道我追了突破,帮我复盘"}'

返回:

json
{
  "status": "NEEDS_MORE_CONTEXT",
  "boundaryNotice": "这是训练复盘,不提供实盘买卖建议;数据不足时先追问。",
  "primaryProblem": "信息不足:缺少止损、止盈或退出计划,不能稳定评价风险执行。",
  "questions": [
    "这笔训练交易的止损价是多少?",
    "这笔训练交易的止盈或退出计划是什么?"
  ],
  "experts": ["人工确认节点"],
  "sections": {
    "interrupt": "需要用户补充上下文"
  }
}

这比“根据你描述,建议注意风险”强太多。因为系统没有假装知道它不知道的东西。

代码分支

ReviewCoachService 里这段就是中断雏形:

java
if (!trade.hasRiskPlan()) {
    return needsMoreContext(trade);
}

needsMoreContext 会返回问题列表:

java
List.of(
        "这笔训练交易的止损价是多少?",
        "这笔训练交易的止盈或退出计划是什么?"
)

真实 Graph 里,这个节点会把当前状态保存起来。用户补充答案后,从中断点继续,而不是重新跑完整流程。

人工确认不是失败

很多 AI 产品把“问用户”看成能力不足。复盘教练不能这样想。

交易训练里,信息不全时追问,反而是专业表现。它告诉用户:没有计划,就没有高质量复盘。

这一章真正解决了什么

中断恢复解决的是“信息不足时不胡说”。

它让系统从一次性问答,变成可以来回补上下文的训练流程。

练习题

  1. 中断状态应该保存哪些字段,才能恢复复盘?
  2. 用户补充的信息和原交易记录冲突时,应该以谁为准?
  3. 哪些字段缺失时必须中断,哪些字段缺失时可以降级复盘?

Built with VitePress. Deployed on Cloudflare Pages.