Files
group_fqcd_jr/开发文档/D1.4-知识源与品牌整改变更说明-2026-09-17.md
张胜宇 bc61d5c579 docs: 入库权威文档目录(客服agent/ 24 份 + 开发文档/ 50 份,替换旧命名的过期副本)
## 为什么做这一步

权威文档 74 份此前**只在本机**,评审者 clone 分支后看不到任何设计文档;而仓库里那两份同名目录
是 **2026-09-16 之前的过期副本,连文件名都是旧的**(无体系编号)。本次按「**权威覆盖过期**」入库。

## 入库内容

| 目录 | 文件数 | 体积 | 说明 |
|---|---|---|---|
| `客服agent/` | 24 | 0.77 MB | `D2.1`~`D2.6` 对外交付四件套 + 演示脚本/答辩报告 + `_build` 构建工具 |
| `开发文档/` | 50 | 2.16 MB | `D1.x` 索引与决策、`D3.x` 方案、`D4.x` 清除与重构留痕、`D5.x` 业务流程、`D6.x` 业务事实基座、`D7.x` 交付物、`D8.x` 规范 |

**旧的过期副本整体移除**(`客服Agent执行Todolist.md` → `D2.1-客服Agent执行Todolist.md` 之类
的改名 + 新增 `D2.5`/`D2.6`),入库后目录内容与权威副本**逐文件一致(零差异,已复核)**。

## 入库前的安全扫描(必须留痕)

- 扫描规则:`sk-` 类密钥 / `Bearer` 长串 / `password=`、`api_key=` 赋值 / 会话中出现过的两把明文 key 片段。
- 结论:**真实密钥只出现在 `.env`**(已被 `.gitignore` 命中,未入库);`.env.example` 与
  `config/risk.env.example` 只有**空占位**。
- 文档内唯一命中是 `D3.1` 里一处**截断的示例 JWT**(`Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`),
  末尾带省略号,是接口文档的示意值,**不是可用凭据**。
2026-09-20 15:03:15 +08:00

67 KiB
Raw Permalink Blame History

知识源与品牌整改变更说明

体系编号:D1.4 · 域:一、治理与索引 · 编号体系见 D1.1 §4.0

编号:CS-CONTENT-2026-016 | 版本:v1.0 | 日期:2026-09-17 上游依据:D1.2-南方基金业务事实基座与虚构数据规范-2026-09-17.md(CS-CONTENT-2026-015 v1.1)—— 本文所有「改成什么」均以该基座为准。 本文定位:对 15 份知识源 + 9 类代码/前端表面,逐项回答 改什么 / 为什么改 / 改了会影响谁。 本轮边界:只出方案与变更说明,不编写、不提交任何代码(用户 2026-09-17 明确指令)。本文中的 G-xx 项均为方案,非已执行。


0. 本文怎么读

0.1 三条总约定(来自用户指令)

# 约定 在本文中的落点
1 名称统一以「南方基金」为准 §2 品牌替换矩阵(跨全部文件)+ 各文件「修改点」中的品牌项
2 所有数据虚构但贴合真实业务:字段结构、业务流程、逻辑须符合实际 §1.1 R2/R3 两类根因 + 各文件的「业务改写」项;数据口径一律引 CS-015 §4.2 三分法
3 每处修改同步说明原因与影响范围 每个文件配「原因」与「影响范围」两栏

0.2 影响范围的五个标签

标签 含义
RAG 该改动会进入向量库、改变客服/访客的实际回答内容
DEMO 该改动会在演示或评审时被人肉眼看到
XREF 其他文档按「文件名 + 章节号 / 行号」引用了这里,改动会使其失效
CODE 该改动必须先有代码侧配合(见 §4),否则改完不生效或测试变红
TEST 该改动会改变既有测试断言或基线数字

0.3 一个必须先讲清的前提

本轮不是「改名工程」,是「改业务工程」。

D6.2.2-企业金融服务方案.md 通篇是流动资金贷款、固定资产贷款、票据贴现、供应链金融、内保外贷、结构性存款、结售汇。基金管理人依法不得办理这些业务。 如果只把 XX科技 换成 南方基金,产出的是「南方基金办理票据贴现」——这比留着 XX科技 更糟:XX科技 是明显的占位符,审阅者知道那是假的;而「南方基金的票据贴现业务」会被当成我们真的不懂自己的业务。

⇒ 因此 15 份文件的改写是「章节级替换 + 业务内核重写」,品牌替换只是其中一项(约 15% 的工作量)。


1. 变更总览

1.1 四类根因

根因 说明 涉及文件数 严重度
R1 品牌不符 全项目并存 4 套品牌:XX科技(开发文档 7 份)、南方科技(入库语料 6 份)、南方财富(前端 24 份)、南方基金管理有限公司(少「股份」,3 处) 15 份知识源 + 24 份前端 + 8 处代码 🔴 高(肉眼可见)
R2 身份越界 把「基金管理人」写成了「持牌综合财富管理机构 / 银行 / 代销机构 / 保险经纪 / 信托受托人」 8 份(含最重的 3 份) 🔴 最高(一眼假)
R3 数据口径错误 占位符(XX / XXX-XXXX-XXXX / XX亿元);缩水量级;C1 风险等级内部矛盾(R1 vs R1—R2) 9 份 🟠 中高
R4 档位与合规 监管依据错引(引《银行业监督管理法》);visibility 档位判定与落地脱节 2 份 + 1 处代码 🟠 中高

1.2 15 份知识源总表

状态列:改写 = 章节级重写;修 = 局部修改;不手改 = 派生件。

# 文件 命中行数(品牌+占位) 根因 影响范围 状态
1 开发文档\公司业务\D6.2.2-企业金融服务方案.md 21 R1 R2 R3 RAG·DEMO·XREF 改写
2 开发文档\公司业务\D6.2.1-个人理财产品手册.md 9 + 占位 R1 R2 R3 RAG·DEMO 改写
3 开发文档\公司业务\D6.2.3-高净值客户服务规范.md 12 + 占位 R1 R2 DEMO·XREF 改写
4 开发文档\公司信息\D6.1.4-公司新人指南.md 28 + 占位 R1 R2 R3 RAG·DEMO 改写
5 开发文档\公司信息\D6.1.1-南方基金-企业信息.md 5 R1 R2 R3 RAG·DEMO·XREF 改写
6 开发文档\公司信息\D6.1.2-南方基金-高频问答对.md 1 R2 R4 RAG·DEMO 改写
7 开发文档\用户研判规则\D6.4.3-用户信息数据示例.md 1 R2 R3 DEMO(不入 RAG) 修
8 开发文档\金融政策\D6.3.1-理财产品销售管理办法.md 1 + 占位 R4 RAG 修
9 开发文档\公司业务\用户测试数据\D6.5.2-客户B-普通投资者.md 2 + 占位 R2 R3 DEMO(不入 RAG) 修
10 group_fqcd_jr\knowledge\company\企业信息.md 93 R1 R2 R3 RAG 改写
11 group_fqcd_jr\knowledge\faq\高频问答对.txt 20 R1 R2 R4 RAG 改写
12 group_fqcd_jr\knowledge\product\D6.2.1-个人理财产品手册.md 31 R1 R2 R3 RAG 改写
13 group_fqcd_jr\knowledge\product\D6.2.3-高净值客户服务规范.md 27 R1 R2 RAG(仅两章入库) 改写
14 group_fqcd_jr\knowledge\policy\D6.3.1-理财产品销售管理办法.md 1 R4 RAG 修
15 group_fqcd_jr\knowledge\_chunks.jsonl 314 派生 RAG 不手改(重跑灌库)

🔴 #10—#14 与 #1—#8 是「同源不同版」:knowledge\** 用 南方科技、开发文档\** 用 XX科技,两份内容各自独立、md5 不同。必须分别改写。方向:以「开发文档」侧为母本改写 → 再同步进 knowledge\。

1.3 代码与前端表面(9 项,本轮只出方案)

ID 表面 文件数 一句话
G-01 tools\build_knowledge_chunks.py 1 「四查门禁」当前并不存在,需新建
G-02 app\static\portal\** 前端品牌面 24 评审唯一会用眼睛看到的品牌
G-03 app\service\agent\governance.py:47 1 热线常量 = 手机号 15936583816
G-04 portal\employee-operations\promotion\promotion.js:29 3 南方基金管理有限公司(少「股份」)
G-05 风控 Agent 自我标识 5 南方财富风控智能助手
G-06 tests\unit\service\test_knowledge_keyword_recall.py:23-24 1 断言写死旧标题链 → 灌库后必红
G-07 app\service\knowledge_search_service.py:280 1 注释里的旧品牌
G-08 tools\build_knowledge_chunks.py(同 G-01 文件) 1 🔴 visibility 全部硬编码 public,三档工程上未落地(本次新发现)→ ✅ 2026-09-18 已落地(见 §4.0)
G-09 同上(allow_chapters / 报告死代码) 1 🔴 高净值仅入前两章;报告脚本残留反洗钱段(本次新发现)

