阶段4(上):LangGraph、Function Calling、MCP(SDK 2.x)、Agent 评测与运维、Agent 设计专题;run_examples 设置 RUN_EXAMPLES=1
This commit is contained in:
1 parent
6650f7eb6d
commit
caaec830b3
38 files changed
+3515
-64
No files matched your search
@@ -0,0 +1,61 @@
|
||||
---
|
||||
id: ai.mcp.interview
|
||||
title: MCP 面试题
|
||||
type: interview
|
||||
domain: ai
|
||||
stack: [mcp]
|
||||
tags: [MCP, 面试]
|
||||
level: intermediate
|
||||
related: [ai.mcp.protocol-server]
|
||||
week: [10, 11, 16]
|
||||
---
|
||||
|
||||
# MCP 面试题
|
||||
|
||||
## 基础
|
||||
|
||||
### 【基础】MCP 是什么?解决什么问题?
|
||||
|
||||
**参考答案**:模型上下文协议,一个让 AI 应用以统一方式接入外部工具和数据的开放协议。解决 M 个 AI 应用 × N 个工具的重复集成问题:工具方实现一次 MCP 服务,所有支持 MCP 的应用都能使用。
|
||||
|
||||
**追问**:MCP 和 OpenAPI 有什么区别?→ OpenAPI 描述 HTTP 接口;MCP 面向 AI 应用,除了工具还定义了资源、提示词模板、双向能力(sampling、elicitation)和会话,工具描述直接供模型理解。
|
||||
|
||||
### 【基础】tools、resources、prompts 有什么区别?
|
||||
|
||||
**参考答案**:tools 由模型决定调用,可以有副作用;resources 是只读的上下文数据,由应用或用户选择加入;prompts 是预定义的提示词模板,由用户选择使用。
|
||||
|
||||
**追问**:查询数据库表结构应该做成 tool 还是 resource?→ 如果希望用户 / 应用主动选择放入上下文,用 resource;如果希望模型按需获取,用 tool。很多客户端对 tools 支持最好,实践中常做成 tool。
|
||||
|
||||
### 【基础】MCP 有哪些传输方式?
|
||||
|
||||
**参考答案**:stdio(本地子进程,标准输入输出)和 Streamable HTTP(远程服务)。消息格式都是 JSON-RPC 2.0。早期的 HTTP + SSE 传输已被 Streamable HTTP 取代。
|
||||
|
||||
**追问**:stdio 服务为什么不能用 print 打日志?→ 标准输出是协议通道,打印的内容会破坏消息格式;日志写到标准错误。
|
||||
|
||||
## 进阶
|
||||
|
||||
### 【进阶】MCP 和 Function Calling 是什么关系?
|
||||
|
||||
**参考答案**:层次不同。Function Calling 是模型与应用之间的接口;MCP 是应用与工具服务之间的接口。应用从 MCP 服务获取工具列表,转成模型的工具定义,模型发起调用后,应用再通过 MCP 执行。
|
||||
|
||||
**追问**:LangGraph 怎么使用 MCP 工具?→ 使用 MCP 适配器(如 `langchain-mcp-adapters`,以官方文档为准)把 MCP 工具转成 LangChain 工具,交给 Agent 使用。
|
||||
|
||||
### 【进阶】远程 MCP 服务怎么做安全?
|
||||
|
||||
**参考答案**:HTTPS;基于 OAuth 的授权(规范为 HTTP 传输定义了授权流程);以用户身份访问业务系统;工具级权限和确认;限流、审计;校验 Origin 等防止 DNS 重绑定类攻击(以规范的安全建议为准)。
|
||||
|
||||
**追问**:安装第三方 MCP 服务有什么风险?→ 本地服务能以你的权限执行代码、读取文件;工具描述也可能包含诱导模型的指令(工具投毒)。只使用可信来源并审查代码和权限。
|
||||
|
||||
## 场景题
|
||||
|
||||
### 【场景题】公司有 5 个团队都要接入工单系统,怎么设计?
|
||||
|
||||
**参考答案**:由工单系统团队提供一个远程 MCP 服务,统一鉴权(SSO 令牌、用户身份透传)、审计、限流;工具规范命名和描述,写操作带幂等 ID;各团队的 Agent 和开发工具都通过它接入。详见[企业内部 MCP 服务](scenarios/internal-tools-gateway.md)。
|
||||
|
||||
**追问**:工单系统接口改版怎么办?→ 只需要改 MCP 服务内部实现,工具接口保持兼容;需要改工具时做版本标记和废弃周期。
|
||||
|
||||
### 【场景题】你在项目中写过 MCP 服务吗?讲一下。
|
||||
|
||||
**参考答案**(按自己的项目讲):服务提供了哪些工具 / 资源,为什么这样划分;参数怎么校验;有副作用的工具怎么保证幂等;怎么测试(进程内客户端测试);接入了哪些客户端(Cursor、自己的 LangGraph Agent);遇到的问题(例如 SDK 版本升级的不兼容、stdio 日志污染)。
|
||||
|
||||
**追问**:怎么验证模型能正确使用你的工具?→ 准备一组问题做评测,检查是否选对工具、参数是否正确,根据失败案例改进工具描述。
|
||||
Reference in new issue
Block a user