FDE W2D7 学习手册 · 整合与面试准备(W2 收尾)
W2 Day7 · 整合收尾 · 4h(含 Java 恢复 2h)· 学完能把 W2 全部产出串成"基础保险知识库",并讲清 Function Calling / MCP / 普通 API 的差异
本日定位:W2 前六天分别讲了 Function Calling(D1)、采样与结构化(D2)、Agent 编排(D3)、MCP 核心(D4)、MCP Server(D5)、基础 RAG(D6)。今天是整合日:把 OCR/Database/Rule 三类 Tool 整合进 MCP Server,把 Server 与 Client 串成端到端系统,融合 RAG 形成"基础保险知识库",并厘清三种接入方式(Function Calling / MCP / 普通 API)的差异。最后 2h 恢复 Java:Spring AI ChatClient 与 Tool Calling。
学完能回答:① Function Calling / MCP / 普通 API 三者差异与各自适用;② W2 整体产出如何串成"基础保险知识库"。
使用方法:先回顾 D1–D6 脉络 → 重点看「工程含义」「面试话术」「易错点」→ 做自测清单 → 配合《W2D7 评测题.md》。选中不熟的词可标注(左下★重要 / 右下📌待查)。
一、W2 收尾:从单点到系统
W2 是一条主线:让 LLM "接上企业能力与知识"。回顾:
| 天 | 主题 | 产出 |
| D1 | Function Calling | 模型调函数的能力 |
| D2 | 采样与结构化 | 稳定可解析的输出 |
| D3 | Agent 编排 | 多步工具调度 |
| D4 | MCP 核心 | 标准协议模型与握手 |
| D5 | MCP Server | 医保场景 Tool/Resource/Prompt |
| D6 | 基础 RAG | 文档→检索→带引用答案 |
| D7 | 整合收尾 | 串成"基础保险知识库" |
W2 主线是"LLM 接企业能力与知识":D1–D3 是能力与编排基础,D4–D5 是标准化接入(MCP),D6 是知识接入(RAG),D7 把三者融成"基础保险知识库"。面试要能画出这条演进线。
① 别把每天当孤立知识点——面试官看的是"你能不能串起来讲一个系统"。② 整合日不是学新概念,是把已有拼图拼成图。③ 三种接入方式(FC/MCP/API)常被混为一谈,务必要分清(见 s5)。
二、三件套整合:OCR Tool / Database Tool / Rule Tool
特药理赔需要三类能力,分别做成 MCP Tool 整合进同一 Server(或分 Server 由 Host 连):
| Tool | 职责 | 输入 | 输出 | 性质 |
| OCR Tool | 病历/发票识别 | 图片/PDF 路径 | 结构化文本+字段 | readOnly(只识别) |
| Database Tool | 查保单库/理赔记录 | 保单号/条件 | 记录/状态 | 读为主,受权限约束 |
| Rule Tool | 特药规则校验 | 诊断+药品+保单 | 是否报销+理由+上限 | readOnly(只查算) |
工程整合要点:① 三者可同 Server(按模块分组)或分 Server(按团队/部署边界),取决于 ownership;② Database Tool 是敏感点——必须有真实权限(D4 s10),不能看 Annotation;③ Rule Tool 规则外置(D5 s5);④ 输出都结构化、带引用/来源,供下游拼接与审计。
理赔三件套:OCR(识别病历,readOnly)、Database(查保单,受权限约束)、Rule(校验报销,外置规则)。整合进 MCP Server,输出统一结构化、带来源,供 Agent 编排与 RAG 拼接。Database 是安全重点,必须真实鉴权。
① 别把 Database Tool 写成"任意 SQL 执行"——要封装成受控查询,防注入与越权。② 三者输出格式要统一(错误结构化、字段命名一致),否则 Agent 难消费。③ OCR 与 Rule 都标 readOnly,但真实权限仍由 Host 判定(D4 结论)。
三、MCP Server 与 Client 整合(端到端架构)
Host(理赔Agent) ⇄ Client₁ ⇄ OCR/DB/Rule MCP Server(stdio/HTTP)
⇄ Client₂ ⇄ RAG 检索 Server(ES 知识库)
⇄ Client₃ ⇄ 政策 MCP Server(Remote, OAuth)
一个 Host 内多个 Client,各连一个 Server;Host 负责把工具发现结果汇成"工具集"交给模型,模型在多轮里编排调用,最终结合 RAG 检索结果生成带引用的理赔结论。
端到端整合注意:① 多 Server 的 tools/list 要合并去重,相似 Tool 命名清晰;② Session/超时统一管理(D4 s8);③ 远程 Server(政策)走 OAuth 门禁+能力审查(D4 s11/s12);④ 全链路日志串联(同 traceId)便于理赔审计。
Server/Client 整合 = Host 内多个 Client 各连一个 Server(OCR/DB/Rule、RAG、政策),Host 把工具集汇给模型做编排,结合 RAG 生成带引用结论。要点:工具合并去重、会话统一、远程 OAuth、全链路 trace。
① 多 Server 同名 Tool 会冲突——合并时要命名空间化(如 policy.query / rule.check)。② 别让 Host 自动连未知 Server(D4 s12 信任)。③ 链路 trace 不贯通,理赔出问题无法定位是哪个 Tool 出错。
四、基础保险知识库:RAG + MCP 融合
"基础保险知识库"= RAG 检索(静态知识:条款/目录/政策)+ MCP 工具(动态能力:查库/OCR/校验) 的融合体:
- RAG 侧:保单条款、特药目录、医保政策做成 ES 向量库,查询时混合检索+引用(D6)。
- MCP 侧:OCR/Database/Rule 做成 Tool,让模型能"行动"(识别、查询、校验)。
- 融合:生成 prompt 同时拼入 RAG 检索到的资料(带引用)与 MCP 工具返回的结构化结果,模型基于"资料+实时数据"作答。
这是企业知识库的成熟形态:静态知识用 RAG(便宜、可更新),动态/实时数据用 MCP Tool(精确、可控)。医保里"条款"走 RAG,"某客户当前保单状态"走 Database Tool——各取所长。
基础保险知识库 = RAG(静态条款/目录/政策,检索+引用)+ MCP 工具(动态查库/OCR/校验)融合。生成时同时拼入检索资料与工具结果,模型基于"资料+实时数据"作答。静态用 RAG、动态用 MCP。
① 别把"实时保单状态"也塞进 RAG 索引——会变陈旧且不安全,该用 Database Tool 实时查。② RAG 与 MCP 返回要统一进同一上下文并都带引用,否则溯源断链。③ 融合后"谁说了算"要明确:实时工具结果优先于可能过期的检索资料。
五、Function Calling / MCP / 普通 API 的差异(达标线①)
| 维度 | 普通 API | Function Calling | MCP |
| 本质 | 程序间固定接口调用 | 模型调函数的能力(单点) | 工具/数据接入的标准协议(生态) |
| 谁决策调用 | 代码(硬编码流程) | 模型(推理中决定) | 模型(经 Client 发现后) |
| 集成方式 | 手写请求/解析 | 各家模型私有 schema | 统一协议,Server 一次实现多 Client 通用 |
| 发现 | 无(看文档) | 硬编码/手动 | tools/list 动态发现 |
| 能力范围 | 任意(看接口) | 通常仅函数 | Tools+Resources+Prompts |
| 适用 | 确定流程、系统对接 | 模型需调函数(快速原型) | 多工具/多模型标准化接入 |
三者差异一句话:普通 API=代码硬编码调接口(确定流程);Function Calling=模型自己决定调函数(单点、各家私有);MCP=工具接入的标准协议(生态、动态发现、三类原语)。不是替代关系,是层次不同。
工程选型:① 内部确定流程(如"定时跑批对账")用普通 API,没必要让模型参与;② 单个模型要"临时调个函数"用 Function Calling 最快;③ 多工具/多模型/要动态发现与标准化,用 MCP。医保生产里三者并存:批处理用 API,Agent 用 MCP,快速试验用 FC。
① 别以为 MCP 取代普通 API——内部服务间调用还是普通 API 最高效,MCP 是"给 LLM 接"的。② Function Calling 与 MCP 不矛盾:MCP 之上仍可承载 FC 式调用,MCP 解决的是"怎么标准化接"。③ 面试若说"三者选一个"是错问法,应"按场景选"。
六、普通 API 的定位与适用
普通 API(REST/gRPC)是代码对代码的接口,调用方、参数、流程都是确定的,与 LLM 无关。
- 适用:确定业务流程(对账、同步、批处理)、服务间集成、性能敏感路径。
- 不适用:需要模型"临场决定调不调、调哪个"的场景——那是 FC/MCP 的活。
- 与 LLM 的关系:MCP Server 底层往往就是调普通 API(如 Database Tool 调内部保单 REST 服务)。
医保落地:保单核心库对外是普通 API(Java Spring 服务),MCP 的 Database Tool 只是把这 API 包一层给模型用。内部批处理(如每日理赔汇总)直接普通 API,不走 LLM,省成本保稳定。
普通 API=代码对代码的确定接口,与 LLM 无关,适合确定流程/服务集成/批处理。它常是 MCP Tool 的"底层实现"——Tool 调普通 API 取数给模型。别为"接 LLM"而把内部批处理也改 MCP。
① 别把"模型要调"和"代码要调"混为一谈——后者普通 API 足矣,硬上 MCP 是多此一举。② MCP Server 底层调普通 API 时,原有权限/审计不能丢(D5 s12)。③ 普通 API 的稳定性/性能通常优于经 LLM 的路径,确定流程优先用 API。
七、三者选型决策树
需要模型"临场决策调不调/调哪个"吗?
├ 否 → 普通 API(确定流程/服务集成/批处理)
└ 是 → 要"标准化/多工具/多模型/动态发现"吗?
├ 否 → Function Calling(快速让单模型调函数)
└ 是 → MCP(统一协议,Server 一次实现多 Client 通用)
医保实战决策:① 定时理赔对账 → 普通 API;② 单模型原型"让模型查个保单"→ Function Calling 最快;③ 生产理赔 Agent 要连 OCR/DB/Rule/政策多源 → MCP。三者在同一系统里共存,各管一段。
选型决策:模型不需临场决策→普通 API;需要但只单模型快速调→Function Calling;需要标准化/多源/多模型→MCP。医保里对账用 API、原型用 FC、生产多源 Agent 用 MCP,三者共存。
① 不是"上了 MCP 就全用 MCP"——确定流程仍用普通 API 更高效。② 原型直接 FC 没问题,但生产要多源标准化时再迁 MCP,别过度设计也别欠设计。③ 面试要展现"按场景选"的思维,而非背定义。
八、Java 恢复 2h:Spring AI ChatClient
候选人是 Java 背景,用 Spring AI 落地最顺。ChatClient 是与 LLM 对话的统一入口,屏蔽不同模型厂商差异。
ChatClient client = ChatClient.builder(chatModel).build();
String answer = client.prompt()
.user("这张保单能报销奥希美替尼吗?")
.call()
.content();
- 统一抽象:换模型(OpenAI/通义/本地)只换 ChatModel 实现,业务代码不变。
- 链式 API:prompt().user().system().tools().call() 流畅组装。
- 与 MCP 集成:ChatClient 可挂 McpToolCallback(把 MCP Server 的工具暴露给模型)。
Java 恢复重点:用 ChatClient 把"对话"标准化,再叠加 tools(Function Calling)或 MCP 工具。医保团队复用 Spring 生态,ChatClient + @Tool + McpToolCallback 即可把 D1/D4/D5 的能力在 Java 里落地。
Spring AI 的 ChatClient 是与 LLM 对话的统一入口,链式组装 prompt,屏蔽模型厂商差异。它可挂 Function Calling 工具或 MCP 工具回调,是 Java 落地 W2 能力的核心。换模型只换 ChatModel 实现。
① ChatClient 是"对话入口"不是"模型"——真正模型是注入的 ChatModel。② 别在 prompt 里硬编码模型私有格式,保持厂商无关。③ 恢复 2h 重点在跑通"ChatClient + 一个 Tool",而非通读全部 API。
九、Spring AI Tool Calling
Spring AI 的 Tool Calling 把 Java 方法包成模型可调工具,与 D1/D5 概念一致:
@Tool(description = "按保单号查询保单状态与额度")
public Map<String,Object> queryPolicy(@ToolParam("保单号") String policyNo) {
return policyService.query(policyNo);
}
// 注册给 ChatClient
ChatClient client = ChatClient.builder(model)
.defaultTools(queryPolicyTool) // 或 McpToolCallback 接 MCP Server
.build();
Tool Calling 在 Java 里 = @Tool 注解 + 注册到 ChatClient。要接 MCP Server 则用 McpToolCallback(把远程 Server 的工具转成本地回调)。权限见 s10:敏感 Tool 在方法内做真实鉴权,不靠描述。
Spring AI Tool Calling:@Tool 把 Java 方法包成模型工具,注册到 ChatClient 即可。接 MCP 用 McpToolCallback。与 D1 Function Calling、D5 MCP Server 一脉相承——Java 侧落地方式。
① @Tool 的 description 同样决定模型调不调,别空着。② 接 MCP 时 McpToolCallback 负责协议,业务方法仍要保留原权限/审计。③ 别把"工具定义"和"权限判断"混在描述里——权限靠代码不在描述(D4 s10)。
十、权限与安全串联(结合 D4/D5)
整合后安全要贯通三层:
- 传输/端点:Remote Server 用 OAuth 门禁(D4 s11)。
- Tool 级业务授权:Host/Server 真实权限(用户角色、保单状态),不看 Tool Annotation(D4 s10)。
- 来源信任:Server 白名单/沙箱/能力审查(D4 s12)。
- 数据合规:审计留痕、隐私脱敏(D5 s11)。
医保生产:理赔 Agent 调 Database Tool 查客户保单,先由 Host 按当前用户角色判定是否有权;远程政策 Server 走 OAuth;所有调用同 traceId 审计。Annotation 只作 UX 提示(弹确认框),绝不作安全边界。
整合安全串联:传输 OAuth(门禁)+ Tool 级真实鉴权(不看 Annotation)+ Server 来源信任(白名单/沙箱)+ 数据合规(审计/脱敏)。Annotation 仅 UX 提示,安全边界靠真实权限系统。
① 整合后最容易"某层漏了鉴权"——要逐层核对,别只信一层。② 多 Server 合并后,高危 Tool 要在 Host 层统一拦截。③ 审计 trace 必通,否则合规不达标。
十一、端到端理赔流程演练
用户提交病历图 → OCR Tool 识别 → Database Tool 查保单状态 → RAG 检索特药目录(带引用)
→ Rule Tool 校验报销 → 模型综合生成结论(附引用+should_refuse) → 审计留痕
- 用户上传病历图片 → Host 调 OCR Tool 得结构化文本(readOnly,保原文引用)。
- 模型从 OCR 结果抽保单号 → 调 Database Tool 查状态/额度(受权限约束)。
- 模型问"该药是否报销" → RAG 检索特药目录与条款(BM25+向量,带 [n] 引用)。
- 模型调 Rule Tool 跑规则 → 得 covered/reason/max_amount(低随机、可解释)。
- 模型综合生成理赔结论,每条标引用;信息不足则 should_refuse。
- 全链路同 traceId,落审计。
这是 W2 全部能力的"阅兵式":D2 低 T 结构化、D3 编排、D4/D5 MCP、D6 RAG 引用与拒答,全部串起来。面试能流畅讲一遍这个流程,W2 就过关了。
端到端演练:OCR 识别 → DB 查保单(鉴权)→ RAG 检索目录(引用) → Rule 校验 → 模型综合生成(引用+拒答) → 审计。它把 W2 的采样/编排/MCP/RAG 全部串起,是面试讲系统的主线索。
① 演练时别漏"权限判定"和"拒答"环节——这是生产必需,也是面试扣分点。② 引用要贯通 OCR 原文、RAG 资料、Rule 理由,断了就溯源失败。③ 每一步失败要有降级(如 OCR 失败转人工),不能卡死。
十二、面试表达:如何讲清 W2 整体产出
面试讲系统的话术框架(背熟):
"W2 我围绕'让 LLM 接上企业能力与知识'展开。先用 Function Calling 让模型调函数(D1),用低 T+结构化保证输出稳定(D2),用 Agent 编排多步调用(D3);进而用 MCP 把工具/数据接入标准化——讲清了 Host/Client/Server 模型、初始化握手、三类原语与安全边界(D4),并实现了医保场景的 MCP Server(D5);知识侧用 RAG 做文档解析→切分→向量化→混合检索→带引用生成,并强调引用溯源与无答案拒答(D6);最后整合 OCR/DB/Rule 三件套与 RAG,形成'基础保险知识库',并厘清 Function Calling/MCP/普通 API 三者差异与选型(D7)。"
表达技巧:① 先给"主线一句话"再展开;② 每个概念都有"医保例子"落地;③ 主动点出"易错点"(如 Annotation 不鉴权、BM25 vs 向量)展示深度;④ 用一句话话术收尾达标线。
① 别堆概念不讲主线——面试官要的是"你能否串成系统"。② 别只背定义,缺"医保例子"会显得没落地。③ 主动暴露易错点(比被动被问更能加分)。
十三、面试达标线①:Function Calling / MCP / 普通 API 三者差异与适用
| 维度 | 普通 API | Function Calling | MCP |
| 本质 | 代码对代码确定接口 | 模型调函数(单点) | 工具接入标准协议(生态) |
| 调用决策 | 代码硬编码 | 模型临场决定 | 模型经 Client 发现后决定 |
| 适用 | 确定流程/集成/批处理 | 单模型快速调函数 | 多工具/多模型标准化接入 |
达标线①核心:能说清三者层次不同、不是替代——普通 API 是确定流程、Function Calling 是单模型调函数、MCP 是标准化接入生态;并能按"是否需模型临场决策、是否需标准化多源"做选型。三者在同一系统共存。
十四、面试达标线②:W2 整体产出如何串成"基础保险知识库"
静态知识(RAG: 条款/目录/政策, 检索+引用) + 动态能力(MCP: OCR/DB/Rule Tool) → Host 编排 → 带引用理赔结论 + 审计
- RAG 侧:条款/目录/政策做成 ES 向量库,混合检索+引用溯源+无答案拒答。
- MCP 侧:OCR/Database/Rule 做成 Tool,统一结构化输出、受真实鉴权。
- 融合:生成 prompt 拼入检索资料与工具结果,模型基于"资料+实时数据"作答。
- 端到端:OCR→DB→RAG→Rule→生成(引用+拒答)→审计,全链路 trace。
达标线②核心:能讲清"基础保险知识库"= RAG(静态知识)+ MCP(动态能力)融合,并用端到端理赔流程串起 W2 全部能力。这是 W2 的"总收口",能流畅讲一遍即过关。
十五、W2D7 自测清单
- 能画出 W2 七天主线(FC→采样→编排→MCP核心→MCP Server→RAG→整合)。
- 能说明 OCR/Database/Rule 三件套各自的职责、输入、输出与性质。
- 能画出 Host 内多 Client 连多 Server 的端到端架构,并说清整合要点。
- 能讲清"基础保险知识库"= RAG(静态)+ MCP(动态)融合。
- 能对比 Function Calling / MCP / 普通 API 三者差异(本质/决策/集成/适用)。
- 能说出普通 API 的定位与适用(确定流程/集成/批处理),并说明它常是 MCP Tool 底层。
- 能画出三者选型决策树(是否需模型临场决策 → 是否需标准化多源)。
- 能写出 Spring AI ChatClient 的基本用法,并说明它是模型无关的统一入口。
- 能写出 Spring AI @Tool / Tool Calling 示例,并说明接 MCP 用 McpToolCallback。
- 能串联整合后的安全三层(OAuth/真实鉴权/来源信任/合规审计)。
- 能流畅走一遍端到端理赔流程(OCR→DB→RAG→Rule→生成→审计)。
- 能用"一句话主线+医保例子+易错点"的框架在面试中讲清 W2 产出。
十六、高频面试题速记卡
Q:Function Calling、MCP、普通 API 什么关系?
普通 API=代码确定接口;Function Calling=单模型调函数(单点);MCP=工具接入标准协议(生态)。层次不同、共存,按场景选。
Q:三者怎么选型?
不需模型临场决策→普通 API;需要但单模型快速→FC;需标准化/多源/多模型→MCP。医保:对账用API、原型用FC、生产多源Agent用MCP。
Q:基础保险知识库怎么构成的?
RAG(静态条款/目录/政策,检索+引用)+ MCP 工具(动态查库/OCR/校验)融合,生成时拼资料+实时数据,带引用作答。
Q:Spring AI ChatClient 是什么?
与 LLM 对话的统一入口,链式组装 prompt,屏蔽模型厂商差异;可挂 Function Calling 工具或 MCP 回调。换模型只换 ChatModel。
Q:Spring AI 怎么做 Tool Calling?
@Tool 注解把 Java 方法包成工具,注册到 ChatClient;接 MCP 用 McpToolCallback。description 决定模型调不调。
Q:整合后安全怎么贯通?
传输 OAuth(门禁)+Tool 级真实鉴权(不看 Annotation)+Server 来源信任(白名单/沙箱)+数据合规(审计/脱敏)。Annotation 仅 UX 提示。
Q:端到端理赔流程?
OCR 识别→DB 查保单(鉴权)→RAG 检索目录(引用)→Rule 校验→模型综合生成(引用+拒答)→审计。串起 W2 全部能力。
Q:Database Tool 为何是安全重点?
涉及客户隐私与权限,必须封装成受控查询(防注入/越权),真实鉴权在方法内,不靠描述或 Annotation。
Q:静态知识和动态能力为何分开接?
静态(条款)用 RAG 便宜可更新;动态(实时保单状态)用 MCP Tool 精确可控。各取所长,避免陈旧与不安全。
Q:面试怎么讲 W2 产出?
先给主线一句"让 LLM 接企业能力与知识",再按天展开+医保例子,主动点易错点(Annotation不鉴权/BM25 vs 向量)收尾达标线。
FDE W2D7 学习手册 · 整合与面试准备(W2 收尾)(面试级)· 配合《W2D7 评测题.md》自测
📌 待查★ 重要