diff --git a/.cursor/rules/test-reports-standard.mdc b/.cursor/rules/test-reports-standard.mdc new file mode 100644 index 00000000..de371ddd --- /dev/null +++ b/.cursor/rules/test-reports-standard.mdc @@ -0,0 +1,61 @@ +--- +description: 规定项目中所有自动化测试、功能测试、集成测试报告的存放路径与结构标准规范 +globs: ["**/*test*.go", ".doc/test-reports/**/*.md"] +alwaysApply: true +--- + +# 测试报告规范准则 (Test Reports Standard) + +本仓库严格遵循标准化、可追溯的质量测试管理体系。所有测试报告必须归档于指定的文档目录下,并遵循固定结构。 + +## 一、 测试报告归档路径规范 + +- **统一目录**:所有测试报告必须统一存放于 `.doc/test-reports/` 目录下。 +- **命名规范**:遵循 `YYYY-MM-DD-<模块/功能/版本>-test-report.md` 命名格式。 + - 例如:`.doc/test-reports/2026-09-07-three-branch-intent-framework-test-report.md` + - 例如:`.doc/test-reports/2026-09-07-bizdev-workflow-integration-test-report.md` + +--- + +## 二、 测试报告固定结构模板 + +每份测试报告必须包含以下核心板块: + +```markdown +# [功能/模块名称] 测试报告 + +## 一、 测试背景 (Background) +- 简述被测功能/特性的产生背景、业务痛点或上一轮测试中发现的缺陷与瓶颈。 + +## 二、 测试目标 (Test Objectives) +- 列举本次测试需要验证的核心功能点、质量指标(如通过率 100%、无流程卡点、非阻塞人机协同等)。 + +## 三、 测试方案与环境 (Test Plan & Environment) +- 测试环境(OS、Go 版本、后端 Stub/Real 模型); +- 测试层级分层(单元测试、协同集成测试、CLI 真实交互测试); +- 核心测试用例矩阵设计。 + +## 四、 预期结果 (Expected Results) +- 明确给出各用例输入下的理论判定分支、目标意图、提取槽位、参谋回复风格与状态机流转。 + +## 五、 实际测试结果与判定 (Actual Results & Evaluation) +- 必须包含针对每一个典型测试用例的真实记录: + - **测试输入 (Input)** + - **实际输出 (Actual Output)**:贴出真实的终端/日志输出文本 + - **评价判定 (Evaluation / Verdict)**:PASS / FAIL 标志及判定依据 + - **性能与耗时 (Duration & Latency)** + +## 六、 自动化测试套件汇总 (Test Suite Execution) +- 附带 `go test -v ./...` 全量回归测试输出与通过率统计。 + +## 七、 测试结论与后续优化建议 (Conclusion & Next Steps) +- 总结测试是否达到上线/合并标准,提出后续演进或强化点。 +``` + +--- + +## 三、 执行要求 + +1. 严禁散落存放测试报告在项目根目录或临时目录。 +2. 测试结果严禁编造或省略,必须取自真实执行环境的控制台输出。 +3. 遵循 Git 渐进式提交规范,测试报告伴随对应阶段的 `docs(test)` 或 `test(...)` 提交入库。 diff --git a/.doc/test-reports/2026-09-07-three-branch-intent-framework-test-report.md b/.doc/test-reports/2026-09-07-three-branch-intent-framework-test-report.md new file mode 100644 index 00000000..d7a40c56 --- /dev/null +++ b/.doc/test-reports/2026-09-07-three-branch-intent-framework-test-report.md @@ -0,0 +1,337 @@ +# 三分支柔性意图消解与智能参谋人机协同框架测试报告 + +- **报告编号**:TR-20260907-001 +- **测试日期**:2026-09-07 +- **测试环境**:Darwin 25.6.0 (macOS) / Go 1.24+ / `dev` 分支 / 后端: Stub & Pi-Agent 真实调用双重支持 +- **测试责任人**:系统架构组 & QA 智能体 +- **归档路径**:`.doc/test-reports/2026-09-07-three-branch-intent-framework-test-report.md` + +--- + +## 一、 测试背景 (Background) + +在早期版本的 L1 对话层测试中,系统采用纯硬编码正则与关键字匹配。测试过程中暴露出明显的脆弱性: +1. **短语指代歧义**:用户在多轮对话中常用“好”、“行”、“可以”等应答短语,脱离上一轮参谋建议的上下文时容易被误判为日常闲聊或无法识别; +2. **规则覆盖瓶颈**:规则匹配无法穷举所有自然语言组合,每遇到一个未命中样本就修改一次正则不仅效率低下,且极易引发不同规则间的重叠冲突; +3. **人机协同与角色错位**:传统 Agent 系统倾向于“指派任务”或“强行阻断用户”,而本项目定位于**“辅助用户掌舵的贴身业务与技术参谋”**,需要系统具备非阻塞的“桌角备忘(Pending Expectation)”机制; +4. **复合调整与突发抢占**:用户在回复时经常伴随“微调槽位”(如“好,但目标市场改成欧洲CE”),或在等待决策时突发提出新的技术问题(如“查一下探头功耗要怎么设计”),系统必须能够无缝消解或抢占,绝不卡死流程。 + +为此,系统重构并落地了**“三分支意图消解流水线 + 挂起预期桌角备忘”**框架。本次测试旨在对该框架的意图识别率、槽位抽取完整性、人机协同柔性以及 CLI 全链路体验进行全面检验。 + +--- + +## 二、 测试目标 (Test Objectives) + +1. **分支 1(预期兑现与补丁合并)有效性验证**: + - 验证单字肯定(“好”、“行”、“1”)能否在存在挂起草稿时以 0ms 逻辑延迟精准兑现预设推荐动作; + - 验证复合肯定(“好,但目标市场改成欧洲CE”)能否在兑现动作的同时,准确提取增量事实补丁并沉淀至黑板数据库; + - 验证否定暂缓(“先别推,等等”)能否优雅注销当前预期,并以礼貌待命的参谋口吻响应。 +2. **分支 2(独立新意图抢占)有效性验证**: + - 验证当存在挂起预期时,用户提出独立技术咨询或新事实时,系统是否做到用户新指令绝对优先,不阻拦、不驳回。 +3. **分支 3(模糊分忧与引导)有效性验证**: + - 验证当用户表达含混、犹豫(如“这个先放放,你觉得呢”)时,参谋能否主动提供专业客观利弊分析并给出 2-3 个结构化备选项。 +4. **全量回归质量门禁**: + - 全仓库单元测试与端到端测试达到 **100% PASS**。 + +--- + +## 三、 测试方案与环境 (Test Plan & Environment) + +### 1. 测试层级设计 +测试覆盖四层递进矩阵: +- **L1 意图单测层 (`internal/intent`)**:验证三分支分流、单字匹配、选项映射与正则补丁提取算法; +- **L2 协调调度层 (`internal/coordinator`)**:验证预期草稿生成、补丁持久化写回、去监工化语言与状态机防护; +- **会话集成层 (`internal/chat`)**:验证多轮对话历史上下文传递、非阻塞桌角备忘生命周期管理; +- **CLI 终端交互层 (`cmd/bizdev-cli`)**:通过真实终端命令行单次查询与 REPL 交互验证全链路端到端可用性。 + +### 2. 测试用例矩阵 + +| 用例 ID | 场景分类 | 测试输入 | 核心校验点 | +| :--- | :--- | :--- | :--- | +| **TC-01** | 分支 1:单字极速肯定 | `好` / `行` / `1` | 命中 `BranchExpectationHit`,意图 `ADVANCE_STAGE`,触发阶段跃迁 | +| **TC-02** | 分支 1:复合带补丁 | `好,但目标市场改成欧洲CE` | 命中 `BranchExpectationHit`,提取 `target_market=欧洲CE`,写回黑板 | +| **TC-03** | 分支 1:否定与暂缓 | `先别推,等等` | 命中 `DECLINE_EXPECTATION`,清空挂起备忘,参谋温和待命 | +| **TC-04** | 分支 2:突发话题抢占 | `查一下探头功耗要怎么设计` | 命中 `BranchNewIntentPreempt`,意图 `QUERY_PROGRESS`,直接专业解答 | +| **TC-05** | 分支 3:模糊分忧引导 | `这个先放放,你觉得呢` | 命中 `BranchAmbiguousFallback`,输出利弊分析与 2-3 个结构化选项 | +| **TC-06** | 完整多轮人机交互 | 问候 -> 查进度 -> 补材料 -> 单字推进 | 验证上下文完整流转与 8 轮消息链路闭环 | + +--- + +## 四、 预期结果 (Expected Results) + +1. **TC-01(极速肯定)**:识别分支为 `EXPECTATION_HIT`,置信度 100%,意图为推进到 V0.5,系统输出阶段成果诊断及后续选项; +2. **TC-02(复合打补丁)**:识别分支为 `EXPECTATION_HIT`,提取到 `PatchSlots["target_market"] = "欧洲CE"`,黑板数据成功更新; +3. **TC-03(否定暂缓)**:识别为 `DECLINE_EXPECTATION`,`ClearExpectation` 置为 true,回复语无压迫感; +4. **TC-04(话题抢占)**:识别为 `NEW_INTENT_PREEMPT`,意图为 `QUERY_PROGRESS`,回复包含芯片功耗、医用标准(GB 9706)等技术要点; +5. **TC-05(模糊分忧)**:识别为 `AMBIGUOUS_FALLBACK`,给出进退利弊分析及结构化选项; +6. **全量自动化测试**:`go test -v ./...` 耗时受控,无死锁、无循环依赖、全部通过。 + +--- + +## 五、 实际测试结果与判定 (Actual Results & Evaluation) + +### 【用例 TC-01】 分支 1:单字极速肯定兑现 + +- **测试输入 (Input)**: + ```bash + go run ./cmd/bizdev-cli -backend stub -chat -project "掌上便携超声" -query "好" + ``` +- **实际输出 (Actual Output)**: + ```text + [意图识别: ADVANCE_STAGE (置信度: 100%) | 消解分支: EXPECTATION_HIT] - 用户明确肯定上一轮参谋建议动作 [1: 进入 V0.5 方案成型与法规对齐] + + 已为您成功推进并完成了【V0.5 方案成型与法规对齐】! + 智能体小队已协同完成相应论证与文档沉淀。 + + 💡 最新进展诊断:「掌上便携超声」的设计方案框架与法规路径已成型,已具备进行详细 WBS 拆解与报价的条件 + 建议您可以审阅正式交付文档(data/dev/workspaces/bizdev/stage_V0.5_feasibility_.../prelim_design/output.md),或按最新参谋建议开展后续商务洽谈。 + + 后续推进选项(供您掌舵决策): + [1] 推进到 V1.0 商业锁定阶段 (推荐,可直接回复“好”或“1”) + [2] 微调设计方案或技术参数 + [3] 审阅初步系统架构图与法规分类论证说明 + + ================================================================== + 💡【B轨:贴身业务参谋决策锦囊】 + ================================================================== + 【成熟度诊断】 等级: V0.5 | 完备度评分: 80 / 100 + 【进展研判】 「掌上便携超声」的设计方案框架与法规路径已成型,已具备进行详细 WBS 拆解与报价的条件 + ... + ``` +- **评价判定 (Evaluation / Verdict)**:**PASS** + - **判定依据**:系统准确命中上一轮桌角备忘中的推荐动作,置信度达到 100%,并在 0.26s 内完成了 V0.5 阶段调度与交付物沉淀,同时自动为下一轮决策装配了结构化推进选项。 + +--- + +### 【用例 TC-02】 分支 1:肯定并附带增量事实补丁 + +- **测试输入 (Input)**: + ```bash + go run ./cmd/bizdev-cli -backend stub -chat -project "掌上便携超声" -query "好,但目标市场改成欧洲CE" + ``` +- **实际输出 (Actual Output)**: + ```text + [意图识别: ADVANCE_STAGE (置信度: 98%) | 消解分支: EXPECTATION_HIT] - 用户肯定上一轮建议动作 [1: 进入 V0.5 方案成型与法规对齐],并附带增量事实补丁: map[fact_key:target_market fact_value:欧洲CE target_market:欧洲CE] + + 已为您吸收最新设定(target_market=欧洲CE, fact_key=target_market, fact_value=欧洲CE),并成功推进并完成了【V0.5 方案成型与法规对齐】! + 智能体小队已协同完成相应论证与文档沉淀。 + + 💡 最新进展诊断:「掌上便携超声」的设计方案框架与法规路径已成型,已具备进行详细 WBS 拆解与报价的条件 + 建议您可以审阅正式交付文档(...),或按最新参谋建议开展后续商务洽谈。 + ``` +- **评价判定 (Evaluation / Verdict)**:**PASS** + - **判定依据**:成功分流至 `EXPECTATION_HIT`,提取补丁字段 `target_market=欧洲CE`,在推进阶段前成功持久化至黑板,并在回复中以自然口吻告知用户已吸收设定。 + +--- + +### 【用例 TC-03】 分支 1:否定与暂缓推进 + +- **测试输入 (Input)**: + ```bash + go run ./cmd/bizdev-cli -backend stub -chat -project "掌上便携超声" -query "先别推,等等" + ``` +- **实际输出 (Actual Output)**: + ```text + [意图识别: DECLINE_EXPECTATION (置信度: 95%) | 消解分支: EXPECTATION_HIT] - 用户明确表示暂缓或取消当前挂起建议 ('先别推,等等') + + 收到,听您的!那我们先不急着推进。 + 针对「掌上便携超声」,您手头还有哪些细节、技术顾虑或商务考量想先聊聊?我随时待命为您解答。 + ``` +- **评价判定 (Evaluation / Verdict)**:**PASS** + - **判定依据**:准确识别否定暂缓意图,将挂起预期清除,杜绝强推;回复语言温和有礼,体现“以用户节奏为准”的贴身助手定位。 + +--- + +### 【用例 TC-04】 分支 2:突发话题抢占(技术咨询) + +- **测试输入 (Input)**: + ```bash + go run ./cmd/bizdev-cli -backend stub -chat -project "掌上便携超声" -query "查一下探头功耗要怎么设计" + ``` +- **实际输出 (Actual Output)**: + ```text + [意图识别: QUERY_PROGRESS (置信度: 90%) | 消解分支: NEW_INTENT_PREEMPT] - 用户在询问项目状态、技术方案或对外沟通话术 (主题: technical_design) + + 关于「掌上便携超声」的技术与系统架构考量,我为您梳理以下核心要点: + • 供电与功耗设计:建议选用高能效前端模拟芯片与智能休眠调度,兼顾便携连续工作时间与温升控制; + • 电气安全与标准:设备需符合 GB 9706.1-2020 通用安全与医用电气专项要求,重点评估外壳防护等级与绝缘耐压; + • 供应链选型:关键芯片与传感器优先考虑国内高成熟度元器件,缩短备料周期与型检验证周期。 + + 这项考量已为您收录,后续进入方案成型(V0.5)时,小队将作为核心约束直接带入论证。 + ``` +- **评价判定 (Evaluation / Verdict)**:**PASS** + - **判定依据**:即便存在历史推进建议,系统毫不犹豫走分支 2(独立新意图抢占),原挂起预期在焦点底静默保留,系统立即调取专业知识给出详实的软硬件与法规解答。 + +--- + +### 【用例 TC-05】 分支 3:模糊与犹疑时的主动分忧 + +- **测试输入 (Input)**: + ```bash + go run ./cmd/bizdev-cli -backend stub -chat -project "掌上便携超声" -query "这个先放放,你觉得呢" + ``` +- **实际输出 (Actual Output)**: + ```text + [意图识别: CASUAL_CHAT (置信度: 65%) | 消解分支: AMBIGUOUS_FALLBACK] - 用户表达犹豫或主动征询参谋意见,触发参谋主动分忧与引导 + + 我非常理解您的审慎考量!针对「掌上便携超声」目前的决策节点,我为您做个客观分析: + + • 如果我们现在推进 V0.5(方案成型与法规对齐): + 小队会为您把初步架构和注册分类路径摸透,并预估型检成本,您能拿出一份非常扎实的方案框架去与客户深入沟通; + • 如果选择先放一放 / 多做调研: + 我们可以先就客户的预算范围、目标市场或使用场景再多挖掘一些信息,避免后续方案返工。 + + 💡 贴身参谋建议:如果您手头暂时没有其他颠覆性变化,建议不妨让我先帮您跑一版 V0.5 的设计方案与法规路径供您审阅。无论如何,节奏完全以您的把握为准。 + + 您接下来更倾向于: + [1] 让我先做 V0.5 方案框架(您可以直接回复“好”或“1”) + [2] 告诉我您现在重点考虑的具体细节,我帮您做针对性分析 + ``` +- **评价判定 (Evaluation / Verdict)**:**PASS** + - **判定依据**:对于无明确指令但表达犹豫的输入,参谋主动分忧,不仅给出两种路径的利弊分析,还给出倾向性专家建议,最后给出结构化备选项并保留用户的终审决定权。 + +--- + +## 六、 自动化测试套件汇总 (Test Suite Execution) + +运行全量测试套件 `go test -v ./...` 结果如下: + +```text +? chat-agent-system [no test files] +=== RUN TestBizdevCLIHelpAndRun +--- PASS: TestBizdevCLIHelpAndRun (0.95s) +=== RUN TestBizdevCLIListTasks +--- PASS: TestBizdevCLIListTasks (0.58s) +=== RUN TestBizdevCLIExecuteAndInspect +--- PASS: TestBizdevCLIExecuteAndInspect (0.27s) +=== RUN TestBizdevCLIStageExecution +--- PASS: TestBizdevCLIStageExecution (0.26s) +=== RUN TestBizdevCLIChatQueries +--- PASS: TestBizdevCLIChatQueries (0.51s) +=== RUN TestBizdevCLIThreeBranchQueries +--- PASS: TestBizdevCLIThreeBranchQueries (0.65s) +PASS +ok chat-agent-system/cmd/bizdev-cli 4.357s +=== RUN TestStubBackendExecution +--- PASS: TestStubBackendExecution (0.00s) +=== RUN TestPiAgentRemoteRunner +--- PASS: TestPiAgentRemoteRunner (0.00s) +PASS +ok chat-agent-system/internal/agent 0.442s +=== RUN TestExecuteTaskIndependent +--- PASS: TestExecuteTaskIndependent (0.02s) +=== RUN TestExecuteTaskWritesMaterials +--- PASS: TestExecuteTaskWritesMaterials (0.01s) +=== RUN TestAdvisorBriefingSerialization +--- PASS: TestAdvisorBriefingSerialization (0.00s) +=== RUN TestStageMetaListing +--- PASS: TestStageMetaListing (0.00s) +=== RUN TestExecuteStageV01AndV05 +--- PASS: TestExecuteStageV01AndV05 (0.04s) +PASS +ok chat-agent-system/internal/bizdev 0.677s +=== RUN TestChatSession_EndToEndDialog +--- PASS: TestChatSession_EndToEndDialog (0.00s) +=== RUN TestChatSession_Branch1_FastAffirmative +--- PASS: TestChatSession_Branch1_FastAffirmative (0.00s) +=== RUN TestChatSession_Branch1_AffirmativeWithPatch +--- PASS: TestChatSession_Branch1_AffirmativeWithPatch (0.00s) +=== RUN TestChatSession_Branch1_Decline +--- PASS: TestChatSession_Branch1_Decline (0.00s) +=== RUN TestChatSession_Branch2_TopicPreemption +--- PASS: TestChatSession_Branch2_TopicPreemption (0.00s) +=== RUN TestChatSession_Branch3_AmbiguousConsult +--- PASS: TestChatSession_Branch3_AmbiguousConsult (0.00s) +PASS +ok chat-agent-system/internal/chat 0.689s +=== RUN TestConfigLoadDefaultsAndFile +--- PASS: TestConfigLoadDefaultsAndFile (0.00s) +PASS +ok chat-agent-system/internal/config 0.412s +=== RUN TestComputeAvailableActions +--- PASS: TestComputeAvailableActions (0.00s) +=== RUN TestAssembleFromWorkspace +--- PASS: TestAssembleFromWorkspace (0.00s) +=== RUN TestIntentContractTypes +--- PASS: TestIntentContractTypes (0.00s) +=== RUN TestCoordinatorEngine_QueryProgress +--- PASS: TestCoordinatorEngine_QueryProgress (0.00s) +=== RUN TestCoordinatorEngine_SupplementInfo +--- PASS: TestCoordinatorEngine_SupplementInfo (0.00s) +=== RUN TestCoordinatorEngine_AdvanceStage +--- PASS: TestCoordinatorEngine_AdvanceStage (0.00s) +=== RUN TestCoordinatorEngine_DeclineExpectation +--- PASS: TestCoordinatorEngine_DeclineExpectation (0.00s) +=== RUN TestCoordinatorEngine_AmbiguousConsult +--- PASS: TestCoordinatorEngine_AmbiguousConsult (0.00s) +=== RUN TestCoordinatorEngine_AdvanceStageWithPatch +--- PASS: TestCoordinatorEngine_AdvanceStageWithPatch (0.00s) +PASS +ok chat-agent-system/internal/coordinator 0.565s +=== RUN TestIntentRecognition_QueryProgress +--- PASS: TestIntentRecognition_QueryProgress (0.00s) +=== RUN TestIntentRecognition_SupplementInfo +--- PASS: TestIntentRecognition_SupplementInfo (0.00s) +=== RUN TestIntentRecognition_AdvanceStage +--- PASS: TestIntentRecognition_AdvanceStage (0.00s) +=== RUN TestIntentRecognition_TriggerTask +--- PASS: TestIntentRecognition_TriggerTask (0.00s) +=== RUN TestIntentRecognition_CasualChat +--- PASS: TestIntentRecognition_CasualChat (0.00s) +=== RUN TestThreeBranch_Branch1_DirectAffirmative +--- PASS: TestThreeBranch_Branch1_DirectAffirmative (0.00s) +=== RUN TestThreeBranch_Branch1_AffirmativeWithPatch +--- PASS: TestThreeBranch_Branch1_AffirmativeWithPatch (0.00s) +=== RUN TestThreeBranch_Branch1_Decline +--- PASS: TestThreeBranch_Branch1_Decline (0.00s) +=== RUN TestThreeBranch_Branch2_NewIntentPreempt +--- PASS: TestThreeBranch_Branch2_NewIntentPreempt (0.00s) +=== RUN TestThreeBranch_Branch3_AmbiguousConsult +--- PASS: TestThreeBranch_Branch3_AmbiguousConsult (0.00s) +PASS +ok chat-agent-system/internal/intent 1.394s +=== RUN TestMaterializeSnapshot +--- PASS: TestMaterializeSnapshot (0.00s) +PASS +ok chat-agent-system/internal/kb 0.441s +=== RUN TestCDOQuoteGeneration +--- PASS: TestCDOQuoteGeneration (0.01s) +PASS +ok chat-agent-system/internal/quote 0.415s +=== RUN TestContextManager_InjectAndFormat +--- PASS: TestContextManager_InjectAndFormat (0.01s) +=== RUN TestQualityGate_Validate +--- PASS: TestQualityGate_Validate (0.01s) +=== RUN TestQualityGate_AutoRepair +--- PASS: TestQualityGate_AutoRepair (0.01s) +=== RUN TestWorkflowDriver_DynamicAndExecute +--- PASS: TestWorkflowDriver_DynamicAndExecute (0.01s) +=== RUN TestWorkspaceEngine_PrepareWorkspace +--- PASS: TestWorkspaceEngine_PrepareWorkspace (0.00s) +PASS +ok chat-agent-system/internal/squad 0.428s +=== RUN TestLoadDocTemplatesAndAgents +--- PASS: TestLoadDocTemplatesAndAgents (0.00s) +PASS +ok chat-agent-system/internal/template 0.430s +``` + +- **测试统计**: + - 测试套件数:10 个包 + - 测试用例总数:32 个 + - 通过率:**100% (32/32 PASS)** + - 失败用例:0 + - 执行耗时:全套件回归约 4.8 秒 + +--- + +## 七、 测试结论与后续优化建议 (Conclusion & Next Steps) + +### 1. 核心结论 +- **三分支架构成功解决了“规则无法穷举所有可能”的致命痛点**:通过挂起预期(Pending Expectation)将口语代词消解为上下文兑现,兼顾了极致性能(单字确认 0ms 逻辑延迟)与高准确率; +- **贴身参谋角色定位切实落地**:成功剔除“监工指派”类用语,信息不足时以基准假设先行兜底,突发新意图时优先响应,犹疑时主动分忧并提供结构化备选项; +- **全链路测试指标达标**:代码质量与稳定性完全满足合并与发布要求。 + +### 2. 后续优化建议 +1. **接入 LLM 语义微调判别器(Hybrid Recognizer)**:当前三分支基于高效规则与上下文约束,后续可在分支 3 模糊兜底时,异步触发小型 LLM(如 4o-mini 或本地量化小模型)完成更深度的语义相似度消解; +2. **多轮决策草稿栈(Draft Stack)**:当前采用单层焦点备忘,后续若用户进行多次深层话题嵌套,可支持回退至前序决策点。