Skip to content

Agent_Tools 面试专题手册

💡 本章节共收录 566 道面试真题,建议每天复习 10-20 题。


Q1: 如果图纸在文本中没有描述,模型如何通过视觉特征召回?

【核心解析】 多模态检索机制;视觉特征提取与索引;跨模态对齐方法;视觉特征与文本查询的融合策略


Q2: 如果工具调用超时或返回空值,你如何设计Prompt让Agent反馈用户?

【核心解析】 在Prompt中明确异常处理规则,如超时或空值时生成友好提示;引导Agent解释失败原因并提供替代方案;可要求Agent重试或切换工具;需平衡透明度和用户体验,避免暴露技术细节;示例驱动设计,让Agent学习合适的回复风格。


Q3: 如果并发调用10个不同的Embedding接口,asyncio.gather相比多线程在资源消耗上有什么优势

【核心解析】 asyncio基于协程,单线程内切换,避免线程上下文切换开销;内存占用更低,无需为每个线程分配栈空间;适合I/O密集型任务,能高效处理大量并发网络请求;但需注意Embedding接口是否支持异步调用


Q4: 使用MCP接入多个测评工具时,如果两个工具对同一个问题回答格式不统一,怎么处理?

【核心解析】 定义统一的内部数据格式,为每个工具编写适配器进行格式转换;利用LLM对工具输出进行标准化解析;在MCP Server层实现格式对齐逻辑;设计容错机制,当格式不匹配时进行重试或降级;通过Prompt引导工具返回结构化输出(如JSON)


Q5: 如果Agent发现调用的工具报错,如何设计Prompt引导它用报错信息进行重试,而不是直接报错给用户?

【核心解析】 在Prompt中明确指示Agent解析错误信息并提取可操作线索;要求Agent根据错误类型调整参数或换用备选工具;设定重试次数上限和退避策略;提供错误处理示例,让模型学习重试模式;区分可恢复错误和不可恢复错误,后者才向用户报告


Q6: Agent是如何识别并选择正确工具的?

【核心解析】 通过函数调用(function calling)机制,模型根据工具描述和参数schema匹配意图;利用推理能力分析用户请求,选择最相关的工具;可结合检索增强,从工具库中搜索合适工具;有时采用多轮决策或规划器动态选择工具序列。


Q7: 有没有写过相关的 MCP?

【核心解析】 MCP(Model Context Protocol)的概念与作用;MCP 在 Agent 工具调用中的实现方式;MCP 与现有工具集成框架的对比;MCP 的配置与调试经验


Q8: 假设 agent 调工具失败了,一般怎么处理?

【核心解析】 工具调用失败的类型(网络、参数、权限等);重试机制与退避策略;降级方案与兜底回复;错误信息的解析与反馈;日志与监控


Q9: Agent调用了哪些外部工具?如何判断已经收集了足够的信息并最终给出输出结论?

【核心解析】 列举项目中实际使用的工具(如搜索引擎、数据库、API等);信息充分性判断可基于预设阈值、置信度评估或特定结束条件;结论生成需综合多源信息并遵循Prompt中的输出格式约束。


Q10: 你对MCP了解多吗?

【核心解析】 MCP协议的基本概念与目的;工具调用标准化;与现有工具集成的方式


Q11: Skill和MCP之间是什么关系?

【核心解析】 Skill通常指Agent可调用的功能单元,封装了特定能力(如计算、搜索);MCP(Model Context Protocol)是一种标准化协议,用于连接Agent与外部工具/数据源;MCP可以视为Skill的一种实现规范,提供统一的接口描述和调用方式;Skill可通过MCP服务器暴露,实现跨平台复用;两者结合提升Agent的工具扩展性和互操作性。


Q12: 请解释 MCP 和 Skill 在智能体工具调用中的概念与区别。

【核心解析】 MCP(Model Context Protocol)作为标准化工具集成协议;Skill 作为封装特定能力的可复用模块;MCP 强调通用连接,Skill 侧重业务功能;两者在工具注册、发现、调用上的差异;实际应用中的选型考量


Q13: 无手撕,直接共享屏幕设计一个coding agent的demo

【核心解析】 Coding Agent的功能设计(代码生成、调试、解释);工具集成(编译器、解释器、代码库);交互界面设计;代码执行的安全沙箱;Demo的演示流程与关键点


Q14: Agent 调用了哪些外部工具?

【核心解析】 常见外部工具类型(搜索、计算、API调用等);工具选择与调用机制;工具结果解析与错误处理;工具调用对Agent性能的影响


Q15: 有哪些常用的缓存工具和相关插件可以使用?

