客服 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 生成的本地产物
This commit is contained in:
张胜宇
2026-09-20 14:33:30 +08:00
parent 8643ad1efc
commit 5d0becb67d
258 changed files with 77004 additions and 26099 deletions
@@ -0,0 +1,120 @@
# 基金交易与时限常识(行业通用)
> **文件性质**:公开金融常识整理,用于回答访客与客户关于基金交易流程与时限的通用问题。
> **重要边界**:各类基金的实际确认与到账时间**以该产品的基金合同、招募说明书与本公司正式公告为准**。
> 本文件只解释通用机制,**不就任何具体产品承诺天数**。
> **数据截止**:2026 年 6 月 30 日。
## 一、认购、申购与赎回
### 1.1 认购与申购的区别
- **认购**:在基金**募集期**内购买基金份额,此时基金尚未成立,认购费率与申购费率通常不同;
- **申购**:在基金**成立并开放**后购买基金份额,按申请当日的单位净值计算。
募集期内认购资金在基金成立前通常按活期存款利息或约定方式处理,具体以发售公告为准。
### 1.2 赎回与基金转换
**赎回**是投资者把持有的基金份额按当日净值换回资金。
**基金转换**是在**同一基金管理人**旗下的基金之间转换份额,通常只补收两只基金之间的费率差额,
不重复收取申购费。转换是否开放、可转换的产品范围,以本公司公告为准。
### 1.3 场内与场外交易方式的不同
| 维度 | 场内(买入 / 卖出) | 场外(申购 / 赎回) |
|------|-------------------|-------------------|
| 交易对象 | 其他投资者,撮合成交 | 基金本身 |
| 价格 | 实时行情价格,可能溢价或折价 | 当日单位净值(未知价) |
| 可用时间 | 交易时段内实时成交 | 交易日 15:00 前提交按当日净值 |
## 二、交易时限:T 日与 T+N
### 2.1 T 日、T+1 与 T+N 的含义
**T 日**指投资者提交交易申请的交易日。**T+N** 表示从 T 日起算的第 N 个交易日。
行业通用约定是:交易日的 **15:00 之前**提交视为当日(T 日)申请,15:00 之后提交顺延为下一交易日申请。
### 2.2 为什么"确认"与"到账"是两个时间
- **确认(份额登记)**:登记机构核对申请并登记份额,投资者可在账户中看到确认结果;
- **到账(资金可用)**:赎回资金从基金托管账户划出并到达投资者账户,可以取用。
确认通常早于到账。看到"已确认"不等于资金已经可以支取。
### 2.3 非交易日与节假日的处理
周末与法定节假日**不是交易日**,期间提交的申请顺延到下一个交易日处理。
因此长假前的最后一个交易日往往出现申请高峰,确认与到账时间也会相应顺延。
### 2.4 不同类型基金的时限量级
行业普遍规律是:货币市场基金的赎回到账通常较快;股票型、混合型基金通常需要数个交易日;
投资境外市场的基金(如 QDII)由于涉及境外市场结算,确认与到账时间更长。
**具体天数一律以产品合同与公告为准,不以本文件的量级描述作为承诺。**
## 三、基金的费用构成
### 3.1 一次性费用:认购费、申购费与赎回费
- **认购费 / 申购费**:买入时一次性收取,通常按金额分档,金额越大费率越低;
- **赎回费**:卖出时一次性收取,**按持有期限分档——持有时间越短,费率越高**,
其中相当一部分会计入基金财产,用于补偿继续持有的投资者。
持有期限自确认日起算,这也是"短期频繁申赎不划算"的原因。
### 3.2 按日计提的费用:管理费、托管费与销售服务费
管理费、托管费与销售服务费**不是向投资者单独收取**,而是从基金资产中**每日计提**、
定期支付。投资者感受到的是:**基金单位净值已经扣除了这些费用**。
因此比较两只基金时,不能只看名义费率,还要看净值表现。
### 3.3 场内交易的费用
场内买卖基金通常收取券商佣金,费率由券商与投资者约定。
基金交易**不征收证券交易印花税**。
### 3.4 在哪里查看费率
费率属于具体产品要素,应查看该基金的**基金合同、招募说明书与最新公告**,
或在本公司官方渠道的产品详情页核对,不应以口头描述或他人转述作为依据。
## 四、基金定投
### 4.1 什么是基金定投
基金定投是**按固定周期、以固定金额**申购同一只基金的交易方式,由系统自动执行,
资金按当期净值折算成份额。
### 4.2 定投的常见误区
定投**不保证盈利,也不消除市场风险**。它的作用是把一次性的择时决策分散为多次申购,
从而平滑买入成本、降低单次决策的时点风险;但如果基金本身长期下跌,
定投同样会亏损。定投计划应当与自己的现金流与风险承受能力匹配。
## 五、风险等级的含义
### 5.1 风险等级 R1 至 R5 的通用含义
| 等级 | 通用名称 | 一般特征 |
|------|---------|---------|
| R1 | 低风险 | 本金损失可能性很低,流动性高 |
| R2 | 中低风险 | 本金损失可能性较低,净值有小幅波动 |
| R3 | 中风险 | 净值波动较明显,可能出现阶段性亏损 |
| R4 | 中高风险 | 净值波动大,投资标的集中于权益类或特定主题 |
| R5 | 高风险 | 净值波动很大,可能出现较大幅度亏损 |
风险等级是对产品波动与本金损失可能性的**分类描述**,不是收益预测,也不构成任何推荐。
### 5.2 投资者风险承受能力与适当性匹配
投资者在购买前需完成风险测评,得到自己的风险承受能力等级。
**适当性匹配的原则是:产品的风险等级不得高于投资者的风险承受能力等级。**
风险不匹配时,销售机构应当给出明确警示,不得主动推介,并在投资者坚持购买时履行
额外的确认程序。风险测评结果有有效期,过期后需要重新测评。
### 5.3 为什么风险测评不能"代做"或"随便填"
风险测评的作用是让产品与投资者的真实情况匹配。代做、诱导修改或随意填写,
会让匹配结果失去意义,最终由投资者自己承担不匹配带来的损失。
测评题目与等级划分由各销售机构按监管要求制定,并需留痕备查。
+112
View File
@@ -0,0 +1,112 @@
# 基金基础知识(行业通用)
> **文件性质**:公开金融常识整理,用于回答访客与客户关于基金概念的通用问题。
> **重要边界**:本文件**不含任何具体产品的费率、门槛、业绩或推荐**;涉及具体产品与本公司规则时,
> 以该产品的基金合同、招募说明书与本公司正式公告为准。
> **数据截止**:2026 年 6 月 30 日。
## 一、基金的概念与运作
### 1.1 什么是证券投资基金
证券投资基金(简称"基金")是把众多投资者的资金汇集起来,交由专业的基金管理人进行组合投资,
并由独立托管人保管资产的一种集合投资工具。它的四个基本特征是:**集合投资、专业管理、
组合投资、利益共享与风险共担**。基金份额持有人按所持份额比例享有基金财产收益,
同时承担相应投资风险。
### 1.2 基金的主要当事人
| 角色 | 承担的职责 |
|------|-----------|
| 基金份额持有人 | 出资并持有基金份额,享有收益、承担风险 |
| 基金管理人 | 募集资金、投资运作与日常管理,对基金财产独立运作 |
| 基金托管人 | 保管基金财产、监督投资运作、复核净值 |
| 基金销售机构 | 办理认购、申购、赎回等销售业务 |
### 1.3 基金与股票、债券的区别
- **股票**:代表公司所有权,价格波动大,无固定期限,收益不确定;
- **债券**:代表债权关系,约定还本付息,收益相对确定、波动较小;
- **基金**:本身是一篮子资产的集合,投资标的可以同时包含股票与债券,
因此风险收益特征介于两者之间,并随基金类型不同而差异很大。
## 二、基金的常见分类
### 2.1 按投资对象分类
| 类型 | 主要投资方向 |
|------|-------------|
| 股票型基金 | 主要投资股票,波动与预期风险相对较高 |
| 债券型基金 | 主要投资债券,波动通常小于股票型 |
| 混合型基金 | 同时投资股票与债券,比例由合同约定 |
| 货币市场基金 | 投资短期货币工具,流动性较高、波动较小 |
| 基金中基金(FOF) | 以其他基金为主要投资标的 |
风险与收益通常与投资标的的波动正相关:**预期收益与风险是同一件事的两面**,
不存在只提高收益而不增加风险的产品。
### 2.2 按运作方式分类
- **开放式基金**:基金份额总额不固定,投资者可按约定在开放日申购、赎回;
- **封闭式基金**:份额总额在存续期内固定,投资者通常只能在二级市场买卖,不能直接赎回。
定期开放基金介于两者之间:只在约定的开放期办理申购赎回。
### 2.3 按交易场所分类:场内与场外
- **场内基金**:在证券交易所挂牌交易,如 ETF、LOF,投资者用证券账户按撮合价格**买入、卖出**;
- **场外基金**:通过基金公司直销或代销渠道办理,投资者按当日基金份额净值**申购、赎回**。
两者的定价机制不同:场内价格由买卖双方撮合形成,可能高于或低于基金净值(即溢价或折价);
场外申赎则按"未知价"原则,以申请当日收市后计算的净值为准。
### 2.4 指数基金与 ETF
**指数基金**以跟踪某个指数为目标,不做主动选股,力求把跟踪误差控制在合同约定范围内。
**ETF(交易型开放式指数基金)** 是指数基金的一种,既可以在一级市场用一篮子证券申购赎回,
也可以在二级市场像股票一样买卖。
ETF 联接基金是把绝大部分资产投资于对应 ETF 的场外基金,方便没有证券账户的投资者参与。
## 三、基金份额与净值
### 3.1 基金份额与基金资产净值
- **基金份额**:投资者持有的基金数量单位;
- **基金资产总值**:基金持有的全部资产按市价计算的价值;
- **基金资产净值**:基金资产总值减去负债后的余额;
- **单位净值(NAV)**:基金资产净值除以基金份额总数,即每一份额对应的价值。
申购、赎回都以单位净值作为计价基础,并加减相关费用。
### 3.2 累计净值与复权净值
**累计净值**是单位净值加上基金历史上累计分红后的结果,用来观察基金成立以来的整体表现。
**复权净值**进一步假设历史分红全部按当时净值再投资,因此更能反映长期持有的真实收益。
只看单位净值会低估分红型基金的长期表现,看累计净值或复权净值更合适。
### 3.3 常见收益指标的含义
- **日涨跌幅**:当日单位净值相对前一交易日的变动比例;
- **区间收益率**:指定区间内的净值变动比例,需注意起止时间;
- **万份收益**:每一万份基金份额当日实现的收益金额,常见于货币市场基金;
- **七日年化收益率**:把最近七天的收益水平折算成一年的假设收益率,
是**短期指标,每天都会变化,不代表未来或全年实际收益**。
### 3.4 为什么"过往业绩不代表未来表现"
历史净值只记录已经发生的结果,受市场环境、产品规模与投资策略变化等多种因素影响。
因此法规要求所有基金宣传推介材料必须同时提示"**基金过往业绩不代表未来表现,
投资须谨慎**"。看到任何收益展示,都应当同时看风险提示与业绩比较基准。
## 四、基金的分红
### 4.1 现金分红与红利再投资
- **现金分红**:把分红金额直接支付给投资者;
- **红利再投资**:把分红金额按除权后的净值折算成新的基金份额,通常不收申购费。
### 4.2 分红的常见误区
分红**不是额外的收益**。分红后单位净值会相应下降,投资者持有的总资产在分红瞬间并不增加。
分红的意义在于把已实现的收益转化为现金或更多份额,属于收益的分配方式而非收益来源。