Files
group_fqcd_jr/docs/evidence/20260919-t4b-f1f2-decisions.json
T
张胜宇 5d0becb67d 客服 Agent 重构收口:五出口决策链 + 知识库档位隔离 + 前端入参边界(答辩演示版本)
一、客服 Agent 智能增强(正面回应"不智能、动不动就转人工")
- 决策链由 2 个出口扩到 5 个:E1 澄清 / E2 计算型 / E3 知识直返 / E4 证据约束生成 / E5 分级回退
- 转人工从"默认动作"降为最后一档 E5c,只保留 4 类白名单:
  P0 反诈 / P1 账户与个人数据 / P2 写操作与争议 / 用户明确要求人工
- 46 条金标实测(修复前 → 修复后):
  转人工率 43.5% → 10.9%;出口准确率 45.7% → 100%;事实正确率 69.6% → 100%
  禁忌违反 1 → 0;档位越权 / 无出处数字 / 误拒 四项零容忍全 0
- 安全不变量 INV-1~INV-5;零容忍规则未删,改的是挂载点
  (输出侧字面黑名单 → 检索层档位隔离 + 判定层合规词表 + 输出守护)

二、知识库:档位单点化与物理隔离
- 新增 app/core/knowledge_tier.py 作为档位规则唯一落点(G-03),
  knowledge_contracts.py 原定义块改为显式再导出(X as X,非副本)
- 档位过滤由 bool 默认值(fail-open)改为 tiers 必填集合(缺参即 TypeError)
- Milvus 侧四集合按 visibility 分区键物理隔离;双 schema 收敛为一套
- 新增 app/core/actor.py:访客三元组与匿名判定的唯一构造/判定点(G-01/G-01b)
- 新增 app/core/fund_fee_rules.py:费率计算纯函数

三、前端入参边界对齐(本轮 W11 新修,4 处"校验宽于存储")
- message 加 max_length=8000(与浮窗 widget.js 的 maxlength 一致)
- session_id 加 1—64;idempotency_key 上限 128 → 64(对齐列宽 String(64))
- feedback_type 加 max_length=32(对齐列宽 String(32))
- 8 条路径参数补 min_length=1 + max_length=64 + 字符集正则
  ({session_id} / {run_id} / {handover_id})
- 改前超限值会落到 MySQL 才失败(500);改后一律 422 AGENT_INPUT_INVALID + 字段级定位
- 新增 tests/unit/api/test_frontend_boundaries.py(33 例),含"端点表 ↔ OpenAPI 全量对照"

四、投顾模块整体清除(D4.4 / D4.5)
- 删除投顾相关 controller / schema / model / repository / service 及门户页面
- tools/portal_api_check.py 同步作废 AD003/AD005/AD011/A047 四条用例与 advisor_t 登录
  (端点与账号均已不存在,此前稳定报 3 条假红)

五、验证(提交前实测)
- pytest -q:1856 passed / 2 skipped / 0 failed
- ruff check app tools tests:19(= 基线);mypy app:2(= 基线)
- 前端接口契约体检 portal_api_check.py:38 项,通过 34,失败 0,跳过 4
- 全链路冒烟 e2e_smoke_test.py --read-only:31/31
- HTTP 全链路探针 http_probe.py:11/11 succeeded
- 跨文档一致性 _consistency.py:GATE PASS
- 真机边界复验 12 条:12/12 符合预期