【核心解析】 Redis用于分布式缓存和会话管理;Memcached用于简单键值缓存;LangChain的缓存模块(如InMemoryCache、SQLiteCache)可缓存LLM调用结果;GPTCache用于降低API成本;向量数据库(如FAISS)可缓存嵌入向量


Q16: 是否使用过LangChain、LangGraph框架,请阐述基于LangGraph做开发时的整体思考与设计逻辑。

【核心解析】 LangGraph用于构建有状态、多步骤的Agent工作流;设计逻辑:定义节点(Agent、工具、判断)和边(条件边、普通边);状态管理(共享状态对象);循环与分支控制(支持循环调用和动态路由);与LangChain生态集成(工具、记忆、回调);调试与可视化(图结构追踪)


Q17: 是否使用过LangChain、LangGraph框架,请阐述基于LangGraph做开发时的整体思考与设计逻辑

【核心解析】 LangGraph用于构建有状态、多步骤的Agent工作流;图结构定义节点与边,表示任务步骤和条件分支;状态管理与持久化;工具集成与错误处理;与LangChain的生态协作;实际项目中的设计模式与权衡


Q18: skill、MCP、tools 在概念上有什么区别?在实际应用中分别适用于哪些场景?

【核心解析】 skill 通常指封装好的可复用功能模块,强调领域能力;MCP(Model Context Protocol)是一种标准化的工具接入协议,解决工具发现与调用规范;tools 是更广义的原子操作或 API 集合;实际应用中 skill 适合复杂业务逻辑封装,MCP 适合跨系统工具集成,tools 适合基础功能调用。


Q19: 在复杂场景下,MCP 协议应该如何设计?

【核心解析】 协议需支持工具的动态发现与注册;定义标准化的工具描述 schema(名称、参数、返回值);考虑安全认证与权限控制;支持流式响应与错误处理;设计版本兼容机制。


Q20: MCP 在你的项目中是用来做什么的?为什么不直接让模型调用业务接口?

【核心解析】 MCP 用于标准化暴露工具给模型,包括工具名称、输入输出 schema、权限边界、超时和错误语义;直接调业务接口会导致 prompt 散乱、参数不稳定、权限难控、结果不可审计、新增工具难治理;MCP 将工具接入从临时拼 prompt 变为可治理的能力协议;示例工具如 query_policy_rule 定义了明确的输入 schema 和必填参数


Q21: 在代码修改场景中,如何安全地使用 AI 辅助?

【核心解析】 提供相关类、接口定义、调用栈、表结构、异常日志和预期行为可提升局部改动效率;高风险链路(涉及事务、权限、资金、状态机、并发控制)必须人工确认和测试兜底;不应让 AI 直接修改高风险代码


Q22: 在Agent工具调用中,如何通过路由层和Prompt约束确保工具调用的稳定性?请结合规则库、用户记录、工单状态等内部数据的使用场景说明。

【核心解析】 明确何时必须调用MCP工具(如涉及业务ID、实时数据、内部策略、操作意图);通过系统提示词约束模型不得编造内部数据;工具返回为空时如实说明,不补全不存在的信息;路由层与Prompt协同保障调用稳定性。


Q23: Agent 的所有动作是否最终都通过 Jenkins 来执行?Jenkins 执行完之后,如何与 Agent 进行状态同步或结果回传?

【核心解析】 理解 Agent 与外部工具(如 Jenkins)的集成方式;掌握异步任务的状态同步机制(如回调、轮询、消息队列);熟悉 Jenkins API 的使用与结果解析;考虑错误处理与重试策略;了解 Agent 工具调用的抽象与封装。


Q24: MCP 调用过程是怎样的?

【核心解析】 理解 MCP(Model Context Protocol)作为 Agent 与工具间的标准协议;掌握 MCP 的客户端-服务器架构;熟悉工具发现、调用和结果返回的流程;了解 MCP 如何支持动态工具集成;对比传统 Function Calling 的优势。


Q25: Agent在多轮工具调用与单轮工具调用场景下,分别面临哪些挑战?

【核心解析】 单轮挑战:工具选择准确性、参数生成正确性;多轮挑战:状态追踪、上下文管理、错误恢复、工具调用顺序规划;多轮还可能涉及对话状态与工具结果的融合


Q26: 本地工具、MCP Tools、Skill 三者的区别是什么?为什么 Anthropic 在已有 MCP 的情况下转向做 Skill?