2. 品牌面:跨文件的公共改动

2.1 品牌替换矩阵(精确到值)

旧值 新值 精确出现位置 处置
XX科技有限公司 南方基金管理股份有限公司 5 份文件的一级标题与正文首句 全量替换
XX科技(简称) 南方基金 开发文档\公司业务\*、公司信息\D6.1.4-公司新人指南.md、用户研判规则\* 全量替换
南方科技 南方基金 group_fqcd_jr\knowledge\**(6 份,_chunks.jsonl 314 行) 全量替换后再改写
南方财富 南方基金 app\static\portal\**(24 文件)+ risk_* 3 文件 见 G-02 / G-05
南方基金管理有限公司(少「股份」) 南方基金管理股份有限公司 promotion.js:29 + 2 处测试内联值 见 G-04
南方财富管理有限公司 同上 早期版本(已清) 复核 0 命中
南方 2026(战略名) 南方基金「2026 数智化」战略〔虚构〕 D6.1.1-南方基金-企业信息.md §6.1 品牌项替换

2.2 热线:四种旧形态 → 统一 400-889-8899

旧形态 性质 精确位置 影响
400-XXX-XXXX 占位符 D6.5.2-客户B-普通投资者.md:284,293、D6.2.3-高净值客户服务规范.md:129、D6.1.4-公司新人指南.md:421,422、D6.3.1-理财产品销售管理办法.md 1 处、D6.2.2-企业金融服务方案.md 页脚 DEMO:占位符会被人一眼看到
XXX-XXXX-XXXX 占位符 D6.2.2-企业金融服务方案.md:385-387(3 处)、D6.2.3-高净值客户服务规范.md:454 DEMO
15936583816 代码侧手机号(脱敏白名单依赖) governance.py:47 CODE:见 G-03,不能只换常量
400-826-9518 旧虚构定值 开发文档\D3.4-客服Agent重构Todolist.md:178(底稿定值表) XREF:见 §5.3

🔴 热线替换有一个隐藏陷阱(G-03):governance.py 的脱敏正则用 1[3-9]\d{9}(手机号)识别,并把 CUSTOMER_SERVICE_HOTLINE 加入放行白名单。一旦常量改成 400-889-8899,该号码不再匹配脱敏正则,白名单条目变成永不命中的死规则——不报错、不告警,但正则会继续把 400-889-8899 识别为需要脱敏的号码。⇒ 必须同时把脱敏逻辑改为「放行热线常量本身」,而非「放行手机号形态」。

2.3 域名与邮箱

旧值 新值 出现位置
xxtech.com / mail.xxtech.com / advisor.xxtech.com / crm.xxtech.com / wiki.xxtech.com / learn.xxtech.com / kpi.xxtech.com nffund.com + 对应子路径(内部系统域名建议改为 nffund.com 子路径形式,不再虚构独立域名) D6.1.4-公司新人指南.md:181,182,188,194,198,216,428-434
@xxtech.com 部门邮箱 @nffund.com D6.1.4-公司新人指南.md:181,417,418;D6.2.2-企业金融服务方案.md:385-387;D6.2.3-高净值客户服务规范.md:454;D6.2.1-个人理财产品手册.md:487
nanfangwm.com / complaint@nanfangwm.com nffund.com / service@nffund.com 底稿定值表(D3.4-客服Agent重构Todolist.md:180)+ G-01 白名单定义

2.4 系统名

旧名 新名 影响
智能财富管家系统 南方基金·智能服务系统 D6.1.4-公司新人指南.md(标题 §4.3、§7.3 链接表)、D6.1.1-南方基金-企业信息.md §6.1/§6.2、D7.4-开发引导.md、_docbuilder.py(模板已含替换规则)

⚠️ 注意内外有别:D6.1.4-公司新人指南.md 的 §4.3 描述的是员工内部工作台(原 advisor.xxtech.com)。品牌统一为「南方基金·智能服务系统」后,必须补一句区分「对外客服系统」与「员工内部工作台」,否则两处同名会造成 README/演示口径混乱。 依据:项目长期记忆 §6「复用版式外壳会继承旧品牌」——<title> / <h1> / sidebar 必须单独核对。本次已复核 客服agent\ 侧干净(旧值仅存在于 _build\_docbuilder.py 的替换规则表与文档内的「禁止清单」正文,属正常);未清的是 group_fqcd_jr\knowledge\** 与 app\static\portal\**。

2.5 为什么不能只做替换(三个必须改业务的例子)

文件 只换品牌会产出的句子 为什么是硬伤
D6.2.2-企业金融服务方案.md 「南方基金为企业提供流动资金贷款、票据贴现与供应链融资」 基金管理人无放贷与贴现资格
D6.1.2-南方基金-高频问答对.md Q28 「公司不发行公募基金,代销 126 家基金管理人旗下 8,600 余只产品」 本公司就是基金管理人,且平台定位为官方直销
D6.2.1-个人理财产品手册.md 第三章 「南方基金代销 XX 福享年金保险、XX 传世增额终身寿险」 本公司无保险中介资格

⇒ 改写规则:凡属 CS-015 §3.2「本公司不得开展」清单的业务,一律删除或改为边界声明;凡属 §3.1「可开展」的,按 §3.3 映射表重建。


3. 逐文件变更说明

3.1 开发文档\公司业务\D6.2.2-企业金融服务方案.md(388 行,最重)

现状与病灶:文档共 6 章,5 章越界,1 章部分越界。是「银行业务手册」而非「基金公司机构业务手册」。

修改点

行号 原文(节选) 改为 原因 影响范围
1 XX科技有限公司 企业金融服务方案 南方基金管理股份有限公司 机构客户服务方案 R1 品牌;标题须反映真实业务性质 DEMO·XREF
20—116 一、企业信贷服务(1.1 流贷 / 1.2 固贷 / 1.3 票据贴现) 一、机构直销业务总览(1.1 机构客户准入与开户 / 1.2 机构客户分层与画像 / 1.3 机构专属服务通道) R2:删除放贷与贴现;保留「客户分层—准入条件—方案设计」结构 RAG·DEMO
117—195 二、供应链金融(应收/存货/预付) 二、指数化与 ETF 机构配置方案(2.1 宽基 ETF / 2.2 行业主题 ETF / 2.3 债券与货币 ETF 现金替代) R2:删除供应链融资;保留「围绕客户现金流做方案」思路 RAG·DEMO
196—238 三、企业理财(对公定期存款 / 结构性存款 / 对公理财) 三、机构定制专户方案(3.1 一对一专户 / 3.2 一对多专户 / 3.3 费率与业绩报酬) R2:删存款与理财;保留期限/风险等级/起投门槛表格结构 RAG·DEMO
239—289 四、现金管理服务(4.1 概述 / 4.2 功能 / 4.3 收费 / 4.4 接入) 四、机构资金流动性管理方案(货币基金 + 短债基金组合;T+0/T+1 申赎;费率;直销柜台/API 接入) 章名越界,内核可改;保留资金归集划转的业务流程描述 RAG·DEMO
290—351 五、跨境金融服务(结算 / 外汇交易 / 跨境投融资 / 跨境资金池) 五、跨境投资与 QDII 机构服务(QDII 产品线与投资范围 / 香港子公司(南方东英)业务 / 额度与申赎 / 汇率风险对冲说明) R2:删结售汇与跨境资金池;保留币种、结算周期字段结构 RAG·DEMO
352—384 六、综合服务案例(案例1 制造业 / 案例2 贸易企业跨境) 六、机构服务案例(案例1 制造业上市公司的闲置资金与年金管理 / 案例2 外贸企业的跨境资产配置) 案例须落在可开展业务内 DEMO
385—387 3 处 XXX-XXXX-XXXX + corporate@xxtech.com / scf@xxtech.com / global@xxtech.com 400-889-8899 + 机构业务部@nffund.com;删除「供应链金融团队」 R1 R3 DEMO
全篇 21 处 XX科技 南方基金 R1 RAG·DEMO

原因:本文件是唯一一份逐章越界的文档,也是「只换品牌会更糟」的典型。R2 为主因。

影响范围:① RAG —— 该文件与 knowledge\ 侧副本独立,两边都要改;② XREF —— D6.1.4-公司新人指南.md §3.2「企业服务业务」在叙同一套业务,须同步;③ DEMO —— 全文 21 处旧品牌 + 6 处占位符,是评审翻到就会质疑的文件。


3.2 开发文档\公司业务\D6.2.1-个人理财产品手册.md(488 行)

现状与病灶:第二章整章是银行理财产品(含结构性存款),第三章整章是保险产品;第五章 §5.3 是「银行理财申购流程」;§6.2 写「通过 XX科技 APP 申购所有代销基金」。产品名为 XX货币市场基金 等占位。

