diff --git a/README.md b/README.md
index aafebac..13d3cfd 100644
--- a/README.md
+++ b/README.md
@@ -7,8 +7,8 @@
它不是一个简单的聊天机器人,而是一套围绕客服场景设计的完整系统:
- AI Agent 先接待,优先处理常见问题与标准流程
-- 知识库检索驱动回答,支持 RAG 场景
-- 在低置信度、无答案或命中规则时转人工
+- 知识库检索驱动回答,并通过 Answerability Gate 防止超出知识库范围时乱答
+- 知识库无法支撑回答时返回兜底提示,并建议用户联系人工客服
- 后台可管理会话、工单、客服组、知识库、AI 配置、Skills 和 MCP
- 提供管理后台、客服工作台与客户侧 Web 接入入口
@@ -29,33 +29,35 @@ flowchart TD
A[用户发起咨询
Web 客服入口 / Open API] --> B[创建或匹配会话]
B --> C[客户发送消息]
C --> D[触发 AI Reply Runtime]
- D --> E[加载会话历史 / AI 配置 / 可用工具]
- E --> F[按需选择 Skill]
- F --> G[按需注入知识库检索结果]
- G --> H[Agent 运行并决定下一步]
- H --> I{直接回复?}
- I -- 是 --> J[LLM 生成回复并返回用户]
- J --> K{问题是否结束?}
- K -- 否 --> C
- K -- 是 --> L[结束会话或沉淀数据]
- I -- 否 --> M{是否调用 Graph / MCP Tool?}
- M -- 是 --> N[执行 Skill / Graph / MCP Tool]
- N --> O{需要用户确认?}
- O -- 否 --> H
- O -- 是 --> P[向用户发起确认]
- P --> Q{用户确认结果}
- Q -- 取消 --> J
- Q -- 确认转人工 --> R[会话转人工并进入待接入池]
- R --> S[按客服组/排班自动分配或人工分配]
- S --> T[客服工作台接管]
- T --> U{是否需要工单跟踪?}
- U -- 是 --> V[人工处理中创建/关联工单]
- U -- 否 --> W[人工继续处理]
- V --> W
- W --> X[问题解决并关闭]
- Q -- 确认建单 --> Y[从当前会话创建工单]
- Y --> H
- M -- 否 --> J
+ D --> E[加载会话历史 / AI 配置]
+ E --> F[按绑定知识库执行检索]
+ F --> G{知识片段是否足以回答?}
+ G -- 否 --> Z[返回知识库兜底提示
并建议联系人工客服]
+ G -- 是 --> H[准备 Skills / MCP Tools]
+ H --> I[将可信知识上下文交给 Agent]
+ I --> J{直接回复?}
+ J -- 是 --> K[LLM 基于知识生成回复并返回用户]
+ K --> L{问题是否结束?}
+ L -- 否 --> C
+ L -- 是 --> M[结束会话或沉淀数据]
+ J -- 否 --> N{是否调用 Graph / MCP Tool?}
+ N -- 是 --> O[执行 Skill / Graph / MCP Tool]
+ O --> P{需要用户确认?}
+ P -- 否 --> I
+ P -- 是 --> Q[向用户发起确认]
+ Q --> R{用户确认结果}
+ R -- 取消 --> K
+ R -- 确认转人工 --> S[会话转人工并进入待接入池]
+ S --> T[按客服组/排班自动分配或人工分配]
+ T --> U[客服工作台接管]
+ U --> V{是否需要工单跟踪?}
+ V -- 是 --> W[人工处理中创建/关联工单]
+ V -- 否 --> X[人工继续处理]
+ W --> X
+ X --> Y[问题解决并关闭]
+ R -- 确认建单 --> AA[从当前会话创建工单]
+ AA --> I
+ N -- 否 --> K
```
## 核心业务流程
@@ -124,12 +126,13 @@ flowchart TD
D --> E[AI Agent 绑定知识库]
E --> F[用户提问触发 AI Runtime]
F --> G[按知识库配置执行检索]
- G --> H{是否命中有效片段?}
- H -- 是 --> I[将知识片段注入运行时上下文]
- I --> J[Agent 基于知识生成回复]
- H -- 否 --> K[走知识库 fallback 文案或升级策略]
- J --> L[记录检索日志 / 运行日志]
- K --> L
+ G --> H[Answerability Gate 判定知识是否足以回答]
+ H --> I{可被知识片段支撑?}
+ I -- 是 --> J[将可信知识片段注入运行时上下文]
+ J --> K[Agent 基于知识生成回复]
+ I -- 否 --> L[返回知识库 fallback 文案
并建议联系人工客服]
+ K --> M[记录检索日志 / Answerability Trace / 运行日志]
+ L --> M
```
### 5. AI Reply Runtime 流程
@@ -137,20 +140,22 @@ flowchart TD
```mermaid
flowchart TD
A[客户消息进入运行时] --> B[装载会话历史]
- B --> C[加载 AI Config / 可用工具]
- C --> D[尝试命中 Skill]
- D --> E[按需注入知识库检索结果]
- E --> F[构造 Agent 输入消息]
- F --> G[Agent 执行]
- G --> H{输出类型}
- H -- 直接回复 --> I[写回 AI 消息]
- H -- Tool 调用 --> J[执行 Graph / MCP Tool]
- J --> K{是否触发确认中断?}
- K -- 否 --> G
- K -- 是 --> L[保存 checkpoint / pending interrupt]
- L --> M[等待用户回复确认或取消]
- M --> N[恢复执行 Resume]
- N --> G
+ B --> C[加载 AI Config]
+ C --> D[按绑定知识库检索]
+ D --> E{Answerability Gate 是否通过?}
+ E -- 否 --> F[写回 fallback 回复
并建议联系人工客服]
+ E -- 是 --> G[加载可用工具并尝试命中 Skill]
+ G --> H[构造带可信知识的 Agent 输入消息]
+ H --> I[Agent 执行]
+ I --> J{输出类型}
+ J -- 直接回复 --> K[写回 AI 消息]
+ J -- Tool 调用 --> L[执行 Graph / MCP Tool]
+ L --> M{是否触发确认中断?}
+ M -- 否 --> I
+ M -- 是 --> N[保存 checkpoint / pending interrupt]
+ N --> O[等待用户回复确认或取消]
+ O --> P[恢复执行 Resume]
+ P --> I
```
## 适用场景
@@ -289,7 +294,7 @@ make migration # 执行 migration
- AI 客服系统
- AI Helpdesk / AI Support Platform
-- RAG + Human Handoff 的落地样板
+- RAG 可回答性判定 + Human Handoff 的落地样板
- 面向企业场景的 AI Agent 应用框架
如果你在寻找一个 **以 AI Agent 为中心,而不是仅仅把 LLM 嵌进聊天框** 的客服系统,这个项目就是为此设计的。
diff --git a/docs b/docs
index ff1dc42..60beef4 160000
--- a/docs
+++ b/docs
@@ -1 +1 @@
-Subproject commit ff1dc42207a554025763d8d080611b6f324a094c
+Subproject commit 60beef424bbc17ae4231af6d20fdfcf4a01282c8