尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

AI Agent开发实战:从核心原理到架构选型与工程落地

AI Agent开发实战:从核心原理到架构选型与工程落地 最近不管是刷技术社区还是看朋友圈你大概都会有一种感觉好像一夜之间所有人都在聊Agent。GitHub Trending上Agent项目快占掉一半开源社区隔三差五冒出新的Agent框架昨天的热搜词是Agent今天又变成Agent开发、Agent记忆。如果你之前只做过普通的大模型应用或者还在“聊天机器人”阶段这会儿很容易被铺天盖地的概念砸得有点慌。我先说结论Agent不是一个玄学概念也不是某个公司的产品特供它是大模型应用进入“系统化”阶段后自然而然出现的程序范式。过去我们做AI应用重点是让模型“生成内容”现在做Agent重点变成了让模型“完成任务”。注意这里的差别不是一两个字而是从“脑”到“脑手眼睛记事本”的完整模型转变。这篇文章我会从最基础的概念讲到主流架构再到实操搭建最后把很多人关心的Agent开发面试考点、Harness与Agent框架的关系都梳理一遍。目标很明确让你看完之后能跟同事讲清楚Agent到底是个什么东西也知道如果自己要动手做一个第一行代码应该写在哪。1. Agent到底是什么它跟普通程序有什么区别1.1 先用生活例子把它说清楚拿“做一顿晚饭”打比方。传统程序就像一篇菜谱先切菜再热油再下锅顺序固定参数写死中间任何一步如果情况变了程序不会自己调整只能报错或者等着人来改。大模型聊天机器人像个“美食顾问”你问它“茄子怎么做”它能给你讲得头头是道但它自己不上灶台也不洗菜。Agent就不一样了它更像你雇了一个会做饭的帮厨。你跟它说“今晚想吃鱼香肉丝冰箱里有茄子、肉和青椒你看着做”它会自己翻冰箱、查菜谱、决定先热油还是先腌肉遇到“青椒没了”这种突发情况它还会主动改成用胡萝卜替代做完之后把菜端上桌再告诉你它改了哪些配料。这个类比里藏着Agent的四个核心特质明白目标、能拆解步骤、能调用工具冰箱、菜刀、灶台、能根据过程中的反馈调整行为。也正是这四点把Agent和传统程序、普通聊天机器人彻底区分开。1.2 Agent的六个核心特征如果你去看不同公司的Agent白皮书会发现大家对Agent的定义不完全一致但核心特征基本绕不开这六点自主性不需要每一步都被人指挥你给出目标它自己规划后续动作。目标驱动执行的是“目标”而不是“固定步骤”完成任务的过程可以动态变化。规划能力能把大任务拆解成若干小步骤并且对步骤排序、去重、回退。工具使用能调用外部API、函数、数据库、浏览器等不只是“输出文字”。记忆能力能记住关键信息至少能在多轮交互中不丢失上下文最好能长期保存。反思与修正发现当前路径走不通时能回顾之前的决策并调整策略。这六条不是说每个Agent都要百分之百具备但它们共同构成了大家口中的“Agent能力”。一个只做了工具调用包装、但完全没有规划循环的应用严格来说算不上Agent顶多算“带插件的聊天机器人”。1.3 澄清一个常见的搜索误区很多人刚搜Agent这个词时会迷茫因为“Agent”在IT领域已经被用了几十年含义有好几层。比如qemu guest agent、监控Agent、运维Agent这些是传统意义上的“代理进程”或者“守护程序”和现在聊的AI Agent完全是两回事。现在这个火出圈的Agent更准确的说法是“AI Agent”或者“智能体”。所以如果你去搜索引擎里直接搜“agent是什么”出来的结果里一半是传统IT领域的含义一半是AI领域的新含义很容易让人头大。这篇文章聊的是后者——以大模型为大脑、具备自主规划和工具调用能力的智能体。2. 为什么偏偏是现在Agent才火起来2.1 模型能力从“会聊天”到“会干活”Agent这个概念其实不是2024、2025年才发明的。早在几年前学术界就讨论过“智能体”的雏形但当时大模型的能力支撑不起“自主干活”这件事模型只会做单轮问答你让它“帮我订个餐厅再规划路线”它只能给你一段建议文本无法真正动手执行。这时候做Agent就是一个概念玩物。后来大模型的推理能力和指令遵循能力上来之后情况变了。模型不再只会“接话”它能理解“用户的真实意图”能把一个模糊的需求拆成明确的步骤。给你感觉最明显的例子就是以前你让AI“写一篇行业分析报告”它给一坨泛泛而谈的文字现在一个Agent可以先帮你查资料、整理数据、生成PPT大纲、再输出一份完整文档。这不是模型的“文笔”变好了而是它开始具备“计划执行”的行为能力。2.2 工具调用标准化Function Calling的出现光有“大脑”还不够一个Agent要完成任务必须有“手”。这个“手”就是工具调用能力。如果你让模型自己去拼HTTP请求、生成URL去调API既不安全也不稳定。业界做了一件非常关键的事就是定义了一套标准化的工具调用协议行业里通常叫Function Calling也就是让模型在生成回答时不只是输出纯文本而是可以同时输出一个“意图表达式”。这个表达式告诉程序去调用哪个工具、传什么参数程序拿到后再真正执行把结果返回给模型。具体来说它会这样流转开发者把工具描述成一段JSON Schema比如“获取天气参数city, string, 必填”。用户在对话中说“北京明天冷不冷”。模型识别出意图输出“调用get_weather参数city北京”这样的结构化指令。程序执行天气API拿到结果。模型基于结果组织回答“北京明天最低气温-5℃比较冷建议穿羽绒服。”这一整套流程标准化之后Agent的“手”就有了统一的接口开发者不需要为不同模型写不同的调用方案。2023年左右大模型厂商正式把Function Calling作为标准API能力开放这也是Agent能大规模落地的一个引爆点。2.3 开源与框架把门槛打下来的“二传手”还有一个不能忽视的因素是开源模型和开源框架的成熟。以前想做一个Agent得自己处理模型部署、工具调用协议、状态管理、记忆管理工程量大得吓人。现在有很多开源框架把Agent的骨架搭好了你只需要往里面填自己的业务逻辑、注册工具、配置模型就可以。像LangGraph、AutoGen这些框架已经把Agent最重要的“循环”封装成了节点和边的图结构你甚至不需要完全理解底层状态机就能跑起一个多步骤Agent。还有不少开源项目把很多高频操作做成了“开箱即用”的形态比如整合好的本地Agent运行环境下载下来配置一下模型就能体验。这也是为什么你会看到很多热搜词里出现“hermes agent安装”“hermes agent本地部署”这类问题——基础设施齐全之后大家饶有兴致地想把Agent跑在自己电脑上。所以Agent不是“突然冒出来”的它是模型能力、工具协议、开源生态三股力量一起成熟的必然结果。本质上就像汽车工业内燃机、变速箱、轮胎早就有了但直到流水线完善汽车才真正进入普通家庭。3. Agent系统拆解大脑、手、记忆和循环3.1 大脑LLM内核Agent的大脑就是大语言模型几乎所有Agent项目都会把一个LLM放在循环里反复调用。这里有个很重要的认知模型在Agent里的角色不是“一次性生成答案”而是“持续做决策”。每一轮循环模型都要根据当前输入和历史信息判断下一步该干什么。因此模型的选择直接决定了Agent的上限。推理能力强、指令遵循度高的模型能减少很多不必要的回退和错误调用反过来如果一个模型连“三步以内该做什么”都分不清再好的工具集也会被它用乱。你可能会遇到“Agent执行不下去”或者“Agent答非所问”的问题很多次查到头来都是模型能力不够而不是框架或者代码的问题。3.2 手工具层与Function Calling原理工具层是Agent能“干活”的根本。一个Agent的工具集可以包含任意东西你可以注册一个网络搜索API让Agent自己去搜新闻可以注册一个数据库查询函数让Agent根据用户问题自动生成SQL并查库也可以注册一个画布绘制函数让Agent在画布上画图。设计工具集的时候有一个核心原则每个工具最好只做一件具体的事情参数定义要清晰Description要写明白“什么时候用、什么时候别用”。这不是吹毛求疵。工具体系设计得越模糊模型就越容易在多种场景下误调用。热搜里有“agent画图”这种词其实画图本身不是Agent的自带能力而是Agent调用了一个画图工具来完成任务本质还是工具编排。Function Calling实现上并不涉及特别高深的东西程序先把工具列表放到请求里模型根据用户的输入和工具描述决定要不要调用工具如果调用模型返回结构化参数程序执行完把结果作为一条新消息放回对话记录继续让模型做下一步决策。你可以把它理解为一个“内部循环的中间结果传递机制”。3.3 记忆工作记忆、长期记忆与向量检索Agent的记忆分两个层次工作记忆和长期记忆。工作记忆就是上下文窗口里的对话内容。每一轮工具调用的结果都要往工作记忆里塞。所以上下文窗口长不长、会不会很快被塞满直接决定了Agent能不能处理复杂任务。但窗口再大也会满所以就要引入长期记忆。长期记忆的做法也比较成熟把重要信息做embedding向量化存进向量数据库需要的时候做相似度检索把相关内容拉回工作记忆。这类Vector StorageFAISS、Milvus、Chroma等现在都是开源基础设施直接接入就行。长期记忆的设计目标是让Agent在下一次任务中还能“想起”之前学过的偏好、历史结论、业务规则。还有一个容易被忽略的“结构化记忆”比如关键状态、已执行步骤的清单、任务进度标记。这类数据不一定塞进向量库可能更合适放进关系型数据库或专门的Key-Value状态存储里。原因很简单结构化数据可以精确查询向量检索更适合做模糊语义召回。把记忆全部一股脑塞向量库是一些新手项目经常踩的坑。3.4 循环ReAct模式是如何转起来的当我们在图纸上画一个Agent最核心的不是那些花花绿绿的功能模块而是中间那个“循环”。目前最主流的循环模式叫ReAct即Reasoning Acting推理和行动交替进行。一个标准ReAct循环大概长这样输入任务模型根据任务和已有信息做推理明确“现在我要解决什么”。模型决定是否调用工具。如果调用会输出工具名和参数。程序执行对应工具把执行结果返回给模型。模型看到结果再次推理判断是继续调用下一个工具还是结束了。循环往复直到模型认为任务完成输出最终答案。这个循环里最关键的地方是“把每一步的思考和行动都记录下来”。每一轮的思考、调用、结果都要作为消息重新进入上下文让模型看到完整轨迹而不是只给它最终答案。否则模型就会“失忆”后面完全不知道之前发生了什么。很多框架帮你做的事情本质上就是这个循环和记录机制的托管。4. 三种主流架构模式与选型建议4.1 ReAct边想边做灵活但容易跑偏ReAct模式就是上面说的“思考行动观察结果”循环。它的优势非常明显灵活。因为模型可以随时根据工具返回的反馈调整下一轮动作能处理很多不确定性较高的任务。比如客服场景用户需求千差万别先查用户信息再查订单状态发现问题再查物流每一步都是动态决策。代价是可控性比较差。模型在自由决策的时候容易“跑偏”一个简单的活儿可能会被它绕一大圈。解决方法是设置最大步数上限比如循环10次没完成就直接放弃避免无限制烧钱和死循环。在代码里加上这个限制你就不用怕Agent突然变成一匹脱缰野马。4.2 Plan-and-Execute先做计划再按计划执行Plan-and-Execute模式思路完全不同它先把整个任务拆成一个“计划列表”然后按部就班地执行计划里的每一步。规划和执行分离通常有一个专门的规划器模型先生成计划执行阶段逐个验证状态从而让整个流程更可控。这种模式适合任务边界清晰、步骤明确的场景。比如“生成一份数据周报”先读取数据库数据再做统计计算再生成图表最后拼装文档。这些步骤是固定的完全可以通过先规划再执行来保证稳定性。缺点是遇到计划之外的情况时可能没有ReAct那么灵活。所以实际落地时很多系统做了折中用Plan-and-Execute做整体框架但允许每一步执行时做局部深度的循环修正。4.3 多Agent协作让一个团队来干活多Agent协作设计的思路一句话解释就是把一个大任务拆给多个各司其职的Agent让它们模拟一个团队。比如一个“产品经理Agent”负责拆需求一个“开发Agent”负责写代码一个“测试Agent”负责跑用例查问题。这种模式的好处是职责分离单个Agent的Prompt和工具集可以做得更专注系统整体更容易扩展。代价是Agent之间的通信会产生额外的Token开销而且如果角色职责划分不清多个Agent之间可能互相推诿或者重复劳动。对新手来说我的建议是先不要把多Agent方案拆得太碎能用单个Agent干完的事就先别上团队不然排查问题排查到崩溃。4.4 到底怎么选一个需求对照表我平时做方案时会用一个粗略的对照表来判断任务特征推荐模式原因用户需求多变、需要不断观察调整ReAct灵活性强能边做边修正流程固定、步骤明确、输入输出规范Plan-and-Execute可控性高执行稳定多个子任务领域差异大、需专人负责多Agent协作职责分离复杂度可摊开需求简单、一次性问答普通对话流程不需要Agent降低成本和延迟表格只是参考真实项目里基本都是多种模式的混合。比如一个复杂的“数据分析Agent”整体会先做计划但分析过程中又会插入多轮ReAct去查数据、画图、验证结论。架构是工具不是教条能解决问题就行。5. Harness、Skill、框架这些概念到底什么关系5.1 Harness不是Agent本身而是运行容器最近很多热搜都在问“harness和agent区别”这确实是个值得搞清楚的概念。Harness翻译过来叫“缰绳”或者“控制台”在实际Agent项目里它指的是“一套把模型、工具、记忆、循环逻辑装配起来并负责运行时调度的容器/环境”。你可以理解为Agent运行的一个“座舱”。举个马上能明白的例子一个人会开车这是“能力”一辆车拥有方向盘、油门、刹车和各种传感器这是“载体”。Harness就是那辆车它提供了Agent运行所需的全部基础设施。它本身不产生智能但它把智能需要的零件都组装好而且还在驾驶位帮你配了仪表盘。很多开源项目做成“下载即用”的形态拉下来其实就是一个Harness加上几个默认技能。所以当你看到某个东西叫“某某Agent Harness”的时候别误以为它是某个特定的Agent它更像一整套Agent的“运行框架/模板”装上模型和工具之后才能变成一个真正干活的Agent。5.2 Skill是给Agent的“技能包”Skill在Agent生态里对应的是“某个特定任务的处理能力模板”。举个例子你给Agent注册一个“文档摘要Skill”它内部可能定义了一系列步骤读取文档、分段、提取关键信息、输出摘要还可能搭配了一个专用的提示词模板和输出校验逻辑。Skill的意义在于它会沉淀“经验”。同一个任务如果每次都让模型从零开始规划结果肯定不稳定但如果把它封装成一个SkillAgent遇到对应场景时直接“调用”效率和稳定性都会更好。所以你可以把“Skill”理解成给Agent准备的预制工具包需要画图就加载画图Skill需要翻译就加载翻译SkillAgent本身不用把每种能力的实现细节都记在脑子里。5.3 框架是房子Harness是装修Skill是家具把这三者的关系用一句话概括框架相当于毛坯房给了你结构骨架和空间规划节点、边、状态Harness相当于装修好的房子水电、插座、空气开关都装好了你拎包入住Skill则是房子里已经备好的家具住进来直接能用。实际开发中你是可以完全不碰“Agent”概念直接基于框架手写一个循环的也可以直接基于现成Harness快速体验Agent效果还可以只给Agent配一堆Skill做垂直场景落地。这三层并没有“谁更高级”之分只是抽象层级不同。选哪条路取决于你有没有时间“装修”。5.4 从专用Agent看未来方向你可以关注到目前特别火的一类“专用Agent”比如编程Agent如Codex这类coding agent它的目标非常聚焦——把代码写对、把测试跑通。这类Agent内部设计了代码沙箱、测试反馈、代码搜索等一系列专用工具并把“跑通测试”作为整个循环的终止条件效果往往比通用Agent强得多。这个现象给了一个重要启发Agent的能力边界很大程度上取决于“你对任务的理解深度和工具集设计”而不是模型本身。通用Agent问题在于“什么都能干但什么都不是特别专”专用Agent把所有规划都押注在一个方向自然能把执行链路打磨到极致。未来Agent生态肯定不是“一个通用Agent打天下”而是几十上百个专用Agent各管一摊彼此通过标准协议协作。6. 实操手把手搭一个最小可用的Agent6.1 第一步明确边界不管你用哪个框架动手前都要先想清楚一个问题这个Agent要解决什么问题以“信息收集与整理Agent”为例任务定义为用户给定一个主题Agent自动搜索相关信息最终输出一份带来源的整理报告。边界划清楚之后Agent该做什么就一目了然搜索、阅读、总结、输出。如果这个任务用固定脚本也能做那就没必要上Agent但如果你希望它能根据搜索结果动态调整关键词、深入挖掘那就适合用Agent。6.2 第二步准备模型环境和工具代码层面你需要先准备好以下基础环境一个大模型API支持Function Calling目前主流模型基本都支持。一个网络搜索接口或文档检索工具。程序运行环境Python即可。工具可以自己定义成函数再用Function Calling标准化描述。我现在用一个极简例子说明把搜索工具描述成一段JSON Schema[ { type: function, function: { name: web_search, description: 根据关键词在互联网上搜索相关信息返回标题和摘要列表, parameters: { type: object, properties: { query: { type: string, description: 搜索关键词 } }, required: [query] } } } ]描述越清楚模型选错工具的概率就越低。这一步值得多花时间写Description别偷懒。6.3 第三步写系统提示词系统提示词承担了两个作用给Agent定位角色、划清任务边界。比如这个信息收集Agent的提示词可以这么写你是信息收集助手。你的任务是根据用户给出的主题通过web_search工具查找信息 并在最后输出一份结构化的报告。要求 1. 至少搜索3次覆盖不同角度。 2. 每次搜索结果需要引用来源。 3. 如果第一次搜索不到有效信息尝试换关键词再搜。 4. 最终报告用Markdown格式输出包含概述、要点列表、来源链接。注意这里的重点是“约束行为”而不是“约束回答风格”。Agent是来干活的不是来写作文的提示词里要把流程、质量要求、终止条件写清楚后两者尤其重要。很多Agent跑偏就是因为提示词里只写了“你要做一个聪明的助手”却没告诉它什么时候应该停下。6.4 第四步搭一个极简ReAct循环下面用一个极简代码展示ReAct循环的核心逻辑。这不依赖特定Agent框架逻辑是通用的换成任何支持Function Calling的模型都能跑import json def run_agent(task, messages, tools, max_steps8): for step in range(max_steps): # 1. 把当前对话记录交给模型让模型决定下一步 resp client.chat.completions.create( modeldeepseek-chat, messagesmessages, toolstools, ) msg resp.choices[0].message messages.append(msg) # 2. 如果模型决定调用工具就执行工具 if msg.tool_calls: for tool_call in msg.tool_calls: result execute_tool(tool_call) # 根据工具名分发执行 messages.append({ role: tool, tool_call_id: tool_call.id, content: json.dumps(result) }) else: # 3. 模型不再调用工具说明任务完成输出最终回答 return msg.content # 4. 到达最大步数强制终止 return Agent执行达到最大步数任务未完成。这里execute_tool是一个分发函数你在里面根据工具名去调用对应的Python函数即可。完整流程跑通之后你可以试着调整max_steps、工具数量、提示词观察不同配置对结果质量的影响。这个手写循环的价值在于它能让你看清Agent每一步的决策过程而不是把一切交给框架的黑盒。7. Agent开发中的常见问题与排查技巧7.1 死循环与执行终止到底怎么排查很多人在初跑Agent时都会遇到一类报错比如“agent execution terminated due to error”或者“couldnt generate a response. please try again.”。这类问题的本质原因通常有几种模型输出格式异常导致工具调用解析失败、上下文超长、或者API服务端返回了限流/超时。排查路径我建议按顺序走先看日志里最后一次请求返回了什么。如果返回200但内容异常问题在模型输出解析。再看是不是重复执行同一步。如果模型一直在“调用同一个工具、得到同一个结果”说明它没有办法从当前信息中收敛这时候要检查上下文是否提供了足够的新信息。最后看是不是达到了最大步数。很多框架默认限制步数任务太复杂时直接终止是正常的需要你适当调大上限或优化任务拆解。有一个我长期在用的习惯给Agent加上完整的trace日志。每轮记录模型输出、工具调用、返回结果、消耗Token。有了trace任何问题都可以回溯到具体哪一步出的错比瞎猜高效得多。7.2 工具参数幻觉和越权调用Agent在调用工具时不是绝对可靠的它有可能“编造”参数。比如你有一个获取天气的工具模型可能在没有用户提供城市的情况下自己猜一个城市填进去。这会导致Agent拿着幻觉参数去执行返回一堆没意义的结果。解决这个问题有三个手段在工具Schema里对每个参数写清楚“必填还是可选”不要留模糊地带。对缺失的关键参数让Agent先向用户追问不要自己乱猜。在程序侧做参数校验和结果校验工具执行前检查参数是否合法执行后检查结果是否为空。发现非法参数直接返回错误信息告诉模型“参数不合法请重新提供”。工具权限也要做最小化。Agent能调用“查询订单”工具不代表它应该能调用“删除订单”工具。给Agent的工具越多它犯错的概率越高。让Agent只访问它完成任务真正需要的资源这是最基础的安全意识。7.3 上下文爆炸与记忆损耗Agent每调用一次工具就会把结果塞进上下文。当一个任务步骤很多时上下文很容易膨胀。上下文一旦太长有两个后果一是Token成本上升二是早期的关键信息会被“挤出去”模型记不住最初的目标。处理这个问题的常用做法是“摘要压缩”。当上下文接近阈值时把前面的对话记录交给模型生成一段摘要替换掉原始内容。另一种做法是“关键信息抽取”每轮结束后只保留重要的状态信息比如用户目标、已完成的步骤、下一步要做的忽略过程中的噪音。说到底Agent的“记忆”是需要你主动设计的不能完全交给上下文窗口自生自灭。7.4 Agent的安全与成本控制总结我整理了一份常见问题的速查表你可以把它当作开发时的检查清单问题常见原因解决方案Agent进入死循环缺少终止条件、上下文信息不足设置最大步数、加入“无进展退出”逻辑停止执行报错上下文超长、API限流压缩上下文、设置重试机制调用错误工具工具Description不够清晰优化工具描述、减少工具数量输出格式不稳定模型能力不足或提示词约束不够换更强模型、输出后加格式校验Token成本超支步骤过多、上下文膨胀限制步数、做摘要压缩、分批处理成本控制是比较容易被忽略的问题。一个Agent任务动辄调用十几次模型接口成本是普通问答的十倍以上。如果任务比较复杂建议做“预算上限”比如设定单次任务最大Token数超出就强制结束然后把中间结果缓存下来。这不是抠门而是Agent工程化的基本素养。8. Agent学习路线与面试考点速查8.1 学习路线从Demo到生产要过五关如果你现在是从零开始学Agent开发我建议按下面的路径走这条路线我自己验证过避开了不少弯路第一关跑通一个现成框架的Demo。LangChain、LangGraph、AutoGen随便选一个先把Agent跑起来感受一下它怎么对话、怎么调工具。这个阶段别追求深入原理目标是“建立体感”。第二关手写一个最小ReAct循环。不依赖框架自己写几百行代码把“模型决策-工具执行-结果回填-再决策”这个循环跑通。这关过了你就不会觉得Agent是黑盒了。第三关深入理解一个框架的源码。只看一个别贪多把循环调度、状态管理、工具注册机制搞清楚。框架能解决什么问题、不能解决什么问题这个阶段你会有自己的判断。第四关做真实的业务需求。找一个小而完整的场景比如“客服工单分类与自动回复”“行业资讯汇总Agent”把从需求到上线的完整流程走一遍包括prompt优化、工具设计、错误处理、成本控制。第五关选一个方向深耕。记忆系统、规划策略、多Agent协作、安全对齐每个方向都有非常深的水选一个做到别人一问你能讲透的程度。这套路线最大的特点是慢就是快。跳过第二关直接学框架的人很容易在排查问题时陷入“框架为什么这么跑”的迷茫踏踏实实手写一遍所有疑问都会变成你的知识。8.2 高频面试考点与真题解析“Agent八股”这词虽然有点戏谑但确实说明Agent面试已经有了一些稳定考点。我把它们分成四类第一类概念理解题。典型的像“Agent和传统聊天机器人有什么区别”“ReAct中Reasoning和Acting分别指什么”。这类题考察的是你能否把抽象概念具象化能拿生活例子解释清楚会加分。第二类架构设计题。比如“如果让你设计一个客服Agent你会用什么架构为什么”“ReAct和Plan-and-Execute怎么选”。这类题核心不是考标准答案而是考你在不同约束条件下做权衡的能力。建议准备一个自己真实做过的例子用STAR法则讲出来。第三类工程实现题。比如“Agent的记忆如何实现”“上下文窗口快满了怎么办”“怎么防止Agent死循环”。这类题就是这篇第7章内容你踩过的坑在这里反而成了优势可以大方分享踩坑经历。第四类安全与成本题。比如“如何避免Prompt注入”“如何控制Agent的单次任务成本”。很多候选人答不好这类题因为只关注了功能实现没有关注工程落地。能主动提到工具权限最小化、Token预算上限的候选人面试官一般会比较认可。还有一些具体真题比如“Skill和Agent的区别是什么”上面第5章已经讲过再比如“编程Agent为什么比通用Agent执行效果好”可以从专用工具集和终止条件设计角度回答。我个人最深的体会是做Agent久了你会越来越敬畏“边界”。它不是一个能完全撒手不管的工具更像一个能力很强但需要盯着的实习生。你给它明确目标、合适工具、清晰边界它能帮你干很多活但你如果以为它无所不能把关键决策完全交给它它迟早会用一种你没想到的方式跑偏。这也是为什么现在越来越多人强调“Agent工程化”——真正的差异化不在于模型有多大而在于你如何规划任务边界、设计工具、管理记忆、控制风险。至少从目前看这就是Agent落地最实在的方向。
返回列表