修改点

行号 原文 改为 原因 影响范围
1 XX科技有限公司 个人理财产品手册 南方基金管理股份有限公司 公募基金与专户产品手册 R1 + 产品范围须与真实一致 DEMO
22 「XX科技与XXX家基金公司建立了代销合作关系,平台可销售基金产品超过X,XXX只」 「本公司自主管理公募基金 835 只(数据截止 2026-06-30),本平台只销售本公司管理的产品」 R2:删「代销 + 合作家数」;口径改官方直销 RAG·DEMO
20—225 一、基金类产品(1.1—1.6:XX货币市场基金 / XX稳健增利债券A / XX平衡优选混合 / XX科技创新股票 / XX全球精选QDII / XX红利价值股票) 保留 6 只的章节骨架,全部改为虚构产品:名称用「南方 + 主题/策略」结构,代码统一取 9xxxxx 段并标「示例代码」;结构按 CS-015 §6.1 必备字段补齐 R1 R3:XX 是占位符;且 1.4 与真实产品 南方科技创新混合A(007340) 名称过近,必须改名避免张冠李戴 RAG·DEMO
226—296 二、银行理财产品(2.1 季季盈90天 / 2.2 年年盈365天 / 2.3 结构性存款) 二、专户与特定客户资产管理(封闭期 / 业绩比较基准 / 合格投资者条件 / 面签与冷静期) R2:基金管理人不代销银行理财、无结构性存款;保留字段结构 RAG·DEMO
297—352 三、保险产品(3.1 福享年金保险 / 3.2 传世增额终身寿险) 三、本公司不涉及的产品与服务(边界声明):明确列出不代销保险、不代销银行理财、不代销第三方基金、不办理存贷款与票据业务 R2:无保险中介资格 RAG·DEMO
353—394 四、产品对比表与推荐策略(4.1 对比 / 4.2 按客户类型推荐) 保留结构,产品集合替换为「虚构公募基金 + 专户」;推荐策略的 C—R 映射按 CS-015 §4.4(C1 可买 R1—R2) R3:与 FAQ Q40 口径对齐 RAG·DEMO
395—440 五、申购赎回操作流程(5.1 基金申购 / 5.2 基金赎回 / 5.3 银行理财申购流程) 5.1、5.2 保留;5.3 改为「专户申购流程」(合格投资者认定 → 面签 → 合同 → 冷静期 → 成立) R2 + CS-015 §6.2 流程闭环 RAG
441—484 六、费率说明 保留结构;费率区间改按 CS-015 §4.3;459「申购费率1折优惠:通过XX科技APP申购所有代销基金」→「通过南方基金官方直销平台申购,认/申购费率 1 折」 R1 R2 RAG·DEMO
485—487 「本手册由XX科技零售金融事业部产品中心编制…分机 XXXX…product_training@xxtech.com」 品牌与邮箱替换;分机号改为虚构的完整工号体系(不留 XXXX) R1 R3 DEMO

原因:R1(品牌)+ R2(两整章越界)+ R3(占位符)。

影响范围:① RAG —— 该手册是 product 集合的两大来源之一,直接决定客服对产品问题的回答;② knowledge\product\D6.2.1-个人理财产品手册.md 是独立副本,须按同一映射重写;③ §4.2「按客户类型推荐策略」与 D6.4.3-用户信息数据示例.md、客户B 的产品适配段落互相引用,须同批改。


3.3 开发文档\公司业务\D6.2.3-高净值客户服务规范.md(457 行)

现状与病灶:第三章「家族信托服务」通篇以受托人视角写(3.2 信托类型、3.4 收费标准、3.5「合作信托公司」),而本公司不是信托公司、不能作为受托人。§1.2 认定范围含「保险产品市值」「私募产品、信托产品」,§2.4 私行权益含占位热线。

修改点

行号 原文 改为 原因 影响范围
1 / 25 / 456 XX科技有限公司 / 「解释权归XX科技有限公司所有」 南方基金管理股份有限公司 / 品牌替换 R1 DEMO
34—47 §1.2 可投资资产认定范围:「通过XX科技持有的基金、理财、保险产品市值」「私募产品、信托产品」「需托管在XX科技」 改为「本公司管理的公募基金与专户产品市值」「本公司投顾组合」「场内 ETF 份额(托管在证券公司)」;删除「保险产品市值」与「私募、信托产品」 R2:本公司不代销保险/私募/信托 DEMO·XREF
59—140 二、各层级专属权益(金卡/白金/钻石/私行) 保留分层骨架;删除保险、银行理财、信托类权益,替换为「专户配置额度 / 投顾服务次数 / 南方东英跨境配置通道 / 机构级研究报告」 R2 DEMO
129 7×24小时私人银行专线:400-XXX-XXXX 转 8 400-889-8899(分机号作为虚构值补齐) R3 占位符 DEMO
141—211 三、家族信托服务(3.1 概述 / 3.2 信托类型 / 3.3 服务流程 / 3.4 收费标准 / 3.5 合作信托公司) 改章名为 「三、传承规划与信托对接咨询」;删除「受托人」表述、信托类型与收费标准;流程改为「需求诊断 → 出具配置建议 → 对接持牌信托公司 → 陪同尽调与合同审阅」;§3.5 保留合作机构列表但加注「本公司不作为受托人,不收取信托报酬」 R2:非信托公司,不得作为受托人 DEMO
212—273 四、资产配置服务流程(4.1 五步法 / 4.2 配置模型) 保留;§4.2 配置模型的产品池限定为「本公司公募基金 + 专户 + 投顾组合」 R2 DEMO
276 §5.1 人员资质「基金销售资格」 改「基金从业资格」(本公司为管理人,非销售机构) R2 术语准确性 DEMO
333—376 六、VIP活动与增值服务(6.3 XX私行俱乐部) 品牌替换;§6.2 增值服务商须加注「非金融类服务」 R1 R2 DEMO
454 举报热线 XXX-XXXX-XXXX + compliance@xxtech.com 400-889-8899(合规举报分机)+ compliance@nffund.com R1 R3 DEMO

原因:R1 + R2(信托受托人身份越界)。

影响范围:① ✔ RAG 影响有限 —— 灌库脚本 SOURCES["product/D6.2.3-高净值客户服务规范.md"] 设了 allow_chapters: ["一、", "二、"],第三章本就不入库(见 §4 G-09)。但 §1.2、§2.x 在入库范围内,且文档本身会被审阅,仍须改;② XREF —— 第三章的「合作信托公司」列表与 §3.5 在 D6.1.1-南方基金-企业信息.md §3.1 与 FAQ Q29/Q46 有对应表述,须同批改;③ DEMO。


3.4 开发文档\公司信息\D6.1.4-公司新人指南.md(450 行,28 处旧品牌)

现状与病灶:§1.1 写「持有基金销售、保险经纪、证券投资咨询三块核心金融牌照,是一家持牌综合财富管理机构」;§2.1 六大事业部含「机构金融事业部 / 私人银行事业部」;§3 业务线全景(零售理财 / 企业服务 / 私人银行);§5.2 写「C1 → 只能购买 R1」;§7 全是占位符与旧域名。

修改点