六、纪律与文档
- 可改文件白名单 A-09(docs/46)与底座会签申请单 A-10(docs/47,组 1—组 4 全部受理)
- 零 DDL:未新增/修改任何表结构,89 张业务表与基线一致
- 证据留痕:docs/evidence/**(含 46 条金标 score、快照、清除与重建记录)
- 未提交(刻意排除,见提交说明):仓库内 客服agent/ 与 开发文档/ 是 2026-09-16 前的
  过期副本(Todolist 440 行 vs 权威 D2.1 1167 行),权威正本在仓库外;
  _chunks_report.txt 是 tools/build_knowledge_chunks.py 生成的本地产物
2026-09-20 14:33:30 +08:00

236 lines
12 KiB
JSON
Raw 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.
{
"evidence_id": "20260919-t4b-f1f2-decisions",
"generated_at": "2026-09-19T14:54:35+08:00",
"session": "D1.6 §4.27 / D2.1 v6.14",
"what": "F-1(B 组判据对齐 DEC-I8)+ F-2(转人工只由显式要求触发)落地后的真实复验",
"how": "进程内复用生产链路:get_agent_factory() → create(customer_service) → resolve_config → classify_intent(真实 IntentClassifier)→ _route_and_answer(真实 Milvus 三集合 + 嵌入端点 + DeepSeek)",
"cases": [
{
"case": "D-05",
"message": "南方基金客服现在方便联系吗?",
"roles": [
"visitor"
],
"classified_intent": "transfer_human",
"classified_confidence": 0.9,
"exits": [
"E4"
],
"transfer_required": false,
"transfer_reason": null,
"clarification_required": false,
"text": "可以。客服热线为 400-889-8899,服务时间为每日 7:00—22:00。",
"param_search": [],
"tool_call_count": 1
},
{
"case": "B-01",
"message": "基金的起投金额是多少?",
"roles": [
"visitor"
],
"classified_intent": "product_inquiry",
"classified_confidence": 0.9,
"exits": [
"E4"
],
"transfer_required": false,
"transfer_reason": null,
"clarification_required": false,
"text": "南方现金添利货币市场基金〔示例〕:起投金额 1 元",
"param_search": [],
"tool_call_count": 1
},
{
"case": "B-02",
"message": "基金申购和赎回有哪些费率?",
"roles": [
"visitor"
],
"classified_intent": "faq",
"classified_confidence": 0.95,
"exits": [
"E4"
],
"transfer_required": false,
"transfer_reason": null,
"clarification_required": false,
"text": "公募基金费率总表列示的费率如下(均为年费率或按对应区间收取):\n\n申购费率(原费率):货币基金 0;纯债基金 0.80%;混合基金 1.50%;股票基金 1.50%;QDII 基金 1.60%。\n申购费率(官方直销 1 折):货币基金 0;纯债基金 0.08%;混合基金 0.15%;股票基金 0.15%;QDII 基金 0.16%。\n\n赎回费率(<7 天):货币基金 0;纯债基金 1.50%;混合基金 1.50%;股票基金 1.50%;QDII 基金 1.50%。\n赎回费率(7—30 天):货币基金 0;纯债基金 0.75%;混合基金 0.75%;股票基金 0.75%;QDII 基金 0.50%。\n赎回费率(30—365 天):货币基金 0;纯债基金 0.10%;混合基金 0.50%;股票基金 0.50%;QDII 基金 0.50%。\n赎回费率(1—2 年):货币基金 0;纯债基金 0;混合基金 0.25%;股票基金 0.25%;QDII 基金 0.25%。\n赎回费率(>2 年):货币基金 0;纯债基金 0;混合基金 0;股票基金 0;QDII 基金 0。\n\n管理费/年:货币基金 0.15%;纯债基金 0.30%;混合基金 1.20%;股票基金 1.20%;QDII 基金 1.50%。\n托管费/年:货币基金 0.05%;纯债基金 0.10%;混合基金 0.15%;股票基金 0.20%;QDII 基金 0.25%。\n\n费用计算示例:申购南方平衡优选混合〔示例〕10 万元,原申购费 100,000 × 1.50% = 1,500 元;官方直销 1 折后申购费 100,000 × 0.15% = 150 元;实际参与申购金额 100,000 − 150 = 99,850 元。持有 30 天后赎回 10 万元,赎回费 100,000 × 0.50% = 500 元,实际到账 100,000 − 500 = 99,500 元。持有满 2 年以上赎回,赎回费为 0,到账金额 = 赎回份额 × 当日基金份额净值。\n\n另据销售管理办法,赎回费率 <7 天为 1.50%(惩罚性费率,全额计入基金资产)。",
"param_search": [],
"tool_call_count": 1
},
{
"case": "B-04",
"message": "南方基金投顾服务起点是多少?",
"roles": [
"visitor"
],
"classified_intent": "product_inquiry",
"classified_confidence": 0.9,
"exits": [
"E4"
],
"transfer_required": false,
"transfer_reason": null,
"clarification_required": false,
"text": "### 1.3 南方平衡优选混合〔示例〕\n\n| 项目 | 详情 |\n|------|------|\n| 产品代码 | 900503(示例代码) |\n| 基金类型 | 偏股混合型基金 |\n| 风险等级 | R3(中风险) |\n| 成立日期 | 2013-06-11 |\n| 起投金额 | 5,000 元 |\n| 基金经理 | 周砚(虚构) |\n| 基金规模 | 约 92 亿元(截至 2026-06-30,虚构) |\n| 近一年收益率 | 9.35%(虚构) |\n| 近三年收益率 | 24.10%(虚构) |\n| 近五年收益率 | 61.20%(虚构) |\n| 最大回撤 | -11.80%(近一年,虚构) |\n| 夏普比率 | 0.94(虚构) |\n| 股票仓位 | 50%—70% |\n| 基金管理费 | 1.20%/年 |\n| 托管费 | 0.15%/年 |\n| 申购费率 | 0.15%(1 折优惠,原费率 1.50%) |\n| 赎回费率 | 持有<7 天:1.5%;7—30 天:0.75%;30—365 天:0.50%;1—2 年:0.25%;>2 年:0 |\n\n**投资策略**\n\n采用「核心 + 卫星」策略:核心仓位(约 60%)配置沪深 300 与中证 500 成分股中的优质蓝筹,卫星仓位(约 40%)捕捉科技、消费、医药等高成长行业的结构性机会。基金经理注重估值安全边际,动态调整股债比例。\n\n**适合人群**\n\n- 风险承受能力为平衡型(C3)及以上的投资者\n- 追求资产中长期稳健增值的投资者\n- 能承受 10%—15% 短期回撤的投资者\n- 资金闲置期限在 3 年以上的投资者\n- 作为资产配置中「攻守兼备」的核心持仓\n\n---",
"param_search": [],
"tool_call_count": 1
},
{
"case": "D-01",
"message": "买 10 万股票基金,申购费大概多少?",
"roles": [
"visitor"
],
"classified_intent": "product_inquiry",
"classified_confidence": 0.9,
"exits": [
"E2a"
],
"transfer_required": false,
"transfer_reason": null,
"clarification_required": false,
"text": "股票基金:公开申购费率区间为 0.15%—1.5%。\n申购费算法:申购费 = 申购金额 × 申购费率(各销售渠道的费率优惠不同,最终以产品说明书与销售机构公示为准)。\n按您提到的 100,000 元估算,申购费大致在 150 元—1,500 元之间。",
"param_search": [
{
"query": "公募基金费率总表 股票基金 申购费率 赎回费率",
"hits": [
{
"doc_id": "PROD-016-01",
"score": 0.8337,
"param_class": "rate",
"title": "南方基金管理股份有限公司 公募基金与专户产品手册 · 六、费率说明 · 6.1 公募基金费率总表 · 申购费率(原费率)"
},
{
"doc_id": "POL-SPM-032-01",
"score": 0.7693,
"param_class": "rate",
"title": "南方基金产品销售管理办法 · 第六章 费用管理 · 第十六条 费率标准 · 16.1 申购费率 · 股票型基金"
},
{
"doc_id": "PROD-001-14",
"score": 0.753,
"param_class": "rate",
"title": "南方基金管理股份有限公司 公募基金与专户产品手册 · 一、公募基金产品 · 1.1 南方现金添利货币市场基金〔示例〕 · 赎回费率"
},
{
"doc_id": "POL-SPM-033-01",
"score": 0.7359,
"param_class": "rate",
"title": "南方基金产品销售管理办法 · 第六章 费用管理 · 第十六条 费率标准 · 16.2 赎回费率 · <7 天"
},
{
"doc_id": "POL-SPM-034",
"score": 0.7253,
"param_class": "rate",
"title": "南方基金产品销售管理办法 · 第六章 费用管理 · 第十六条 费率标准 · 16.3 其他费用"
},
{
"doc_id": "COMP-001-06",
"score": 0.5961,
"param_class": "threshold",
"title": "南方基金管理股份有限公司 企业信息 · 一、公司基本信息 · 注册资本"
}
]
}
],
"tool_call_count": 1
},
{
"case": "D-02",
"message": "我持有 20 天赎回混合基金,赎回费多少?",
"roles": [
"customer"
],
"classified_intent": "faq",
"classified_confidence": 0.9,
"exits": [
"E2a"
],
"transfer_required": false,
"transfer_reason": null,
"clarification_required": false,
"text": "混合基金:按您提到的持有 20 天,对应档位「7—30 天」,赎回费率为 0.75%。\n\n公开档位如下:\n- 持有<7 天:1.5%\n- 持有 7—30 天:0.75%\n- 持有 30—365 天:0.5%\n- 持有 1—2 年:0.25%\n- 持有>2 年:0%\n赎回费算法:赎回费 = 赎回金额 × 赎回费率。",
"param_search": [
{
"query": "公募基金费率总表 混合基金 申购费率 赎回费率",
"hits": [
{
"doc_id": "PROD-016-01",
"score": 0.8344,
"param_class": "rate",
"title": "南方基金管理股份有限公司 公募基金与专户产品手册 · 六、费率说明 · 6.1 公募基金费率总表 · 申购费率(原费率)"
},
{
"doc_id": "FAQ-0027",
"score": 0.779,
"param_class": "rate",
"title": "申购和赎回的费率是多少?"
},
{
"doc_id": "POL-SPM-032-02",
"score": 0.7786,
"param_class": "rate",
"title": "南方基金产品销售管理办法 · 第六章 费用管理 · 第十六条 费率标准 · 16.1 申购费率 · 混合型基金"
},
{
"doc_id": "PROD-003-16",
"score": 0.7717,
"param_class": "rate",
"title": "南方基金管理股份有限公司 公募基金与专户产品手册 · 一、公募基金产品 · 1.3 南方平衡优选混合〔示例〕 · 申购费率"
},
{
"doc_id": "POL-SPM-033-01",
"score": 0.725,
"param_class": "rate",
"title": "南方基金产品销售管理办法 · 第六章 费用管理 · 第十六条 费率标准 · 16.2 赎回费率 · <7 天"
},
{
"doc_id": "POL-SPM-034",
"score": 0.7106,
"param_class": "rate",
"title": "南方基金产品销售管理办法 · 第六章 费用管理 · 第十六条 费率标准 · 16.3 其他费用"
}
]
}
],
"tool_call_count": 1
},
{
"case": "G-05",
"message": "我就要人工",
"roles": [
"visitor"
],
"classified_intent": "transfer_human",
"classified_confidence": 0.98,
"exits": [],
"transfer_required": true,
"transfer_reason": "explicit_request",
"clarification_required": false,
"text": "这件事需要人工为您办理。南方基金智能助手不能代办交易、修改资料、销户或受理投诉赔偿。请拨打官方客服电话 400-889-8899(每日 7:00—22:00),或通过官网 www.nffund.com 的官方入口提交申请。",
"param_search": [],
"tool_call_count": 0
},
{
"case": "F-2b",
"message": "我想找个人问问",
"roles": [
"visitor"
],
"classified_intent": "transfer_human",
"classified_confidence": 0.95,
"exits": [
"E4",
"E5a"
],
"transfer_required": false,
"transfer_reason": null,
"clarification_required": true,
"text": "您的意思我还不确定,方便确认一下您想了解的是哪一项吗?\n1. 怎么联系我的专属客户经理?\n2. 南方基金产品销售管理办法 · 第七章 投诉处理机制 · 第十八条 投诉渠道 · \n3. 如果对投诉处理结果不满意怎么办?\n回复序号或直接补充说明都可以。",
"param_search": [],
"tool_call_count": 1
}
]
}