Agent 岗位方法分享
完整信息
本篇目录
分享一下我面试 Agent 岗位时被问到的一些关键问题,以及我是如何回答的。
自从我的 Agent 学习路线那篇帖子“火”了以后,又有小伙伴问我:面试时 HR 会问哪些问题,又该怎么回答?
以下是我面试了几家公司后,整理出来 HR 的高频提问总结。
- 你们用的 Agent 框架是什么?ReAct 还是 Plan-and-Execute?
我:我们主要用 ReAct,就是边想边干的那种。模型每走一步看一眼结果再决定下一步,灵活度高,用户中途改需求也能跟上。Plan-and-Execute 我们也试过,先出计划再执行,省 token,但一旦中间出岔子就不好处理。所以实际是混着用:大体上先有个计划,执行细节里遇到异常再切到 ReAct 模式局部调整。
- 怎么让模型老老实实调用工具,不瞎编参数?
我:两个办法。一是用模型自带的 function calling,它返回的就是结构化数据,直接解析,最稳。二是如果模型不支持,我就把工具定义写得特别清楚,参数类型、必填项、例子都给足,然后在 Prompt 里硬性要求输出 JSON,再加一层正则解析和格式校验,不对就让它重试,最多两次。关键参数我还会在后端设默认值兜底,不能全指望模型。
- Agent 的记忆怎么搞?长期短期分别怎么存?
我:短期就是当前会话的消息记录,加上一些状态变量,比如已经走到哪一步了、中间结果是什么,直接存 Redis。长期记忆的话,我会把聊完的会话压缩成摘要,或者抽取出用户偏好、常用信息,丢到向量库里,下次遇到相关话题再查出来塞回上下文。重点是要控制长度,太长就压缩,别把窗口撑爆。
- 多智能体怎么协作?比如一个写代码一个审查
我:我会给每个 Agent 定死角色,比如程序员只负责写代码,审查员只负责挑毛病,System Prompt 里把职责和输出格式都限定好。协作方式一般就是顺序链,程序员写完直接丢给审查员。为了避免乱套,消息用 JSON 串起来,带上任务 ID 方便追踪。遇到意见冲突,我会加个仲裁者,或者关键步骤让人工介入。
- 工具调用失败、超时了怎么办?
我:我把所有工具调用封装成统一函数,捕获异常后返回一个结构化的错误信息,比如“Error: 超时”,然后把这个错误喂回给模型,让它自己决定是重试、换工具,还是告诉用户出问题了。重试次数限制两次,整体执行超时也设一个,比如 30 秒,到点就中断。关键工具我还会准备备用 API,主挂了就降级。
……(文字有限,👆看图)。
#Agent[话题]# #Agent面试[话题]# #人工智能[话题]# #智能体[话题]# #面试技巧[话题]# #面试[话题]#
- 怎么评估 Agent 效果好不好?
我:主要看两样:任务成功率,就是用户到底有没有把事情办成;再就是效率,平均用了多少步、花了多久。工具调用准不准也是关键,选对工具、参数填对才算好。离线的时候我会建一批测试用例,人工标好标准答案,用 GPT-4 帮忙打分。上线以后就看用户反馈、失败率,配合 A/B 测试慢慢迭代。
- 上下文窗口不够用,对话太长怎么办?
我:常用招数:早期对话压缩成摘要,只保留关键信息。太长的任务拆成子任务,每个子任务独立对话,最后汇总。中间结果写进数据库,需要时再读回来,不都塞进上下文。实在不行就换支持长窗口的模型兜底,但优先用工程手段省 token。
- 开发 Agent 时踩过什么坑?
我:坑太多了。比如模型反复调同一个工具还失败,我就加失败计数,超过阈值直接结束,不让它死循环。还有模型自己编参数,我就把工具返回结果用 JSON 喂给它,明确说“只能从这里边取”。多轮对话丢状态也遇到过,后来把状态存 Redis,每次带上会话 ID,服务无状态了就好多了。成本也得盯着,限制每轮 token 数,超预算就告警。
这些基本是 Agent 岗位面试的高频问题,回答时按这个节奏:先一句话说清思路,再补一两句关键做法,最后带个实际例子,面试官听着就觉得你有实战经验。加油宝子们!一定会上岸成功哒!
本篇目录
当前问题0108
- 01
你们用的 Agent 框架是什么?ReAct 还是 Plan-and-Execute?
- 02
怎么让模型老老实实调用工具,不瞎编参数?
- 03
Agent 的记忆怎么搞?长期短期分别怎么存?
- 04
多智能体怎么协作?比如一个写代码一个审查
- 05
工具调用失败、超时了怎么办?
- 06
怎么评估 Agent 效果好不好?
- 07
上下文窗口不够用,对话太长怎么办?
- 08
开发 Agent 时踩过什么坑?