行号 原文 改为 原因 影响范围
1 / 7 / 447 / 449 XX科技有限公司 新人入职指南 / 「欢迎加入XX科技有限公司」 南方基金管理股份有限公司 员工手册 / 品牌替换 R1 DEMO
15—20 §1.1 「成立于 20XX 年 X 月…注册资本 X 亿元…持有三块核心金融牌照」 按 CS-015 §2 真值:1998-03-06 成立、注册资本 3.6172 亿元、深圳福田益田路 5999 号基金大厦 32-42 楼、统一社会信用代码 91440300279533137K;牌照改为 §2.0 的基金管理人资质序列(1998 公募 / 2002 社保 / 2005 年金 / 2007 首家 QDII / 2008 专户 / 2012 保险资金 / 2016 养老 / 2019 投顾试点 / 2020 REITs) R1 R2 R3:这是「三项代销类牌照」最集中的一处 RAG·DEMO
21—29 §1.2 发展历程(20XX-20XX + 「XX20XX」数字化战略) 用 CS-015 §2 的真实大事记 + 2023—2026 的虚构数智化节点(须与 D6.1.1-南方基金-企业信息.md §8 一致) R1 R3 RAG·DEMO·XREF
40—125 §2.1 组织架构图 / §2.2 部门职能详解(含私人银行事业部、机构金融事业部) 改为基金管理人真实部门结构:投资研究部 / 权益投资部 / 固定收益部 / 混合资产投资部 / 数量化投资部 / 指数投资部 / 机构业务部 / 养老金业务部 / 市场服务部 / 运营部 / 风险管理部 / 合规稽核部 / 信息技术部 / 人力资源部 R2:删除「私人银行事业部」等银行式建制 RAG·DEMO·XREF(与 §1.5 的 D6.1.1-南方基金-企业信息.md §4 须完全一致)
126—168 §3.1 零售理财业务 / §3.2 企业服务业务 / §3.3 私人银行业务 改为 3.1 公募基金零售(官方直销) / 3.2 机构与养老金业务 / 3.3 专户与基金投顾 R2 RAG·DEMO
140 「线上:XX科技APP、微信小程序、官网」 「线上:南方基金 APP、官方微信服务号、官网 nffund.com」 R1 DEMO
171—209 §4.1 账号开通:xingming@xxtech.com、mail.xxtech.com、advisor.xxtech.com、crm.xxtech.com、wiki.xxtech.com nffund.com 域内子路径形式;邮箱改 @nffund.com R1 DEMO
210—255 §4.3 「智能财富管家系统使用指南」+「登录地址:https://advisor.xxtech.com」 系统名改 南方基金·智能服务系统;登录地址改内部形式;补一句区分「对外客服系统」与「员工内部工作台」 R1 + §2.4 的歧义风险 RAG·DEMO
269—282 §5.2 投资者适当性「C1 → 只能购买 R1」 改为「C1 → R1—R2」 R3:与 CS-015 §4.4 已裁决口径矛盾(FAQ Q40 已写 R1—R2) RAG
369 §6 Q9 客户投诉处理 热线改 400-889-8899,服务时间保持 7:00—22:00 R1 R3 RAG
403—446 §7.1 总部 / §7.2 联系方式(占位热线)/ §7.3 系统链接(8 个旧域名) / §7.4 周边生活指南 全部替换;总部地址改为真实地址(深圳福田益田路 5999 号基金大厦 32-42 楼);周边生活指南须重写为深圳福田版(原为「某市高新区」) R1 R3 DEMO

原因:R1(28 处)+ R2(三牌照 + 银行式组织)+ R3(占位符 + C1 口径)。

影响范围:① RAG —— 若该文件入库,客服会直接引用「我们持有保险经纪牌照」;② XREF —— §1.2 发展历程、§2.1 组织架构必须与 D6.1.1-南方基金-企业信息.md §4/§8 逐条一致,否则两个文件互相打架;③ DEMO。


3.5 开发文档\公司信息\D6.1.1-南方基金-企业信息.md(377 行)🔴 最危险的错误源

现状与病灶:品牌名对(南方基金),但身份是代销机构——「公司不自行发行公募基金」(§1.1、§2.6)、「合作基金公司 126 家」(§2.1)、「营业收入 38.6 亿、手续费及佣金 26.8 亿」(§3.4)、「员工 1,268 人、营业网点 56 家」(§3.1、§九)、「成立于 2013 年 4 月,杭州滨江」(§8)。这些全部是「第三方基金销售机构」的画像。 它被当作「已正确的参照物」使用,是最大的传染源——knowledge\company\企业信息.md、D6.1.2-南方基金-高频问答对.md、D6.1.4-公司新人指南.md 都在向它对齐。

行号 原文 改为 原因 影响范围
3 「公司名称、牌照编号、人员姓名、地址、财务数据等均为虚构」 改按 CS-015 §4.1 三分法:「公司名称、工商登记信息与公开披露业务资质取自公开渠道,产品业绩、规模、费率、人员名单与客户数据均为虚构」 R3:声明本身已与事实不符(名称现在是真值) DEMO·合规
15—39 一、公司基本信息 按 CS-015 §2 真值表替换(信用代码 / 成立日期 / 注册资本 / 地址 / 法定代表人周易 / 总经理杨小松 / 总机 / 官网 / 客服邮箱 / 股权结构 / 分公司 6 地 / 南方东英 / 南方资本) R1 R3 RAG·DEMO
40—50 §1.1 主营业务「零售财富业务(公募基金、银行理财、保险产品代销)、私人银行服务、机构金融业务、基金投顾业务」+「公司不自行发行公募基金」 改为基金管理人四项经营范围:基金募集、基金销售、资产管理、中国证监会许可的其他业务;平台定位 = 本公司产品的官方直销平台 🔴 R2 核心:这是「不发行公募基金」的第一个源头 RAG·DEMO·XREF
51—68 §1.2 经营数据速览(截至 2026-06-30) 按 CS-015 §4.2 B 类真值:AUM 约 1.43 万亿元、公募基金 835 只、基金经理 106 人、员工 1,109 人、客户超 1.7 亿、累积分红超 1,500 亿元;统一标注截止日 R3:v1.0 曾写 4,860 亿 / 780 人 / 218 只,量级偏低 RAG·DEMO
69—129 二、金融牌照与资质(2.1 基金销售业务资格 / 2.2 保险经纪业务许可证 / 2.3 证券投资咨询业务资格 / 2.4 私募基金管理人登记 / 2.5 QDII) 整章替换为 CS-015 §2.0 的基金管理人资质序列(9 项,按获批年份);删除 2.2 保险经纪、2.3 证券投资咨询、2.4 私募管理人登记;2.5 QDII 保留但改为「2007 年业内首家」 🔴 R2:「五项代销类牌照」是第二个源头(FAQ Q06 抄的它) RAG·DEMO·XREF
122—129 §2.6 合规声明(含「不自行发行公募基金」) 改为:「本公司为公募基金管理人,只销售本公司管理的产品,不代销其他管理人的基金、银行理财与保险产品」 🔴 R2 RAG·DEMO
132—140 §3.1 业务覆盖「营业网点 56 家 / 28 个城市」 删除「营业网点」概念(基金公司无银行式网点);改为「6 家分公司(北京上海深圳南京成都合肥)+ 6 个客户服务中心(北京上海广州深圳成都杭州)〔虚构〕」,并明确二者不是同一概念 R2 + CS-015 §4.2 脚注 RAG·DEMO·XREF(FAQ Q07 抄的它)
153—164 §3.3 资产管理规模 按 B 类真值(约 1.43 万亿元,截止 2026-06-30) R3 RAG
165—176 §3.4 财务表现(2025 年度)「营业收入 38.6 亿 / 手续费及佣金 26.8 亿」 改为基金管理人的收入结构(管理费为主 + 专户业绩报酬 + 投顾服务费),金额按虚构值但结构与行业一致 R2 R3:手续费佣金为主是代销机构的收入结构 RAG·DEMO
197—239 §四 组织架构(零售财富 / 私人银行 / 机构金融事业部) 改为与 D6.1.4-公司新人指南.md §2 完全一致的基金管理人部门结构 R2 + XREF 一致性 RAG·DEMO
274—308 §六 数字化转型(「南方 2026」战略 / 智能财富管家系统 / 关键技术指标) 品牌与系统名替换;技术指标(虚构)须与代码侧能力口径一致(1024 维 embedding、Milvus 三集合) R1 R3 RAG·DEMO
332—355 §八 发展历程(「2013 年 4 月成立于杭州滨江」+ 2023/2025 智能财富管家系统上线) 改为真实大事记起点(1998-03-06 深圳)→ 按 CS-015 §2.0 资质年份铺陈 → 2023—2026 虚构数智化节点;须与 D6.1.4-公司新人指南.md §1.2 一致 🔴 R2 R3:「2013 年杭州」与「1998 年深圳」不能并存 RAG·DEMO·XREF
351—355 §九 常见关联信息速查(56 家网点等) 逐条按上述真值刷新 R3 RAG·DEMO

原因:R1(品牌仍对,但同族值不一致)+ R2 最重(身份整体错位)+ R3(成立地/时间/规模/收入结构全错)。

影响范围:🔴 这是「源头文件」 —— 它的错误被 D6.1.2-南方基金-高频问答对.md、knowledge\company\企业信息.md、D6.1.4-公司新人指南.md 三处复制。改它必须最先做,且改完要回扫下游三处。


3.6 开发文档\公司信息\D6.1.2-南方基金-高频问答对.md(+ .txt)

现状与病灶:64 组问答。品牌已对,但身份沿用了 §3.5 的代销机构画像。已定位的病灶:

行号 原文(节选) 改为 原因
3 「本文件为智能财富管家系统实训项目使用的虚构企业资料…三者数据口径完全一致」 系统名替换;声明改三分法口径 R1 R3
38(Q05) 「主营四块业务:零售财富业务(公募基金、银行理财、保险产品代销)…公司不自行发行公募基金,所有基金产品均为代销」 改为基金管理人业务口径(公募募集与官方直销 / 专户 / 养老金 / 投顾 / QDII) 🔴 R2
42(Q06) 「共持有五项资质:基金销售业务资格(JX2015-0316)/保险经纪业务许可证(BJ-2016-1187)/证券投资咨询业务资格(ZX2018-0271)/私募基金管理人登记(P1072386)/QDII(2021-03)」 整答替换为 CS-015 §2.0 资质序列(1998 公募 → 2020 REITs);删除保险经纪、证券投资咨询、私募登记 🔴 R2
46(Q07) 「营业网点共 56 家,覆盖全国 28 个城市…一线 18 / 新一线 21 / 二线 17」 改为「6 家分公司 + 6 个客户服务中心」,删除网点数量 🔴 R2
82(Q28) 「公募基金(代销 126 家基金管理人旗下 8,600 余只产品)、银行理财、保险产品(合作 21 家保险公司)、私募与信托类产品…公司不发行公募基金」 「本公司管理公募基金 835 只(截止 2026-06-30);只销售本公司管理的产品;不代销银行理财、保险、其他管理人产品」 🔴 R2
204—206(Q45) 「基金公司或理财子公司想与南方开展代销合作,流程是什么?」+ 六步代销引入流程 改为「机构客户定制专户的受理流程」或「本公司产品在其他渠道上架的合规流程」;删除「代销协议」「产品引入申请」 🔴 R2:本公司无「代销引入」环节
296—312 分类索引表 + 速查表(「营业网点 56 家 / 28 城市」) 按上述改写同步刷新 R3 XREF
全篇 其余 58 组 逐条核对是否含产品参数、档位是否正确 R4

档位重算(R4):改写前(V1.0)标注 public 55 / registered 9(registered = Q15/17/20/21/27/28/29/30/33);按 CS-015 §5 的唯一判据(答案是否含具体数值型产品要素)逐条重算后,现行(V2.0)= public 54 / registered 10(registered = Q17/20/21/27/28/29/30/33/47/53)——即 Q15 降为 public(−1),Q47、Q53 升为 registered(+2)。三条边界(概念解释、交易时限、C—R 匹配规则必须 public)在重算中保持不变。✅ 已完成,与 D6.1.2 §四、D2.2、D2.4、D3.1、D3.2 口径一致。

🔴 但重算档位在本轮是「白做工」 —— 见 §4 G-08:灌库脚本把 FAQ 的 visibility 全部硬编码为 public,.md 里的档位标注根本不会生效(真正入库的是 faq/高频问答对.txt)。⇒ 档位重算必须与 G-08 同批完成,否则只是纸上标注。

影响范围:① RAG —— FAQ 是 fin_faq_collection 与访客/客服问答的主来源;② DEMO —— Q05/Q06/Q07/Q28 是「公司介绍」类问题的标准答案,评审必问;③ 改写后 knowledge\faq\高频问答对.txt 须同批重写(格式硬约束:每行恰 1 个制表符、末尾不留空行)。


3.7 开发文档\用户研判规则\D6.4.3-用户信息数据示例.md(548 行)

现状与病灶:5 个客户画像(A 白领 / B 企业主 / C 退休教师 / D 医生 / E 程序员)。问题集中在客户 C/D/E 的产品口径与 C1 风险等级。

行号 原文 改为 原因
81(客户A 建议方案) 「R2 级银行理财 + 债券基金为主」 「R2 级债券型基金 + 货币基金为主」 R2:本公司体系内无「银行理财」
181—187(客户B) 「缺少固收类和保险类资产的安全垫」+「保险传承这个方案可以详细说说吗」 改「固收类与养老目标基金」;「保险传承」对话改为「传承规划与信托对接」(与 §3.3 第三章章名一致) R2 + XREF 一致性
230 / 248 / 255—256(客户C) 「约 120 万元(银行理财 60 万 + 国债 30 万 + 存款 20 万 + 基金 10 万)」「低风险银行理财(R1-R2)」「关注方向:养老理财产品、储蓄型保险」 区分**「客户在其他机构持有」与「通过本公司持有」**两类。本公司口径改为:货币基金 / 纯债基金 / 二级债基 / 指数基金;「关注方向」删「养老理财、储蓄型保险」,改「养老目标基金(Y 份额)、投顾组合」 🔴 R2:客户可以在银行有存款国债(这是客户事实),但不能写成「本公司销售银行理财」
277(客户C 对话) 「以我们代销的 XX 银行 R2 级"稳享"系列为例」 「以本公司管理的 R2 级债券型基金为例」 🔴 R2:「代销 XX 银行」直接违反官方直销定位
309 / 315 画像「偏好产品类型: 银行存款/国债/银行理财」「产品关注度: 银行存款>国债>银行理财」 加注「(存款与国债为客户在他行/柜台持有的存量资产,非本公司业务)」 R2:避免误读为本公司产品线
338 / 363(客户D) 「保险现金价值 30 万」「保险配置:定期寿险、重疾险、子女教育年金」 保留(客户自有保单,属客户事实);但须加注「非本公司业务」 R2
391(客户D) 「可以投资专属的养老基金、养老理财、养老保险等产品」 「可以投资**养老目标基金(Y 份额)**等产品」 R2
498(客户E) 「①XX科技——密码学和数字安全领域龙头;②XX信息——分布式数据库…」 改为泛指(如「某信息安全领域上市公司」),避免使用真实个股名称,且避免 XX 与旧品牌占位符混淆 R1 R3
客户C 全段 风险等级 C1,但产品口径与「C1 只能买 R1」隐含一致 统一按 CS-015 §4.4:C1 可买 R1—R2 R3
530—547 六、数据汇总对比表 按上述改写同步刷新;「核心产品」列避免出现银行理财/保险/加密 R2

原因:R2(本公司产品线口径)+ R3(C1 等级)。R1 仅 1 处(客户E 对话里的 XX科技 是股票占位,易误读)。

影响范围:✔ 不入 RAG(用户研判规则\* 属入库禁区)⇒ 不影响客服回答。但它是研判规则/演示数据的依据,且客户 B/C 的数据与 D6.5.2-客户B-普通投资者.md 高度重叠(对话逐字相同)⇒ 必须与 §3.9 同批改,否则同一段对话在两份文件里出现两套口径。


3.8 开发文档\金融政策\D6.3.1-理财产品销售管理办法.md(506 行)+ 同名 knowledge\policy\ 副本

现状与病灶:9 章制度文。核心问题是监管依据错引与术语主体错位。

行号 原文 改为 原因
12—35 第一章 总则:依据《银行业监督管理法》《商业银行理财业务监督管理办法》 改《证券投资基金法》《公开募集证券投资基金销售机构监督管理办法》《证券期货投资者适当性管理办法》 🔴 R4:本公司是证监会监管的基金管理人,不是银保监会监管的商业银行
第二章 销售机构与人员资质 「销售机构」「销售人员」 区分**「基金管理人直销」与「代销机构」两种主体;本公司为直销** R2 R4
全篇 「理财产品」 视语境改「基金产品」;若保留广义「理财产品」须在总则加定义条款(含公募基金与专户) R2 术语准确性
占位热线 1 处 400-XXX-XXXX 400-889-8899 R3
407—448 第七章 投诉处理机制 保留;须与 MVP「发工单」能力对齐(CS-015 §6.2) RAG
文档头(knowledge\ 副本配置) SOURCES 里 tags: "理财产品销售,双录,冷静期,费率,投诉" 建议改「基金销售,双录,冷静期,费率,投诉」 R2 术语

原因:R4(监管依据)+ R2(主体与术语)。

影响范围:① RAG —— 该文件是 fin_policy_collection 的来源之一,依据错引会被客服直接引用给客户(「根据银行业监督管理法…」对基金客户是明显的专业错误);② ✔ 与 knowledge\policy\D6.3.1-理财产品销售管理办法.md 是独立副本,须同批改;③ ⚠️ SOURCES 注释明确反洗钱合规操作手册不入库(业务不涉及转账划付),本次不动该文件。


3.9 开发文档\公司业务\用户测试数据\D6.5.2-客户B-普通投资者.md(370 行)

现状与病灶:客户 B(退休教师,C1)的金融资产全部是银行存款 / 定期 / 银行理财 / 国债;对话与 D6.4.3-用户信息数据示例.md 客户 C 逐字重复;2 处占位热线。