【核心解析】 本地工具是直接集成在 Agent 内部的函数,调用延迟低但扩展性差;MCP Tools 通过标准化协议(如 Model Context Protocol)连接外部工具,实现跨进程/跨语言的工具复用;Skill 是更高层的抽象,封装了工具组合、提示词和业务逻辑,强调可组合性与安全性;Anthropic 转向 Skill 可能是为了提供更结构化、可管理的能力封装,降低用户直接编排 MCP 工具的复杂度,并增强对工具调用的控制与安全审计。


Q27: 为什么 Claude Code 使用 grep 检索代码而不是 RAG?

【核心解析】 grep 提供精确的符号/字符串匹配,适合代码库中确定性查找(如函数定义、变量引用),延迟极低且结果可预测;RAG 基于语义检索,可能返回不精确的结果,且需要额外的嵌入和索引开销;在代码生成场景中,精确匹配往往比语义相似更重要,grep 能直接获取上下文,避免 RAG 的模糊性。


Q28: 如何设计并实现一个Skill系统,支持Skill的注册、发现和调用?目录结构为.agents/skills/下每个Skill一个子目录,包含yaml配置文件和scripts/*.js执行脚本。

【核心解析】 Skill的注册机制(如通过扫描目录、解析yaml配置);Skill的发现与匹配(基于意图、参数等);Skill的调用与执行(动态加载脚本、沙箱安全);配置文件的标准化设计(yaml结构、参数定义);脚本管理(版本控制、依赖隔离)


Q29: 为什么选择LangChain而不是Spring AI/Java进行Agent开发?

【核心解析】 LangChain的生态与社区成熟度;Python在AI/ML领域的优势;LangChain的抽象(Chain、Agent、Tool)易用性;Spring AI的Java生态集成优势;选择依据:团队技术栈、性能要求、AI模型兼容性


Q30: 智能体是如何调用接口实现本地交互的?如果同时要调用两个方法怎么实现?

【核心解析】 工具调用的基本流程(意图识别、参数提取、API调用);并行工具调用的实现方式(如多线程、异步调用、函数组合);工具调用冲突或依赖的处理策略;工具调用的错误处理与重试机制;工具调用的安全性(权限控制、输入校验)


Q31: 在工具调用中,如何处理依赖解析、循环检测和异常恢复?

【核心解析】 工具调用的依赖关系建模与解析(如DAG、状态机);循环检测机制(如深度限制、访问标记);异常恢复策略(如重试、降级、人工干预);实际场景中工具调用链的鲁棒性设计。


Q32: LangChain 和 LangGraph 在设计理念和使用场景上有哪些核心差异?

【核心解析】 LangChain 是链式调用框架,适合线性工作流;LangGraph 基于有向图,支持循环和条件分支,更适合复杂 Agent 编排;LangGraph 提供更细粒度的状态管理和节点控制;LangChain 抽象程度高,LangGraph 更底层灵活;LangGraph 原生支持持久化和人机交互。


Q33: 为什么在实际项目中不推荐使用 LangChain?

【核心解析】 LangChain 抽象层过多,调试困难;版本更新频繁,API 不稳定;性能开销大,不适合生产环境;隐藏细节导致开发者难以优化;对于简单任务,直接调用 API 更高效。


Q34: function call和MCP的区别以及各自的缺陷是什么?

【核心解析】 function call是模型直接生成函数调用请求,依赖模型自身能力,缺陷是格式不稳定、复杂参数易出错;MCP是模型上下文协议,标准化工具交互,缺陷是协议复杂、生态尚不成熟、增加延迟;两者在工具调用方式、标准化程度和适用场景上不同


Q35: Agent 工具调用的完整流程是什么?如何设计可靠的工具调用机制?

【核心解析】 流程包括接收用户指令、解析意图、生成工具调用(选择工具、填参)、执行工具、接收观察结果、基于结果继续推理或输出最终答案;需设计工具 schema 明确功能、参数和返回格式;需处理工具调用失败、超时、结果不可用等异常情况;可通过多轮交互或 ReAct 模式动态调整调用策略。


Q36: 在工具调用时,如何保证参数提取的准确性并提升工具调用的正确率?

【核心解析】 参数提取的准确性依赖于清晰的函数描述和参数模式定义;使用结构化输出(如JSON Schema)约束模型生成;通过少样本示例或微调提升模型对工具调用的理解;引入验证和重试机制处理错误调用;利用上下文信息辅助参数推断。


Q37: MCP的核心概念是怎样的

【核心解析】 MCP(Model Context Protocol)是一种标准化协议;核心概念包括:Client(宿主应用)、Server(提供上下文能力)、Transport(通信方式);支持工具(Tools)、资源(Resources)、提示(Prompts)三种原语;旨在为AI模型提供统一的上下文接口;实现模型与外部工具/数据的解耦


Q38: Agent系统是否具备执行代码的能力?如果具备,如何安全地实现?

【核心解析】 代码执行环境的隔离与沙箱机制;代码执行权限的控制与审计;防止恶意代码注入与资源滥用;执行结果的验证与错误处理


Q39: 在工具调用过程中,哪些环节可能存在安全问题?

【核心解析】 工具输入验证与注入攻击;工具输出处理与敏感信息泄露;工具本身的权限与副作用;工具调用链的信任边界;中间人攻击与通信安全


Q40: 请描述工具调用的具体流程。

【核心解析】 意图识别与工具选择;参数提取与填充;工具执行与超时控制;结果解析与融入上下文;错误重试与降级策略


Q41: 在工具调用的各个阶段,模型分别发挥了什么作用?

【核心解析】 工具选择的决策;参数生成的推理;异常情况的判断与处理;结果的自然语言整合;多工具协作的规划


Q42: 为什么使用MCP(Model Context Protocol),可以有一些本地的工具吗?MCP的调用过程是怎样的?

【核心解析】 MCP旨在标准化工具调用接口,实现工具与Agent的解耦;支持本地工具,通过MCP服务器封装本地功能;调用过程包括工具发现、参数验证、执行和结果返回;MCP支持多种传输方式(如stdio、HTTP);需考虑本地工具的安全性和权限控制。


Q43: 在工具调用中,意图识别的prompt是如何设计的?

【核心解析】 明确角色设定:定义Agent为能够调用工具的助手;工具描述:在prompt中详细列出可用工具的名称、功能、参数格式;输出格式约束:要求模型以结构化格式(如JSON)输出工具调用请求;意图分类:通过示例引导模型根据用户输入判断是否需要调用工具以及调用哪个工具;错误处理:提示模型在无法识别意图时进行澄清或回退。


Q44: Spring AI、Langchain、Langgraph的区别

【核心解析】 Spring AI集成Spring生态,适合Java企业级应用;LangChain通用LLM应用开发框架,链式调用;LangGraph基于图的有状态Agent编排;三者定位与适用场景不同


Q45: 工具调用的监督数据(GT)是如何获取的?

【核心解析】 工具调用数据的标注方法(人工标注、自动生成、从日志中挖掘);数据格式设计(工具描述、参数 schema、调用序列);数据质量控制(一致性、覆盖度);如何利用 LLM 辅助生成训练数据;工具调用数据与模型微调的结合


Q46: 单agent是怎么调用工具的

【核心解析】 工具调用的触发机制(如基于LLM的function calling);工具描述与参数定义方式;工具执行与结果处理流程;错误处理与重试策略


Q47: MCP和Skill的区别是什么?

【核心解析】 MCP(Model Context Protocol)是标准化的能力接入协议,解决模型如何发现、描述和调用外部工具的问题,关注接口层和通信层;Skill是高层动作抽象,将多个工具和步骤封装成可复用能力,关注语义层和任务层;一个Skill内部可调用多个MCP工具,但对上层Agent表现为原子动作;混淆两者会导致工具接入混乱、Agent决策空间增大、系统稳定性下降


Q48: 你写过哪些 MCP 工具,设计一个 MCP 工具协议时最关键的是什么?

【核心解析】 MCP 工具本质是定义可发现、可约束、可观测的能力接口,而非简单暴露函数;设计关键包括参数 schema、权限边界、错误语义和幂等性;输出需结构化,如带证据链接、来源可信度和时间戳,而非仅自然语言;工具 schema 示例需明确输入字段和必填项;确保模型调用后返回结果能稳定进入下一步推理。


Q49: 有没有自己实现过 MCP?

【核心解析】 MCP(Model Context Protocol)用于标准化工具与模型间的交互;实现需定义工具发现、参数校验、调用执行和结果返回等环节;关注协议的可扩展性和安全性;可结合实际案例说明如何设计工具 schema 和错误处理;体现对工具调用协议底层原理的理解。


Q50: 什么是MCP?它有什么作用?

【核心解析】 MCP(Model Context Protocol)的定义;MCP在Agent工具调用中的作用;MCP如何实现模型与外部工具的标准化交互;与传统工具调用的区别


Q51: 在模型选型中,Function Call的流程是怎样的?DPO有哪些优缺点?

【核心解析】 掌握Function Call的完整流程(意图识别、参数提取、函数执行、结果整合);了解不同模型对Function Call的支持差异;理解DPO在偏好对齐中的优点(无需显式reward模型)和缺点(依赖偏好数据质量)


Q52: Agent是如何选择工具的?请描述其决策机制。

【核心解析】 理解工具选择的核心方法(如基于规则、语义匹配、强化学习);掌握工具描述与用户意图的匹配技术;了解多工具协同时的冲突解决策略;能够评估工具选择的准确性与效率


Q53: 对于边界不好定义的场景,类似Skill这种形式不能很好区分和披露工具时,应该怎么办?SFT和RAG的适用场景分别是什么?

【核心解析】 分析边界模糊场景下工具选择的挑战;掌握Skill与工具披露的差异;理解SFT(有监督微调)适用于封闭域、数据充足的任务;理解RAG适用于开放域、需要知识更新的任务;能够提出混合方案


Q54: 在 AI Agent 的 thinking 阶段,如何决定是调用工具还是直接回复?

【核心解析】 LLM 的推理与决策机制(如 ReAct 模式);工具调用的触发条件(如意图识别、置信度阈值);工具选择与参数生成过程;直接回复的场景(如闲聊、信息充足);避免过度调用工具的优化策略


Q55: 使用Redis实现滑动窗口统计功能

【核心解析】 固定时间窗口使用ZSET,member存请求唯一标识,score存时间戳,先删除窗口外元素,再添加当前请求并计算size;固定次数窗口使用LIST,LPUSH推入头部,LTRIM修剪保留窗口大小元素;滑动窗口的精度与性能权衡;原子性保证(Lua脚本或MULTI/EXEC)


Q56: Lua脚本动机:在红包系统里用Redis的Lua脚本做增减,为什么用Lua脚本不用Redis自带的原子指令(如INCR/DECR)

【核心解析】 Lua脚本保证多个操作的原子性,避免竞态条件;减少网络往返次数(RTT);复杂业务逻辑(如条件判断、多键操作)需要脚本化;INCR/DECR仅适用于简单增减,无法处理复杂逻辑;Lua脚本在Redis中执行期间不会被打断,天然原子


Q57: 对于纯查询操作,除了线程池以外,还有什么方法可以提高并发处理能力?

【核心解析】 异步非阻塞IO(如Reactor模式);协程(如Python asyncio、Go goroutine);数据库连接池优化;缓存策略(如Redis缓存);负载均衡与分布式查询


Q58: Agent 做多轮工具调用和单轮相比,可能有什么挑战?

【核心解析】 多轮调用需要维护状态和上下文,错误可能累积;工具调用顺序和依赖关系复杂,需规划能力;需要处理工具返回的部分结果和异常;上下文长度增加,可能超出窗口或影响推理效率;评估更困难,需要多步正确性。


Q59: MCP 底层真正解决的是什么问题?如果不用 MCP 会发生什么?

【核心解析】 解决模型与外部能力标准化接入问题;统一工具描述、发现、调用、返回结果和协商能力边界;避免工具元数据散落在 prompt、代码、配置和文档中;新增能力需改多处,模型使用不稳定;权限和审计难以统一


Q60: MCP协议怎么实现,MCP Server需要向外暴露哪些接口

【核心解析】 MCP(Model Context Protocol)用于Agent与外部工具/数据源交互;Server需暴露工具列表、调用接口、资源读取等端点;基于JSON-RPC的通信协议;认证与安全机制;与Function Calling的对比


Q61: 本地工具、MCP Tools、Skill 三者的区别是什么?

【核心解析】 本地工具是直接在 Agent 运行环境中执行的函数或脚本,调用开销低但缺乏标准化;MCP Tools 基于 Model Context Protocol,提供标准化的远程工具调用接口,支持跨进程/跨语言;Skill 是更高层的封装,将工具、配置、提示词等打包为可复用的能力单元,强调领域知识的内聚和可发现性。


Q62: 为什么 Anthropic 在已有 MCP 的情况下,还要转向做 Skill?

【核心解析】 MCP 侧重于工具调用的标准化协议,解决工具连接问题;Skill 更关注能力的封装与复用,将工具、提示词、领域知识打包为可组合的单元;Skill 能更好地支持复杂任务的分解与编排,提升 Agent 的自主性和可扩展性。


Q63: 请实现一个 Skill 系统,完成 Skill 的注册、发现和调用。目录结构为 .agents/skills/ 下每个 Skill 一个子目录,包含 .yaml 配置文件和 scripts/*.js 执行脚本。

【核心解析】 Skill 注册:扫描 .agents/skills/ 目录,解析每个子目录中的 YAML 配置文件,提取 Skill 名称、描述、参数等信息;Skill 发现:根据用户意图或任务需求,匹配已注册的 Skill,可通过关键词、语义匹配等方式;Skill 调用:加载对应的 JS 脚本,传入参数并执行,捕获输出和错误,返回结果给 Agent。


Q64: subagent、MCP、skill、function calling 的区别是什么?

【核心解析】 Function calling:模型直接调用预定义函数,通常用于单步工具执行;Skill:封装好的可复用能力模块,可能包含多个函数或流程;Subagent:具有自主规划和执行能力的子代理,可独立完成复杂任务;MCP(Model Context Protocol):标准化的上下文协议,用于模型与外部工具/数据源的交互规范


Q65: timing 宏的计时原理是什么?CPU 侧和 GPU 侧各怎么计?为什么要做成插件里的补丁?

【核心解析】 CPU侧计时:通过记录开始和结束时间戳(如clock_gettime)计算总耗时;GPU侧计时:使用CUDA event(cudaEventRecord)测量kernel执行时间;插件补丁原因:方便集成到现有框架,无需修改底层profiling工具;可灵活控制计时粒度,针对特定算子或代码段;结合两者可分析CPU-GPU同步开销


Q66: 你了解Skill的概念吗?如何编写Skill的范式?Agent调用Skill的过程是怎样的?请举两个好用的Skill例子。

【核心解析】 Skill的定义:可复用的功能单元;Skill的编写规范(如输入输出定义、错误处理);Agent调用Skill的流程(意图识别、参数填充、执行、结果整合);实际沉淀的Skill案例;Skill与工具调用的关系


Q67: MCP服务的一些原理

【核心解析】 MCP(Model Context Protocol)的基本概念与设计目标;MCP如何标准化工具调用与上下文传递;MCP与传统API调用的区别;MCP在Agent架构中的角色与优势


Q68: 通过cli命令调用工具和MCP服务什么区别

【核心解析】 CLI调用是直接执行本地命令,MCP是标准化的远程服务协议;MCP提供统一的接口描述与发现机制;CLI依赖系统环境,MCP支持跨平台与分布式部署;MCP可集成认证、限流等企业级特性;两者在Agent工具集成中的适用场景


Q69: 你简历上提到的 Router 部分和 Context Engineering 部分,请展开聊聊你的实现和理解。

【核心解析】 Router 在 Agent 中的作用(意图识别、任务分发);Context Engineering 的概念(上下文窗口管理、信息压缩、结构化提示);具体实现技术(如基于分类器的路由、动态上下文组装);实际应用中的挑战与优化(延迟、准确性)。


Q70: 在代码中插入轻量级 timing 宏进行性能粗筛时,如何评估观测者效应带来的影响?这种工具适合在什么场景下使用,有哪些局限性?

【核心解析】 插桩本身会引入额外开销(如 event 记录和同步),可能改变原始执行流,在多流场景下可能掩盖部分真实时间分布;适合做第一轮粗筛,判断算子更偏计算密集、内存密集还是延迟密集;不适合精确 profiling,需结合正式 profiling 工具;需理解工具的边界和适用场景。


Q71: MCP 是将自然语言转换为预置查询类的工具吗?请解释其原理和用途。

【核心解析】 MCP(Model Context Protocol)是一种标准化协议,用于连接 AI 模型与外部工具/数据源;它定义统一的接口,使模型能动态发现和调用工具,而非仅限预置查询;支持工具列表获取、调用和结果返回;旨在解决工具集成碎片化问题。


Q72: 说说Skill和MCP有什么区别?

【核心解析】 Skill通常指Agent内置能力或预定义功能模块;MCP(Model Context Protocol)是模型与外部工具/数据源交互的标准化协议;Skill封装具体任务逻辑,MCP定义通信规范;MCP支持动态工具发现与调用;两者在Agent架构中的层次与解耦程度不同


Q73: 怎样去设计一个Agent的沙箱机制?

【核心解析】 隔离执行环境(如容器、虚拟机);限制网络和文件系统访问;资源配额与超时控制;输入输出过滤与审计;安全策略与权限最小化


Q74: MCP的使用场景有哪些?

【核心解析】 模型上下文协议用于标准化工具调用;连接LLM与外部数据源和API;实现工具的热插拔与动态发现;跨平台工具集成;提升Agent的可扩展性和互操作性


Q75: agent skill做ui自动化实现细节

【核心解析】 UI自动化工具的选择与集成(如Selenium、Playwright);agent如何理解UI元素并生成操作指令;处理动态页面与异步加载;错误恢复与重试机制;跨平台与多设备适配


Q76: 你用过哪些开源的Agent框架?请介绍一下它们的特点和适用场景。

【核心解析】 熟悉主流开源Agent框架(如LangChain、AutoGPT、MetaGPT等);理解各框架的核心设计理念与组件;能根据场景选择合适的框架;了解框架的局限性与扩展性。


Q77: 你了解或使用过MCP(Model Context Protocol)工具吗?请说明其作用和原理。

【核心解析】 理解MCP作为模型与外部工具/数据源交互的标准化协议;掌握MCP的客户端-服务器架构;知道如何通过MCP集成自定义工具;了解MCP在Agent工具调用中的优势。


Q78: 如果一个大模型要调用外部工具,协议层至少要解决哪几件事

【核心解析】 工具发现:模型如何知道有哪些可用工具及其能力描述;参数约束:确保模型生成符合工具要求的参数格式和类型;调用权限:控制模型可以调用哪些工具,避免越权;超时控制:设置调用超时,防止长时间阻塞;返回结构:统一工具返回结果的格式,便于模型解析;审计追踪:记录调用日志,用于监控和调试


Q79: function call 的本质是什么,为什么它不是“模型真的去执行了代码”

【核心解析】 function call 的本质是模型生成一段满足约定 schema 的结构化调用意图,而不是真正在模型内部执行函数;模型只负责判断是否调用、调用哪个工具、参数如何,实际执行由外部宿主环境完成;模型输出的是调用计划,执行权在系统侧;权限控制、幂等、重试、回滚和日志应由宿主系统负责,不能依赖模型自身


Q80: Skill、Tool、MCP 三者在工程分层上分别是什么,不能混着答

【核心解析】 Tool 是最底层的可执行能力单元,如查订单、执行SQL模板等;Skill 是任务级能力封装,强调为完成某类任务按规则组合若干工具和上下文;MCP 偏协议层和接入层,解决工具如何被发现、描述、调用和治理;三者关系:Tool 回答“能做什么动作”,Skill 回答“怎么把动作组织成一类能力”,MCP 回答“这些能力如何标准化暴露给模型”


Q81: 使用过哪些Agent产品?Rule、MCP和Skill的差别是什么?

【核心解析】 常见产品如AutoGPT、LangChain Agent、Copilot等;Rule是预定义的固定规则,无动态推理;MCP(Model Context Protocol)是标准化工具调用协议,支持动态发现和调用;Skill是封装好的可复用功能模块,通常由LLM生成或调用;Rule简单但僵化,MCP强调互操作性,Skill侧重功能封装


Q82: 如何解决AI编码工具生成代码冗长复杂的问题?

【核心解析】 通过精细的prompt设计约束代码风格与简洁性;结合代码审查与重构工具进行后处理;使用强化学习或偏好对齐优化生成质量;引入代码压缩中间表示或模板库;利用AST分析确保逻辑最简。


Q83: LangChain 或 LangGraph 的缺点是什么?

【核心解析】 LangChain 的过度抽象与调试困难;LangGraph 的图结构复杂度与学习曲线;性能与资源开销;生态锁定与灵活性不足;对复杂 Agent 场景的支持局限


Q84: CLI(命令行界面)和MCP(Model Context Protocol)有什么区别?

【核心解析】 CLI是用户与系统交互的命令行接口,基于文本输入输出;MCP是模型上下文协议,用于AI模型与外部工具/数据源的标准通信;CLI面向人类,MCP面向模型;MCP定义工具调用、资源访问等规范;两者应用场景不同,MCP可集成CLI作为工具。


Q85: MCP的使用场景

【核心解析】 MCP(Model Context Protocol)的定义与目的;MCP在工具调用中的角色;典型使用场景(如多工具协同、上下文管理);MCP与函数调用(Function Calling)的对比;MCP对Agent可扩展性的影响


Q86: Redis有哪些基本数据结构?它们分别适用于什么场景?

【核心解析】 String、Hash、List、Set、Sorted Set等数据结构;每种结构的底层实现和操作命令;典型应用场景如缓存、计数器、排行榜、消息队列;数据结构选择对性能和内存的影响;Redis与Agent工具集成时的注意事项。


Q87: Redis事务的应用场景和原理是什么?

【核心解析】 Redis事务的MULTI/EXEC/DISCARD命令;事务的原子性和隔离性;WATCH命令实现乐观锁;在Agent工具中保证操作原子性的场景;Redis事务与关系型数据库事务的差异。


Q88: RocketMQ如何保证消息的可靠性?

【核心解析】 生产者端可靠性:同步发送、重试机制、事务消息;Broker端可靠性:同步刷盘、主从复制;消费者端可靠性:消费确认机制、重试队列;消息持久化与存储设计;在Agent异步通信中如何利用RocketMQ保证消息不丢失。


Q89: MCP和Skill的区别是什么?为什么有时候不用MCP只用Skill也能完成任务,那还需要MCP做什么?

【核心解析】 MCP(Model Context Protocol)提供标准化的工具集成协议,支持动态发现、跨系统互操作和复杂权限管理;Skill通常是预定义的固定功能模块,适合简单、封闭场景;在小型系统或统一环境中,Skill因低开销和简单直接而足够;但中大型系统需要MCP来解决工具数量膨胀、异构集成、权限细粒度控制和安全治理问题;MCP支持工具的动态注册与发现,而Skill往往是静态绑定。


Q90: 你在华为做的MCP和Skill主要是怎么使用的?

【核心解析】 MCP用于集成外部工具和服务,通过标准化协议实现工具的动态发现和调用;Skill封装特定领域能力,如代码执行、数据查询等,作为Agent的内置功能;两者结合可兼顾灵活性和效率;实际使用中需定义清晰的接口和权限控制;需考虑工具调用的错误处理和回退策略。


Q91: Agent 项目里是怎么通过 MCP 实现工具调用的,为什么不是直接本地函数调用

【核心解析】 协议化与可发现性:MCP 将工具能力统一描述,支持动态发现和参数 schema;跨进程与解耦:工具分布在不同服务、语言、权限域时,避免 Agent 与底层系统耦合;统一抽象:模型只看统一工具描述和返回结构,底层实现可替换;治理与安全:便于工具注册、鉴权、权限控制和执行审计。


Q92: 展开讲一下 MCP 和 Skill 的关系,它们为什么经常被混着说

【核心解析】 Skill 是任务语义层的能力单元,强调完成特定任务的边界、输入输出契约和效果评估;MCP 是工具接入和调用协议层,关注工具注册、发现、鉴权、参数校验和执行审计;一个 Skill 可调用多个 MCP 工具,一个 MCP 工具可被多个 Skill 复用;混着说是因为简单 demo 中两者都表现为模型调用一个东西,但工程中差异明显。


Q93: Agent全链路调度以及工具调用机制是怎么做的?

【核心解析】 Agent全链路调度的架构设计;工具调用的实现方式(API封装、函数调用、错误处理等);调度策略(串行、并行、条件分支);工具选择与编排的决策机制


Q94: function call、MCP、skills 有什么区别与优缺点?

【核心解析】 function call 是模型直接生成调用函数的结构化输出,适合简单工具调用;MCP(Model Context Protocol)是标准化工具接入协议,支持动态发现和调用外部工具;skills 是封装好的可复用能力模块,通常包含工具、提示词和逻辑;优缺点对比:function call 灵活但需模型支持,MCP 解耦工具与模型但增加协议开销,skills 易于复用但可能缺乏灵活性


Q95: 在 Java 里面怎么对接 MCP?

【核心解析】 MCP 协议的基本概念与目的;Java 中实现 MCP 客户端/服务端的方式;工具注册与发现机制;请求与响应的序列化/反序列化;安全认证与权限控制。


Q96: 有没有用过 LangChain,你认为它的优点是什么?

【核心解析】 提供统一的 LLM 接口,简化模型切换;内置链式调用和 Agent 抽象,降低开发门槛;丰富的工具集成,如向量数据库、文档加载器;支持记忆管理,便于构建有状态应用;社区活跃,生态完善。


Q97: 对 MCP 和 tool calling 的了解,以及 skills 为什么能减少 token 消耗?

【核心解析】 MCP(Model Context Protocol)作为工具调用标准化协议;tool calling 的实现机制(函数描述、参数解析);skills 封装常用操作,减少重复提示;通过预定义技能减少上下文长度;工具选择与组合优化


Q98: 对于一个大型Agent系统,如何做skill路由才不至于越来越臃肿?

【核心解析】 skill是具备明确输入输出、适用条件和执行语义的能力单元,内部可调多个tool,但对主Agent是高层动作;抽象成skill的意义在于缩小决策空间,避免主Agent直接面对底层接口;路由设计需考虑skill的注册、发现、匹配和组合机制,避免集中式路由膨胀。


Q99: 了解过 spec-driven 的 code agent 吗?

【核心解析】 spec-driven 指根据规范或文档自动生成代码的 agent;需解析自然语言规范为结构化需求;结合代码生成模型与验证工具;通过迭代细化与测试驱动开发保证代码质量;常见于低代码、自动化测试等领域。


Q100: 为何不用轻量级大模型 reranker 模型?

【核心解析】 轻量级 reranker 可能在精度上不如大模型,影响排序质量;大模型 reranker 能更好理解语义相关性与细微差别;轻量模型可能无法处理复杂查询或长文本;在资源允许时,大模型 reranker 可提升 RAG 召回精度;需权衡延迟、成本与效果。