Files
zhanghongyu_0626 01db9af32b fix(memory): Resolve multi-turn dialogue defects and address existing test bugs
- Fixed three key defects in multi-turn dialogue handling: improved RAG to utilize merged messages, enhanced intent classification with recent memory, and ensured proper merging of chat and consultation memories.
- Closed five existing test bugs unrelated to the current round, including parameter adjustments and assertion corrections in various test files.
- Finalized adjustments in the F-β selection process to align race condition handling in test cases, ensuring all relevant tests pass successfully.

This update enhances the coherence of multi-turn dialogues and improves the reliability of the testing framework.
2026-09-14 00:59:25 +08:00

48 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 需求迭代
| 日期 | 变更 | 原因 | 影响 |
| --- | --- | --- | --- |
| 2026-09-05 | init 项目记忆 + app 脚手架 | 用户要求 memory kit + 目录结构 | MEMORY / ENVIRONMENT / REQUIREMENTS / FRAMEWORK / FLOW / TODO |
| 2026-09-05 | 需求拆解四 Agent P0 场景定稿 | 用户故事归纳 | REQUIREMENTS(对照 docs/需求拆解/) |
| 2026-09-05 | 技术栈 Windows 原生 + Milvus Lite | 本机内存限制 | FRAMEWORK |
| 2026-09-05 | Core 模拟库 jinrong_core + 扩大种子 + Neo4j 同步 | 无真实 Core | FRAMEWORK / FLOW / ENVIRONMENT |
| 2026-09-05 | Agent 编排依赖改为 LangGraph 为主 | 状态图 + Tool 节点 | FRAMEWORK |
| 2026-09-05 | memory 全量刷新:§0 新 Agent 交接清单 + 实现状态表 + bootstrap | 脚手架已落地,便于无上下文交接 | MEMORY / FRAMEWORK / FLOW / TODO / REQUIREMENTS / ENVIRONMENT |
| 2026-09-07 | 追加需求 FR-8/FR-9/FR-10 经独立 AI 评审→修订→复审并入 PRD v1.1 + 规则表 v1.1 + 开发计划 v1.2(C4~C6 任务 + 挂账 #1~#9) | 弥补单笔合规盲区/处置时效红线/代理人操作风险 | PRD / 附-风控规则表 / 开发计划 |
| 2026-09-07 | 《实现方案-风控追加需求v1.1-C4C6.md》定稿:独立 AI 评审 FAIL(P0×1/P1×4/P2×6)→ 修订闭环;C4~C6 编码依据可照抄 | 开发流程第 2 步(另一 AI 验证挑毛病) | 实现方案文档 |
| 2026-09-07 | 全库文档同步:分支口径修正(`feature/risk` → 实况 `risk-control-agent`,与 main 分叉 67/4)+ T-21 评审闭环 / 425 绿 / T-03 / C1~C3 状态落账 + 新建项目根交接文档.md | 文档与实况不一致(用户排查要求) | MEMORY / TODO / REQUIREMENTS / FRAMEWORK / FLOW / ENVIRONMENT / ITERATION / PRD / 架构设计 / 开发计划 / README / 交接文档 |
| 2026-09-07 | **阶段一「对齐 main 基准」AL-01~AL-08 完成**(逐项独立 commit bb244f4~b5fd52e):SUIT-001~008 换核为 core_ro.check_suitability(C×R 矩阵 + match_result 五值 + JR-AST/FM 契约)· risk_suitability_log 重建 21 列 · Core 表 is_hnw/风评 expires_at 七新列 · 种子 33 客户/14 产品 · 全量 **406 passed 0 failed 0 skipped**(425→406,SUIT 测试重写)· uvicorn 冒烟三端点通过 · risk-m1 补打(3c07de6)· 六项拍板全落定 | 阶段一执行(用户拍板 main = 需求唯一基准);基线变更与 SUIT 体系退役需落账 | MEMORY / TODO / REQUIREMENTS / FRAMEWORK / FLOW / ENVIRONMENT / ITERATION / README / 交接文档 |
| 2026-09-07 | **阶段二 C4~C6 完成**(FR-8/9/10):集中度 `fe4801b` · 时效升级 `90d0660` · 代理人行为链 `66ec7eb` · 挂账 #1~#9 核对无违规 · tag `risk-m4` · 482 pytest 绿 | PRD v1.1 追加需求落地 | MEMORY / TODO / REQUIREMENTS / PRD / 开发计划 |
| 2026-09-08 | **前端接入方案 B/C**:chat 拉侧三端点 `8328c24` · SSE 流式 `01ec5fc` · 503→502 测试基线 | 前端联调前置 | MEMORY / TODO / chat / session_repository / agent_service |
| 2026-09-08 | **AL-09 合并接线完成**(`merger` 分支):JWT 统一 · 模块 chat/agent/memory 恢复 · auth_adapter S2 接缝 · trace 中间件 ApiError re-raise · test_module_boundary 绿 · **502 passed 1 skipped** | 风控模块并入宿主 Wave 0 | MEMORY / TODO / FRAMEWORK / FLOW / REQUIREMENTS / ENVIRONMENT / 合并注意事项 |
| 2026-09-08 | **代销平台 API 口径拍板**:路由 A(业务域)· 重复功能以平台 API 为准 · 《接口契约-代销平台API-v0.1》 | 统筹 P1 实现前定契约 | 04 / MEMORY / TODO / 接口契约 |
| 2026-09-09 | 行情 Phase B 文档(C-05 选型 + v0.2 草案)+ 交叉引用 | 互联网代销无公开看盘 API 调研落档 | 04 / Core / MEMORY / AGENTS / 前端 spec §2.6 |
| 2026-09-09 | chat 同步/流式落库免责声明口径统一(`_assistant_content_for_persist`) | 评审:sync/stream 落盘一致性 | chat.py / test_chat |
| 2026-09-08 | P1 环境收口(续):补建 `risk_aml_list` + AML 种子 · `fix_utf8_seed.py` 修复 Windows 中文乱码 · 集成测试 11 例恢复 · **530 passed 0 skipped** | 真库集成 skip/失败 | MEMORY / ENVIRONMENT / FLOW / bootstrap 脚本 |
| 2026-09-09 | **四角色收益/洞察 Dashboard 需求 v2**(锚点修正·四角色 Demo 数·风控 Empty·Hook/联调) | 用户再完善需求 | wealth-dashboard spec v2 / frontend-p0 §2.5 / TODO |
| 2026-09-09 | **客服 Agent 代码合并**(`customer-service-agent` 只增不盖) | 用户要求合并上传内容 | `客服Agent-合并说明.md` · Wave1~5 新增文件 · CS-C-11 迁移 SQL · wave 测试暂 ignore |
| 2026-09-10 | **客服 Wave3 批次**:1B 共用 sanitize · C-04/C-05/C-11 等 · **786 pytest** | 用户「全做」批次 | MEMORY / REQUIREMENTS / FLOW / TODO / 课程 |
| 2026-09-10 | **数据分析 Agent 护栏/口径迭代**(cherry-pick `445cfbb` 功能层)· guardrail Decimal/编号/时间窗 · 流水 N-01 消歧 · battery 脚本改 `issue_dev_token` | 远程 `data-analysis-agent` 未合 merger | guardrail / dict_service / wave6 测试 / `数据分析Agent-代码迭代.md` |
| 2026-09-10 | **数据分析 D-06 缓存**:结果缓存表世代 + 写侧 bump(trade/alert/L3)· **模板填参**(`template_service`)· 问数页 template/cache 标签 · `804 pytest` | 用户拍板 D-06 必须 · PII 脱敏暂缓 | cache_service / template_service / analyst_agent / web |
| 2026-09-10 | **风控前端 P1 + 演示**:台账筛选 · 适当性/AML 页 · `prepare_all.ps1` · 深潜课模块 7 | 2026-09-10 拍板收口 | web/risk · scripts/demo · docs/course |
| 2026-09-10 | **前端/API 优化 TODO**:硬伤盘点写入 `TODO.md` §前端/API · 优化 | 用户要求落账 | TODO · ITERATION |
| 2026-09-10 | **Chat 会话删除/清空**:`close-all` + `?status=active` · 侧栏 active 双滤 · UI 删除/清空 | 用户反馈删不掉 | chat.py · web · 整体测试 CHAT-4 |
| 2026-09-10 | **前端 E2E 问题清单收口**:`AuthProvider` 修登录崩溃/退出死循环 · Redis `socket_connect_timeout` 0.5s · 预警筛选防抖 · I18N formatter · 对话 Markdown 粗体 · A11Y `index.html` · AntD `<App>` | `docs/整体测试/前端整体测试交接.md` 登记项 | web · `database.py` · MEMORY |
| 2026-09-10 | **答辩/课程**:`docs/答辩/答辩知识点清单.md` · 总览模块 8 · 问数课 D-06 模块 5 · 导览中心更新 | 用户答辩准备 | docs/course · MEMORY |
| 2026-09-10 | **客服问候修复**:「你好」关键词 → `chit_chat` · LLM 失败 `CHITCHAT_DEGRADED_TEXT`(非 FALLBACK)· 游客问候快路由 | 用户反馈 Chat 无法回答问候 | customer_prompts · customer_service · visitor · tests |
| 2026-09-11 | **TEST-RISK-001 修复**:`RiskListAccess`/`ThresholdWriteAccess` · service_risk 只读 GET · compliance 进 risk 矩阵 · STAFF-31001 · handled 筛选 · 台账 stats · 前端标签/409/结构化 · SSE ping · **825 pytest** | 沙盘 TEST-LOG v1.1 | `repo_access` · `risk.py` · `deps.py` · web risk pages |
| 2026-09-11 | **问数 N-03/N-07 + 自检**:`GET .../sample` · `POST /escalate` · `GET /api/ready` · DevReadyBanner | Superpowers 批次 | `analyst.py` · `ready.py` · web |
| 2026-09-11 | **TEST-AN-001 RBAC 修复**:sql_guard A/B · `_audit_terminal` · TEST-LOG v1.2 · **820 pytest** | 沙盘测试文档 | `sql_guard` · `analyst_agent` |
| 2026-09-11 | **行情历史种子入库**:`07-seed-nav-history.sql` · `nav/history` API · **833 pytest** | 近一年 Demo | `scripts/core` · MEMORY |
| 2026-09-12 | **问数分析助手 + 模板原句**:`/analyze` · UNION 规范化 · **858 pytest** · **27 Vitest** | 答辩实测 | 见 [TEST-LOG-AN-002](tests/2026-09-12-analyst-template-phrases/TEST-LOG-2026-09-12-AN-002.md) |
| 2026-09-12 | **投资顾问 Agent 合并(进行中)**:`integrate/advisor-agent` · `/api/advisor-agent/*` · 迁移 SQL · sprint 测接缝 · **926 passed / 65 sprint failed** | xinghuo/advisor-agent → merger | MEMORY · FRAMEWORK · [合并说明](../项目框架设计/理财顾问Agent-合并说明.md) |
| 2026-09-12 | **问数原句模板 + 常用问法 UI**:`match_phrases` · `/template-prompts` · 标星/最近 · 种子问句 | 模板误命中口径 | template_service · web · seed |
| 2026-09-12 | **Core 模拟数据 enriched**:净值 **CSI300+beta**(`seed_nav_history.py`)· **08 跨月交易** · 持仓/阈值 DEMO 行保留 | 问数/趋势/demo 更贴近大盘 | `scripts/core/07` `08` · reset.ps1 |
| 2026-09-10 | **TODO 日终清单 + 优化 TODO 补全**:硬伤盘点落账 · 2026-09-10 已完成/进行中/将要做 | 用户要求 | TODO · ITERATION |
| 2026-09-13 | **客户线交易端到端第四轮(CT-001)**:真浏览器 + 真 HTTP + 真库对账 · P0 鉴权 `infer_roles` 忽略 body.roles · P1 适当性 `simulate_self_service_blocked` · L1 幂等 409 · CT6 赎回 T+2 份额 · **Part A 135 PASS/0 FAIL/1 SKIP/25 INFO · Part B 41 PASS/0 FAIL/0 SKIP/7 INFO(退出码 0)** | 客户线交易 E2E 收口 | MEMORY / TODO / gateway / convert / trade_action |
| 2026-09-13 | **端到端第五轮覆盖缺口补测(三条线全补 · 一线一包)**:[AN-003](tests/2026-09-13-analyst-e2e/TEST-LOG-2026-09-13-AN-003.md) 问数 **137/6** · [AD-001](tests/2026-09-13-advisor-e2e/TEST-LOG-2026-09-13-AD-001.md) 理财师 **31/4**(AD8 接缝取证)· [RK-001](tests/2026-09-13-risk-e2e/TEST-LOG-2026-09-13-RK-001.md) 风控 **23/0** · [XC-001](tests/2026-09-13-crosscut-e2e/TEST-LOG-2026-09-13-XC-001.md) 横切 **33/0/1** | 「还有哪块没有端到端跑过」 | MEMORY / TODO / tests 四包 / scripts/dev |
| 2026-09-13 | **前端设计栈补强 + 测试基建收口**:Inter 字体 + Radix Colors · 6 个 `test_sprint2_*.py` 陈旧登录契约(`/api/v1`)迁移 `advisor_test_utils.login_token` | 前端一致 + 陈旧契约修复轮 | web / tests |
| 2026-09-14 | **多轮对话三缺陷修复(visitor/customer/advisor · 6 文件 +90/−20)**:RAG 只用当前消息 · 意图分类只用当前消息 · 闲聊+咨询记忆割裂从不合并 → visitor/customer 各加 `_merged_*` 合并 consult+chitchat、RAG query 拼近期原文、INTENT 注入 `{memory}`、`run_tool` 转发 `context_window`、`search_knowledge` 接 `context_window`(问数线 `analyst_agent` 单发 NL→SQL 排除) | 用户「看看其他 agent 有没有类似缺陷」 | MEMORY / TODO / visitor / customer / advisor service |
| 2026-09-14 | **既存测试 bug 收口(5 处 · 非本轮引入,git stash 取证 pristine HEAD 即失败)**:`fake_suit` 缺 `user_message` · `test_query_injected` 断言缺 `_context_window` · `VALID_INTENTS` 14 非 13 · `looks_like_trade_execute` 把「申购了啥」误判 trade_action(真 bug:补 `_TRADE_QUERY_MARKERS` 过去问法)· `test_chat` mock 返 4 元组现返 5 | 复跑取证 | tests / trade_action_service |
| 2026-09-14 | **F-β 选A 收口**:`test_convert_confirm.py` 28 条已在 `f856ab4`(客户 C3→C4)修掉;剩 `test_convert_accept.py::test_accept_uk_idem_race_falls_back_to_idempotent` 竞态用例抢占者份额 100→50 对齐 L1 四元组 → **五文件 99 passed / 0 failed** | L1 同键异体→409 语义 | tests / convert_service |