行号 原文 改为 原因
26 / 21 138XXXXXXXX / 330102196411XXXXXX 保留占位形态(这是数据脱敏的常规写法,非品牌占位) —
61—66 / 73—81 金融资产明细:银行存款 3 万 / 定期存款 20 万 / 银行理财 R1 30 万 / 银行理财 R2 30 万 / 国债 30 万 保留「客户在他行持有的存量资产」表述;新增一段「通过南方基金持有的资产」(货币基金 / 纯债基金 / 二级债基),体现「客户正在从银行渠道迁移到官方直销平台」的合理业务场景 R2:不能把银行理财写成本公司在售
166—170 4.3 产品适配分析:「银行定期存款 ✅」「储蓄国债 ✅」「R1/R2 银行理财」 「银行存款/国债 ✅(客户他行存量,本公司不参与)」;本公司产品线改为「货币基金 ✅ / 纯债基金 ✅ / 二级债基 ⚠️(需充分解释非保本)」 R2
189 / 198—206 对话1 建议方案含「R2 级银行理财」「大额存单 + 定期存款」 改为本公司产品方案(货币基金 + 纯债基金 + 短债基金组合);保留「先风险揭示、后客户确认」的对话结构 R2 + 红线②
227—235 对话2 国债购买咨询:「到就近的 XX 银行或 XX 银行柜台购买」 ⚠️ 本公司不代销国债 ⇒ 改为「国债 ETF(场内)」或「引导客户到银行柜台办理」并明确「本公司不代销储蓄国债」 R2
284 / 293 400-XXX-XXXX ×2 400-889-8899 R3
327 / 333 / 361 画像标签「银行存款/国债/银行理财」「咨询渠道: 电话+网点」「过度集中在银行体系,可适度推荐国债」 标签改为含「本公司货币基金/纯债基金」;渠道删「网点」;第 8 条验证点改为「可适度引入货币基金与短债基金做流动性分层」 R2 R3

原因:R2(资产结构口径)+ R3(占位热线)。

影响范围:① ✔ 不入 RAG(用户测试数据\* 属入库禁区);② DEMO —— 客户 B 是演示脚本用的测试账号画像,对话记录会被直接投屏;③ XREF —— 与 D6.4.3-用户信息数据示例.md 客户 C 重复率高,两者必须同批改、口径一致。


3.10 group_fqcd_jr\knowledge\company\企业信息.md(276 行,93 处命中)—— 真正入库的那一份

现状与病灶:这是最终进向量库的文件(SOURCES 的 company/企业信息.md,collection = fin_faq_collection,prefix = COMP)。品牌是 南方科技(×16),身份是完整 8 章的代销机构画像。

修改点 说明 原因
一级标题与全篇 南方科技 → 南方基金(16 处) R1
全篇 8 章 以 §3.5 改写后的 D6.1.1-南方基金-企业信息.md 为母本整体替换(含 §1.1 主营、§二 资质序列、§2.6 合规声明、§3.1 业务覆盖、§3.4 财务、§八 发展历程) 🔴 R2:不能只换品牌,否则入库语料会继续告诉客服「本公司不发行公募基金」
占位符 清 0(现有 93 处命中中含大量 XX) R3
免责声明 改三分法口径(同 §3.5 第 3 行) R3 合规

影响范围:🔴 RAG 直接影响 —— 该文件的每一块都会成为客服回答「你们公司是做什么的 / 你们发行基金吗 / 你们有多少网点」的依据。且这是访客(visitor)可召回的范围(visibility: public)⇒ 错的答案会直接对游客说出。 ⚠️ _chunks.jsonl 里对应的 COMP-* 块必须在改完源文件后重跑灌库才会更新(见 §3.15)。


3.11 group_fqcd_jr\knowledge\faq\高频问答对.txt(45 行,20 处命中)

现状与病灶:南方科技 ×18;Q1—Q11 等叙述「代销机构」身份。这是真正被灌库的 FAQ 源(脚本第 277 行读的就是它,.md 版本不参与灌库)。

修改点 说明 原因
全篇品牌 南方科技 → 南方基金(18 处) R1
Q1—Q11、Q20、Q30、Q32、Q35、Q36 按 §3.6 的改写口径逐条重写(业务范围、资质、网点、产品来源、合作流程) 🔴 R2:入库语料
格式 ⚠️ 硬约束:每行恰 1 个制表符(Q + \t + A)、末尾不留空行 —— 脚本 chunk_qa() 按此切分,多一个制表符或末尾空行会改变块数与 doc_id 序 工程约束
档位 ⚠️ 见 §4 G-08:脚本第 287 行硬编码 visibility: "public" ⇒ 该文件的块全部是 public。若需 registered 档,必须改脚本 🔴 R4

影响范围:🔴 RAG 直接影响 + 访客可召回。Q05/Q06/Q07/Q28 类问题的答案就是演示时被问到的内容。 ⚠️ 改完后块数可能变化 ⇒ FAQ-xxxx 的 doc_id 序会漂移 ⇒ 若其他文档按 doc_id 引用,需同步(当前未见此类引用,建议改后 grep 复核)。


3.12 group_fqcd_jr\knowledge\product\D6.2.1-个人理财产品手册.md(488 行,31 处命中)

3.13 group_fqcd_jr\knowledge\product\D6.2.3-高净值客户服务规范.md(457 行,27 处命中)

现状与病灶:#12 与 §3.2、#13 与 §3.3 是「同源不同版」 —— md5 不同,南方科技 与 XX科技 各写一套,章节结构相同、内容各自独立。

修改点 说明 原因
#12 以 §3.2 改写后的手册为母本,整体替换内容 + 品牌(南方科技 → 南方基金) R1 R2 R3
#13 以 §3.3 改写后的规范为母本,整体替换内容 + 品牌 R1 R2
⚠️ #13 入库范围 SOURCES 设 allow_chapters: ["一、", "二、"] ⇒ 只入「一、客户分层标准」与「二、各层级专属权益」两章;第三章家族信托、第四章配置流程、第五章考核指标、第七章隐私预案本就不入库 工程约束(见 G-09)
SOURCES 元数据 product/D6.2.1-个人理财产品手册.md 的 tags 仍是 "基金,银行理财,保险,费率,申赎" ⇒ 须改为 "基金,专户,费率,申赎";两个文件的 version(V2.8 / V2.1)与 effective_date 须刷新 R2 R4

影响范围:🔴 RAG 直接影响(fin_product_collection 的两大来源)。tags 会被写入每个块,旧 tags 会把「银行理财」「保险」作为检索标签,即使正文改干净了,标签仍在误导检索。


3.14 group_fqcd_jr\knowledge\policy\D6.3.1-理财产品销售管理办法.md

同 §3.8。与 开发文档\金融政策\ 版是独立副本,须同批改;SOURCES 中该文件的 tags: "理财产品销售,双录,冷静期,费率,投诉" 建议同步改「基金销售」。


3.15 group_fqcd_jr\knowledge\_chunks.jsonl(派生件,不手改)

项 说明
性质 由 tools\build_knowledge_chunks.py 从 knowledge\ 的 5 个 SOURCES 文件 + faq/高频问答对.txt 生成的派生结果(314 行命中,含旧品牌与占位符)
处置 🔴 禁止手工编辑。手工改会让「源文件 ↔ 向量库」失去可追溯性,且下次灌库即被覆盖
正确路径 改完 §3.10—§3.14 的源文件 → 补上 G-01 门禁 → 停机 Worker → 重跑 build_knowledge_chunks.py → 重新灌库
前置 G-01(门禁)、G-08(档位)必须先完成,否则重跑会把新错误原样灌进去而无声通过
校验 重跑后核对:已生成 N 块 与 _chunks_report.txt 的块数分布;旧品牌 grep = 0

4. 代码与前端表面(只出方案,本轮不动代码)

ID 文件 数量 改什么 为什么必须改 依赖顺序
G-01 tools\build_knowledge_chunks.py 1 🔴 新建「四查门禁」:(a) 占位符检查(XX / X{3,} / XXX-XXXX-XXXX);(b) 品牌白名单 = 南方基金 + nffund.com(不是 南方财富 + nanfangwm.com);(c) 禁止类目(银行理财 / 保险 / 票据贴现 / 供应链 / 信托受托 / 内保外贷);(d) 每块 visibility 必须显式声明(禁止缺省) 当前文件只有 assert_no_duplicate_contents 一个守卫;Todolist B-01 与 重构报告 把它当作已实现引用,实为虚构。不补上,重跑灌库会静默通过所有错误 最先
G-02 app\static\portal\** 24 南方财富 → 南方基金:18 个 index.html 的 <title> + 导航栏品牌名(app-shell.js:64 <strong>南方财富</strong>)+ brandmark.svg 的 aria-label + products.js / product-detail.js 的 document.title 🔴 评审唯一会用眼睛看到的品牌面。文档改得再干净,打开页面还是「南方财富」= 前功尽弃 与 G-01 并列优先
G-03 app\service\agent\governance.py:47 1 常量 15936583816 → 400-889-8899,且脱敏逻辑改为「放行热线常量」而非「放行手机号形态」 只改常量会让脱敏白名单变死规则(§2.2),不报错、不告警 G-01 后
G-04 portal\employee-operations\promotion\promotion.js:29 3 南方基金管理有限公司 → 南方基金管理股份有限公司;另 2 处测试内联值 与 CS-015 §1 全称冲突 可并行
G-05 risk_analysis_service.py:27、risk_agent.py:1/192/364、employee-risk\dashboard\index.html:80/139、risk_scan_scheduler.py:173 5 南方财富风控智能助手 → 南方基金风控助手 风控 Agent 自我标识,会在界面/日志里被看到 与 G-02 同批
G-06 tests\unit\service\test_knowledge_keyword_recall.py:23-24 1 断言写死 PRODUCT_TITLE = "南方科技有限公司 个人理财产品手册 · …" → 改成新标题链 灌库后标题链变化 ⇒ 测试必然失败 必须与灌库同批
G-07 app\service\knowledge_search_service.py:280 1 注释中的 南方科技有限公司 个人理财产品手册 → 新标题 仅注释,但属品牌残留 可并行
G-08 tools\build_knowledge_chunks.py(同 G-01) 1 🔴 三档落地:SOURCES 的 visibility 由「每源一个值」改为「按块判定」(如按章节/按是否含数值型产品要素);FAQ 分支取消第 287 行的硬编码 "public",改为从源文件的档位列读取 本次新发现:SOURCES 5 个条目 + FAQ 分支全部 visibility: "public"(脚本第 25/33/38/45/51/287 行)⇒ CS-015 §5 的三档规则在工程上完全没落地。这也解释了长期记忆里的「三档已接通无法证伪」——不是难证伪,是根本没实现 与 G-01 同批
G-09 同上 + PORT- 报告段 2 (a) allow_chapters: ["一、", "二、"] 使高净值规范只入前两章,需确认是有意为之并写入方案(若第三章改写后需入库,须放开);(b) 报告脚本第 319—322 行仍统计 POL-AML(反洗钱手册块),但该文件已不在 SOURCES ⇒ 死代码,应删 本次新发现:避免改写后出现「改了的没入库、入库的没改」错配 与 G-01 同批

