1.什么是agent他的组成部分有哪些agent是一种能够自主感知环境自主决策自主执行动作并持续迭代优化以完成目标的智能实体大模型是大脑的话agent就是带收带记忆有规划能力的完整智能体agent可以分为5部分感知模块Perception从外部获取信息用户输入、工具返回结果、环境状态等。作用理解当前任务和上下文。决策 / 规划模块Planning根据目标拆解任务、制定执行步骤、判断是否需要调用工具。常见ReAct 思维链、任务规划、子任务拆分。执行 / 动作模块Action调用外部工具完成实际操作搜索、数据库查询、API、代码执行、文件操作等。对应后端常说的Function Call / Tool Calling。记忆模块Memory短期记忆对话上下文、当前任务状态。长期记忆历史经验、知识库、向量库检索内容。作用避免重复思考保持任务连贯性。反思 / 迭代模块Reflection执行后判断结果是否满足目标失败则重试、修正步骤或重新规划。是 Agent 比单纯大模型对话更 “智能” 的关键。Agent 搭建完整流程1. 明确任务场景顶层设计先确定 Agent 要解决什么问题个人助手代码助手企业业务自动化数据分析客服机器人确定后你就知道需要哪些输入输出权限边界可调用工具范围安全限制2. 选择 LLM 并开启 FunctionCallFunctionCall 是 Agent 的大脑决策机制。流程选一个支持函数调用的模型GPT-3.5/4Claude 3通义千问、文心一言、GLM 等给模型传入tools 描述JSON Schema模型输出结构化调用指令json{ name: get_weather, parameters: { city: 北京 } }后端解析并执行这一步就是让模型会 “思考要调用什么”。3. 设计并开发 Skill核心能力封装Skill 面向任务的能力单元。一个 Skill 标准结构名称如航班查询技能描述告诉模型这是干嘛的输入参数出发地、目的地、日期执行逻辑校验参数调用航班查询 Tool调用比价 Tool整理结果返回输出格式Skill 是 Agent 的 “能力菜单”。4. 开发或接入 Tool真正执行Tool 是原子执行单元例如HTTP 请求数据库查询文件读写代码执行第三方 API开发方式写函数封装 API接入第三方服务Tool 只负责接收参数 → 执行 → 返回结果5. 接入 MCP 协议标准化如果你要做可扩展、可插拔、多工具统一管理的 Agent必须上 MCP。MCP 做的事Tool 自动注册发现统一调用格式权限控制安全隔离支持本地 / 远程工具流程把每个 Tool 封装成 MCP ServerAgent 作为 MCP Client 连接通过标准协议调用所有工具这一步让你的 Agent从玩具变成工程化系统。6. 编排、记忆、调度与测试Agent 灵魂这是 Agent 区别于简单函数调用的关键。1记忆模块短期记忆对话上下文长期记忆向量库 / 数据库工具调用历史2规划 / 编排ReAct 思维链思考 → 行动 → 观察 → 再思考多 Skill 自动调度3循环执行模型判断还需要调用工具吗结果够不够是否可以回答用户4测试边界用例参数错误工具失败重试安全校验2.为什么要引用工具单纯的大模型不行吗单纯的大模型本质只是语言生成模型存在知识过时计算不准无法操作外部世界等问题必须要通过调用工具(tool calling/function call)来弥补大模型负责思考和决策工具负责执行和落地。3.工具给大模型扩展了怎么样的能力工具本质是给大模型装上感知、执行、计算、记忆、专业能力让它从纯文本生成变成能落地真实业务的智能体。例如实时信息获取能力精准计算与逻辑推理能力外部操作系统能力专业领域增强能力长期记忆与状态管理能力4.了解tool吗Tool是能被模型调用的、具体可执行的外部能力单元它不负责思考只负责干活。没有逻辑、没有规划给参数 → 执行 → 返回结果是模型与外部世界交互的手脚典型例子联网搜索工具数据库查询工具文件读写工具发送邮件工具调用第三方 API代码执行器计算器Tool 的核心特征原子性一般只做一件事不做复杂任务。结构化必须有明确的入参、出参格式JSON 结构。可被调用模型通过某种机制触发它运行。无状态用完即走不记住上下文。怎么写好一个工具写好一个工具关键不在于接口本身多复杂而在于让大模型能看懂、会调用、不出错。主要抓好三件事工具描述提示词级别的说明清晰、简洁、必填明确的入参结构化、语义明确的出参1. 工具描述给大模型看的 “提示词”非常重要这是模型判断要不要调用、怎么调用的唯一依据写不好模型就乱调用或不调用。书写原则用途明确一句话说明这个工具是干嘛的场景清晰什么情况下应该调用边界清晰不能干什么、不处理什么语言简单不用专业黑话模型看不懂避免歧义不写模糊词汇比如 “大概”“可能”“相关”错误示例查询用户信息正确示例根据用户 ID 查询该用户的姓名、手机号、注册时间仅用于身份核验不返回敏感信息如密码、支付信息。2. 入参设计决定模型会不会传错模型最容易错的就是参数名、参数类型、是否必填。写好入参的要点参数名语义化userId、orderId、phone不要 a1、p2、x类型严格int、string、bool 明确必填标记清楚模型必须知道哪些必须传枚举尽量固定如 status0/1 要写明含义参数示例给模型一个示例它正确率飙升参数约束长度、格式、范围手机号 11 位、日期格式 YYYY-MM-DD3. 出参设计决定模型能不能理解结果返回必须结构化、字段清晰、无冗余否则模型会理解错误、产生幻觉。出参原则JSON 结构化不要纯文本字段名简单明确code、msg、data、success状态码统一0 成功非 0 失败失败信息可读模型能看懂并告诉用户不返回无用字段减少上下文污染敏感数据过滤不返回密码、密钥等5.了解Function call吗function call就是函数调用是大模型厂商提供的一种结构化输出能力让模型能够判断何时需要调用外部接口并按照约定格式返回参数由后端系统真正执行接口再把结果返回给模型整理输出。核心流程定义工具清单后端把接口信息接口名、参数、用途以 JSON 格式告诉大模型。模型决策模型判断是否需要调用工具、调用哪个、参数是什么。结构化返回模型不直接回答而是返回固定格式的函数调用指令。后端执行Java 解析指令真实调用接口 / DB / 第三方服务。结果回传把执行结果再传给模型模型自然语言总结后返回用户。6.了解skill吗Skill 面向 “任务” 的可复用能力单元你可以把它理解成LLM 会的一项 “本事”不是单个函数也不是裸工具是一段逻辑 一组工具调用 提示词模板的封装简单类比Tool 螺丝刀、扳手单个工具FunctionCall 拧螺丝这个动作Skill 组装一台电脑完整任务Skill 的标准结构一个完整 Skill 通常包含名称与描述告诉 LLM 这个技能是干嘛的输入参数用户需要提供什么执行逻辑Planning先干嘛、后干嘛、要不要查资料、要不要重试绑定的 Tools调用哪些底层工具输出格式返回什么结果给用户所以Skill 是 Tool 的上层封装Tool 是 Skill 的执行依赖。Skill 核心特性业务封装性不只是单个接口而是完整业务能力。例如“报销审核 Skill”“订单查询 Skill”“简历筛选 Skill”。可复用性一次编写多场景、多 Agent、多模型都能复用避免每个任务重新写提示词和调用逻辑。流程编排能力内置 SOP标准作业流程支持多步骤、多工具串联比如查询订单 → 校验状态 → 生成说明 → 发送通知。自带约束与安全可控可以明确规定允许调用哪些工具禁止哪些操作权限范围、敏感数据处理规则比裸奔的 Function Call 更安全、更适合企业生产。触发条件明确有清晰的触发意图什么用户问题应该启动这个 Skill避免模型乱调用、乱执行。自带知识与上下文可以绑定领域知识、文档片段、示例话术让 Agent 更专业减少幻觉。可组合、可扩展Skill 之间可以互相调用、嵌套组合。小 Skill 拼成复杂业务流程类似微服务架构。可观测、可迭代执行日志、成功率、失败原因可追踪能单独优化某个 Skill不影响整个系统。7.了解MCP吗说说MCP的组成Model Context Protocol (MCP) 是一个开放标准用于连接 AI 应用与数据源。就像 USB-C 为设备连接提供了通用接口一样MCP 为 AI 模型提供了访问外部数据和工具的标准化方式。MCP 核心组成C/S 架构4 大组件MCP 采用客户端‑服务器Client‑Server架构核心由MCP Host、MCP Client、MCP Server、Resources/Tools四部分组成1. MCP Host主机角色运行 LLM 的应用环境是用户交互入口与任务编排中心。职责接收用户请求管理对话上下文决策是否调用工具、调用哪个 Server编排多个 Client管理整体工作流示例Claude Desktop、Cursor IDE、Windsurf、VSCode 等。2. MCP Client客户端角色Host 内置的协议通信模块与 Server 建立 1:1 连接。职责与 MCP Server 建立连接、握手、发现能力将 Host/LLM 的指令转为 MCP 标准消息解析 Server 返回结果回传给 Host定位Host 与 Server 之间的 “翻译官 / 通信代理”。3. MCP Server服务器角色封装外部能力的服务端是 MCP 体系的核心能力提供方。核心能力三大类Tools可执行的函数 / 接口如查询数据库、调用 API、执行代码Resources可访问的数据 / 内容如文件、知识库、向量库、Git 仓库Prompts可复用的提示词模板 / 工作流职责监听请求、执行操作、返回结构化结果。示例GitHub Server、Slack Server、本地文件 Server、MySQL Server 等。4. Resources Tools资源与工具角色被 MCP Server 封装的真实外部能力与数据。范围数据库、API、文件系统、代码仓库、第三方服务、企业内部系统等。MCP 核心流程能力发现Client 向 Server 发起握手获取其提供的 Tools/Resources/Prompts 列表请求发起Host 决定调用Client 按 MCP 格式发送结构化请求执行与返回Server 执行对应工具 / 资源操作返回标准结果结果处理Client 解析结果回传给 HostLLM 整理后输出给用户怎么开发一个mcp服务开发 MCP 服务先选框架优先 FastMCP再定义 Tools/Resources/Prompts用stdio/SSE传输接入 Claude/Cursor 等客户端最后做安全、权限、监控。8.toolfunction callskillmcp对比tool就是工具是大模型调用工具的最原子执行单位是外部能力的具体实现只负责执行而function call就是告诉大模型怎么去调用执行tool许多特定的function call加一些规则约束提示词组成了可以完成一项特定任务的skill例如扣子工作流而mcp就是大模型调用工具这个过程中要遵守的协议标准化:Tool 是模型可调用的外部能力单元Function Call 是模型以结构化形式触发 Tool 的机制多个 Tool 调用和推理流程可以封装为 Skill而 MCP 则是规范模型如何发现、描述和调用这些工具的协议标准。维度Tool工具Function CallSkill技能MCP协议本质实际可执行的外部能力模型输出的结构化调用格式面向业务的能力封装单元模型与外部的标准化连接协议通俗理解螺丝刀、接口、API拧螺丝的一次指令完整组装流程 工具包通用插座 / USB 规范核心作用提供具体功能查、算、写、操作让模型告诉后端调谁、传什么参数完成一整项业务任务统一连接所有工具 / 模型解决碎片化粒度原子级单接口、单功能单次调用一次函数执行业务级多步骤、多工具、SOP全链路级发现 连接 调用 权限由谁定义后端开发大模型厂商OpenAI 等Agent 开发者 / 业务方行业标准Anthropic 主导是否带业务逻辑❌ 纯功能无流程❌ 仅调用无逻辑✅自带 SOP、规则、约束❌ 纯协议无业务是否需要上下文不需要少量参数描述非常大提示词 示例 流程很小协议结构通用性业务内部使用模型私有不跨模型平台内可复用✅跨模型、跨客户端通用能力发现无无内部可管理✅支持自动发现工具 / 资源与 LLM 关系被调用方LLM 负责输出调用指令LLM 负责决策与执行 SkillLLM 应用通过 MCP 统一接入典型形态接口、函数、第三方 APIJSON 结构name/parametersSkill 文件、配置、流程编排Server Client JSON-RPC失败处理后端抛异常模型重新生成参数Skill 内部重试、反思、降级协议层错误码、重连、超时适用场景单一功能调用简单单次工具调用复杂业务订票、报销、代码开发企业级多模型、多工具统一接入后端类比Controller/Service 接口API 入参格式微服务 / 业务模块RPC/HTTP 通信协议9.mcp和skill哪个上下文占用比较大1MCP 上下文很小MCP 做的事情定义通信格式请求、响应、错误码能力发现有哪些工具、资源传输结构化数据不带业务逻辑它更像HTTP 协议只规定怎么传不传业务文档。→ 给 LLM 的提示词里只需要塞极简协议格式token 占用极低。2Skill 上下文非常大Skill 本质是完整业务逻辑必须塞进上下文技能用途、触发条件详细 SOP 步骤输入输出规则约束、禁忌、权限示例对话、示例调用领域知识、注意事项一个稍微复杂的 Skill可能几百几千 token多加载几个 Skill模型上下文直接吃满。10 怎么写好提示词提示词工程就是用清晰、结构化、有约束的自然语言把人的意图精准翻译给大模型让它像可靠服务接口一样稳定输出。明确角色先告诉模型它是谁专家、助手、代码审查员、面试官、Agent 决策者。明确任务清晰告诉它要做什么不要模糊、不要多任务混杂。明确约束限制输出格式、长度、风格、禁忌、敏感信息过滤。提供上下文给足背景、历史、数据、文档片段减少模型瞎猜。给出示例Few-shot给 13 个输入输出示例效果提升巨大。指定输出格式强制 JSON、列表、分段、步骤方便后端解析。要求思考过程让模型先思考再输出减少幻觉ReAct 思想。11 什么是上下文工程上下文工程就是对传入大模型的所有上下文信息做结构化、精简、优先级排序、持久化与召回管理在有限 token 限制下保证模型推理准确、稳定、不溢出。它解决几个核心痛点上下文窗口有限不能无限塞历史信息杂乱会导致模型混乱、幻觉长对话、多轮 Agent 必须记住关键状态外部知识库不能全塞进去要精准召回上下文工程核心做哪些事上下文裁剪 / 压缩只保留关键信息删除冗余对话对旧信息做摘要而不是全量保留结构化管理记忆短期记忆最近几轮对话长期记忆摘要、关键实体、任务状态外部记忆向量库检索的知识片段优先级调度最新信息 重要任务信息 旧闲聊保证关键数据一定在窗口内防溢出控制实时 token 估算自动截断、滑动窗口、滚动上下文外部知识召回RAG 核心不把全量文档塞进去只召回最相关的几条知识注入上下文状态与变量提取把用户姓名、订单号、任务目标抽成结构化字段避免模型在长对话中 “失忆”上下文过长怎么办?上下文过长核心就三件事裁剪、压缩、召回再配合窗口控制保证不爆 token、不丢关键信息。1. 滑动窗口最常用、最简单只保留最近 N 轮对话旧的直接丢掉实现简单、性能好缺点很早的关键信息会丢失2. 摘要压缩最通用把早期对话丢给 LLM 生成精简摘要只保留摘要 最新几轮完整对话适合长对话、多轮 Agent 任务3. 结构化抽取效果最稳不从文本层面删而是提取关键信息用户 ID、订单号、任务目标、关键决策转成 KV 结构或极简列表you用户小明查询订单123456问题物流状态大幅降 token信息几乎不丢4. 向量库召回RAG 思路把历史对话向量化存入向量库每次只检索和当前问题相关的历史不相关的历史完全不进上下文适合超长对话、跨天记忆5. 分层记忆企业级标准方案短期记忆最近几轮完整对话中期记忆摘要 关键事实长期记忆向量库存储只把必要层塞进模型上下文6. Token 估算 动态截断实时计算 token 数达到阈值自动触发压缩 / 摘要防止直接触发模型 “上下文超限” 报错7. 清理冗余信息删除问候、客套、重复语句去掉工具调用的冗余返回字段只保留业务有效内容