4.0 ✅ 2026-09-18 状态更新(T1 落地回写)

本节上表的 G-01 / G-08 / G-09 三项均已落地,以下为可举证口径,证据文件: group_fqcd_jr\docs\evidence\20260918-t1-rebuild.json。

项 落地事实
G-08(三档落地) tools\build_knowledge_chunks.py 已改为按块判定档位:新增 FAQ_REGISTERED_QIDS(10 条:FAQ-0017/0020/0021/0027/0028/0029/0030/0033/0047/0053),FAQ 分支取消硬编码 "public";product\高净值客户服务规范.md 整篇由 public 改 registered。两道硬守卫:FAQ 条数 ≠ 64 或 registered ≠ 10 即 SystemExit(防止再次静默退化)
切片件重生 knowledge\_chunks.jsonl 由 2026-09-16 陈旧件(617 行、含 南方科技 441 处)重新生成为 628 块(faq 149 / policy 288 / product 191);visibility = public 603 / registered 25;南方科技 0 处、奶龙 0 处
集合重建 三集合已按 H-05 ④ 收敛后的唯一权威 schema(tools\setup_milvus_knowledge_collections.py)drop + 重建 + 重灌;visibility 为分区键(num_partitions = 16)、全字段 NOT NULL
分区键实测修正 🔴 「档位值变更 = 建分区」的说法作废——Milvus v2.5.3 在 partition key 模式下禁止手工 create_partition(disable create partition if partition key mode is used),改为「无需动作,引擎按哈希自动路由」;已回写 D2.4 / D3.1 / D3.2 三份文档
门禁 pytest 7 failed / 1441 passed / 2 skipped,与 T0 基线逐项相同;ruff 22 / mypy 3 / 文档与 schema 审计 0 —— 相对基线 0 回归

✅ 2026-09-18 第二轮已补做:family_id / param_class / intent 已补入切片件并重建重灌(18 字段),D2.4 附录F 的「同族合并 / 计算型参数位 / 意图标签」三条能力自此有数据支撑;另含会签批准的 tiers 档位改造(登录客户可见 registered),逐项见 D1.6 §4.9 与 docs\evidence\20260918-t1b-tiers-and-fields.json。

✅ 2026-09-19 第三轮(语料一致性修订 · 最小改动):单只产品 1.6 南方红利价值股票的赎回费行原为 持有<7 天:1.5%;7—365 天:0.50%;…(7—30 天档 = 0.50%),与 §6.1 总表股票列(7—30 天 = 0.75%)不一致,已补齐为 7—30 天:0.75%;30—365 天:0.50%;两处源文同改(repo 侧 knowledge\product\个人理财产品手册.md:247 + 文档体系 D6.2.1 :249)。产品 1.5(QDII)同形行明确保留(其 7—365 天:0.50% 与总表 QDII 列数值等价)。修订后重建切片 + 重灌集合:块数仍 628(faq 149 / policy 288 / product 191)、档位仍 public 603 / registered 25,变化仅 2 块(PROD-006 / PROD-006-16);Milvus 自检 7/7。证据 docs\evidence\20260919-t3m-h02d1d2-corpus-fix.json。

🔴 但发现一个改变计划前提的事实:客服 Agent 未在 AgentFactory 注册(agent_type=customer_service 实测返回 404 AGENT_TYPE_NOT_FOUND),客服业务层已于 2026-09-16 整体清除 ⇒ D2.1 的 T2/T3 中「改造 implementations/customer_service.py」类任务实际是「从零重建」,详见 D1.6 §4.9。

4.1 推荐顺序

G-01 + G-08 + G-09   ← 门禁与档位先立(同一文件,一次改完)
        ↓
G-02 + G-05 + G-07   ← 品牌面(评审肉眼可见)
        ↓
源文件改写 §3.1—§3.14 ← 内容
        ↓
G-06 + 重跑灌库       ← 同批,否则测试红
        ↓
G-03 + G-04          ← 可穿插,不阻塞主链

⚠️ G-01 与 G-02 是两条必经之路:G-01 决定「新语料能不能被正确灌进去」,G-02 决定「评审看到什么」。


5. 影响范围与依赖

5.1 串行约束

ID 约束 违反后果
S-1 先改源文件,再灌库 灌库会把手改的结果覆盖
S-2 先做 G-01 门禁,再灌库 错误语料静默通过(无任何告警)
S-3 G-06 与灌库同批 关键字召回测试必然失败,误判为「改坏了」
S-4 先改 D6.1.1-南方基金-企业信息.md(§3.5),再改下游三处(高频问答对 / knowledge\company\企业信息.md / D6.1.4-公司新人指南.md) 下游抄到的仍是错的
S-5 D6.4.3-用户信息数据示例.md 与 D6.5.2-客户B-普通投资者.md 同批改 同一段对话出现两套口径
S-6 开发文档\ 侧与 knowledge\ 侧同批改 改了母本但入库的是旧副本
S-7 灌库要求 Worker 停机 灌库期间被写入不一致

5.2 改写完成后的验收清单

# 检查项 通过标准
1 品牌三查 全仓 grep:XX科技 / 南方科技 / 南方财富 / nanfangwm.com / 400-XXX-XXXX / 400-826-9518 / 智能财富管家 = 0(_docbuilder.py 的替换规则表与文档内「禁止清单」除外)
2 身份四禁 grep:代销 / 保险经纪 / 票据贴现 / 供应链金融 / 存款 / 网点 在知识源中只出现在边界声明或禁止清单里,不出现于业务叙述
3 热线一致 app/ tests/ tools/ knowledge/ 内 15936583816 = 0;热线处处为 400-889-8899
4 占位符 知识源内 XX / X{3,} 形态的品牌与数据占位 = 0(身份证/手机号的脱敏掩码允许保留)
5 数据量级 AUM / 产品数 / 员工数落在 CS-015 §4.2 B 类同一量级,且标注截止日
6 档位 每条入库内容可判定 public / registered;概念解释、交易时限、C—R 匹配规则仍为 public
7 流程图闭环 申购(T+1 确认)/ 赎回(T+N 到账)/ 专户(面签+冷静期)/ 投诉(受理→分级→处置→反馈→回访→归档)四流程齐全
8 页面品牌 打开任一 portal 页面,<title>、导航栏、favicon 均为南方基金
9 交叉一致 D6.1.4-公司新人指南.md §1.2/§2.1 与 D6.1.1-南方基金-企业信息.md §4/§8 逐条一致
10 灌库 _chunks_report.txt 块数合理;旧品牌 grep = 0;G-06 测试绿

5.3 需要校正的既有基线数字与交叉引用

项 位置 现状 处置
热线定值 开发文档\D3.4-客服Agent重构Todolist.md:178 400-826-9518 ⚠️ 底稿定值表仍是旧值;G-01 实现门禁时不可照抄底稿,须用 CS-015 §6.3 的 400-889-8899
域名与邮箱 同上 :180 nanfangwm.com、complaint@nanfangwm.com 同上
品牌白名单定义 开发文档\D4.1-客服Agent重构报告-2026-09-16.md:209 南方财富 + 南方基金 + nanfangwm.com 🔴 白名单含 南方财富 ⇒ 若照抄,G-01 会放行 南方财富,与目标完全相反
旧值基线 报告:180 「语料 308 块自称南方科技、66 块含 400-XXX-XXXX」 ✅ 与本次实测吻合(_chunks.jsonl 314 行命中) 可作改写前后对照基线
测试内联值 test_knowledge_keyword_recall.py:23-24 写死旧标题链 见 G-06
版本号 SOURCES 各文件的 version / effective_date V2.8 / V2.1 / V3.0 / V3.2 内容大改 ⇒ 须递增版本号并填 effective_date,否则用户拿到的仍是「旧版」标注

✅ 已复核:客服agent\ 侧品牌是干净的 —— 旧值只出现在两处合法位置:_build\_docbuilder.py 的替换规则表(第 84—92 行),以及四份交付文档里的**「旧值一律不得出现」禁止清单**(需求文档:756、知识库设计方案:487、_body_requirements:410/579)。不需要再改。

5.4 为什么「不入库」的文件也必须改

用户研判规则\*、D6.4.3-用户信息数据示例.md、用户测试数据\* 不进面向客户的 RAG,但仍必须改,三条理由:

  1. 演示会投屏 —— 客户 B 的对话记录是演示脚本的一部分,「我们代销的 XX 银行 R2 级稳享系列」会被现场看到;
  2. 它们是研判规则的数据依据 —— 规则文档若以「银行理财」为样本,后续开发(画像标签、推荐策略)会照抄错误的产品分类;
  3. 口径一致性 —— 同一段对话同时存在于 D6.4.3-用户信息数据示例.md(C)与 D6.5.2-客户B-普通投资者.md,只改一份会让两份文件互相矛盾。

5.5 清单外残余(需后续处置)

位置 内容 建议
开发文档\D7.4-开发引导.md 标题「智能财富管家系统 — 开发实施引导」+「《XX科技·智能财富管家系统 — 项目开发需求文档》v1.0」 属早期系统文档(文档规整方案 D-2 待决);本轮不改,但须在 D-2 处置时一并处理
开发文档\D3.4-客服Agent重构Todolist.md / 重构报告-2026-09-16.md 底稿中的旧值定值表与白名单定义 见 §5.3 —— 不是改底稿,而是 G-01 实现时以 CS-015 §6.3 为准
group_fqcd_jr\docs\** 8 份含旧品牌的历史记载 已是既定边界(CS-015 §7.3):由 F-05 回写

6. 本次不做(边界声明)

不做 原因
编写、修改、提交任何代码 用户 2026-09-17 明确指令
改 app\static\portal\**、app\service\**、tests\** 同上 ⇒ 仅出方案(§4)
改写 group_fqcd_jr\docs\** 历史记载,文档规整方案 §6.3 已定「由 F-05 回写」
重跑灌库 / 重建向量 需先完成 G-01 + G-08 + 语料改写,且要求 Worker 停机(S-2 / S-7)
手工编辑 _chunks.jsonl 派生件(§3.15)
删除 advisor_* 21 张表 / 15 个 alembic 迁移 AGENTS.md 规则 3 禁删表
改动 fin_product.fund_manager = '南方基金' ✅ 该口径本来就对,是本次的立足点(CS-015 §0.2 问题三)
改动 C1—R 映射(CS-015 §4.4) 已裁决,本次只做对齐不做变更
处置 D6.3.3-反洗钱合规操作手册.md SOURCES 注释明确其不入库,业务不涉及转账划付

7. 建议执行顺序

阶段 内容 前置 产出
P0 确认本文与 CS-015 v1.1 — 用户签字
P1 G-01 + G-08 + G-09(同一文件一次改完) P0 门禁可运行;档位可落地
P2 改写 D6.1.1-南方基金-企业信息.md(§3.5) P1 母本
P3 下游三处对齐(§3.6 / §3.10 / §3.4) P2 S-4 解除
P4 公司业务三份(§3.1 / §3.2 / §3.3)+ knowledge\ 对应副本 P2 内容层完成
P5 政策 / 研判 / 测试数据(§3.7—§3.9 / §3.14) P4 全量完成
P6 G-02 + G-05 + G-07(品牌面) 可与 P4 并行 肉眼可见品牌正确
P7 G-06 + 重跑灌库 + 验收 §5.2 P5 + P1 语料入库
P8 G-03 + G-04 + 复核 §5.3 基线数字 P7 收尾

8. 待用户确认项

# 待确认 选项 建议
C-01 D6.1.4-公司新人指南.md 是否入库? (a) 入库(属 公司信息\,规则允许)/(b) 不入库(含薪酬、考勤、晋升等内部 HR 信息) ⚠️ 建议 (b) 不入库或只入 §1—§3 —— 现行 SOURCES 未包含它,说明它本来就不入库;本文按「手册本身的正确性」要求改写,是否入库另行决定
C-02 高净值规范 第三章改写后是否入库? (a) 维持只入「一、二」两章/(b) 放开第三章 建议 (a) —— 家族信托/传承属咨询类,客户高频问题少,且边界声明性内容入库收益低
C-03 三档(G-08)本轮是否实现? (a) 现在做/(b) 与 D-01/D-02/D-04 同批 建议 (a) —— 不做则 CS-015 §5 的档位规则无法生效,访客问答范围不可控
C-04 数据量级取真值还是脱敏近似? (a) 用 CS-015 §4.2 B 类真实公开口径+截止日/(b) 用同量级的虚构值 建议 (a) —— 公开可查,写错比写虚构更致命
C-05 用户测试数据\D6.5.1-客户A-高净值.md、D6.5.3-访客-未注册意向客户.md 是否同批修订? (a) 同批(口径一致性)/(b) 后续 ⚠️ 本文只精查了 客户B;另两份未逐行核对,建议同批以避免口径分裂
C-06 底稿定值表(§5.3)是否回改? (a) 只修 G-01 用到的白名单与热线,底稿保持原样(历史记载)/(b) 底稿也改 建议 (a) —— 底稿是「当时的事实」,改了会破坏溯源;但必须在 G-01 里显式注明以 CS-015 §6.3 为准

9. 取证记录

结论 取证方式(2026-09-17)
15 份知识源清单与品牌残留量 Grep 全量扫描 开发文档\**\*.md + group_fqcd_jr\knowledge\**
各文件章节结构(本文修改点行号) Grep "^#{1,3}\s" 逐文件取标题与行号(企业金融 39 个标题、个人理财 36、高净值 41、新人指南 41、企业信息 46、研判 46、客户B 26、政策 9)
代销机构病灶精确行号 Grep 代销|不发行|保险经纪|证券投资咨询|网点|第三方 → D6.1.2-南方基金-高频问答对.md:38/42/44/46/82/204/206/296/312
占位符与旧品牌分布 Grep 400-XXX-XXXX|XXX|XX科技|xxtech 全量
G-01「四查门禁」不存在 通读 tools\build_knowledge_chunks.py 全文 326 行:仅 assert_no_duplicate_contents(第 198 行)一个守卫
G-08 visibility 硬编码 public 读 build_knowledge_chunks.py:23-55(SOURCES 5 条全 "visibility": "public")+ :272(取 config["visibility"])+ :287(FAQ 分支字面量 "public")
G-09 高净值仅入前两章 读 :44-49 的 allow_chapters: ["一、", "二、"];死代码见 :319-322(POL-AML 统计,而该文件已不入 SOURCES,注释见 :29-31)
客服agent\ 侧品牌已干净 Grep 客服agent\** → 仅命中 _build\_docbuilder.py:84-92(替换规则表)与文档内禁止清单(需求文档:756、知识库设计方案:487、_body_requirements:410/579)
底稿定值表仍为旧值 Grep → 开发文档\D3.4-客服Agent重构Todolist.md:178(400-826-9518)、:180(nanfangwm.com);重构报告-2026-09-16.md:209(白名单含 南方财富)
前端 24 文件用 南方财富 Grep -c 南方财富 app/ → 24 文件命中(CS-015 §7.2 G-02)

10. 关联文档

文档 关系
D1.2-南方基金业务事实基座与虚构数据规范-2026-09-17.md(CS-CONTENT-2026-015 v1.1) 上游:本文「改成什么」的唯一口径来源
D1.3-文档规整方案与开发前待决事项-2026-09-17.md(CS-DOC-2026-014) D-1~D-5 决策台账;D-5 = 本文的直接来源
客服agent\D2.4-客服Agent知识库设计方案.html v1.2 三集合三档的工程承载(G-08 对齐目标)
客服agent\D2.2-客服Agent需求文档.html v2.4 §1.10 MVP 必守项;品牌口径出处
客服agent\D2.1-客服Agent执行Todolist.md v5.2 批次 B(B-01~B-05)是本次内容改写的工程承载
D4.1-客服Agent重构报告-2026-09-16.md(CS-010) ⚠️ §209 的 B-01 白名单定义含 南方财富,须以本文 §4 G-01 为准