字节跳动 抖音 AI Agent开发 一面

1、自我介绍

我主要做的是大模型应用和 AI Agent 相关开发,平时接触比较多的是 Prompt 工程、RAG、工具调用、工作流编排、上下文管理、模型评测和服务化落地。技术栈以 Python 为主,也做过接口开发、异步并发、日志监控和效果优化这类工程工作。相比只关注模型本身,我更关注模型放到真实系统里之后,怎么把效果、稳定性、延迟和成本一起做好。

2、提示词模板是怎么构建的

提示词模板本质上是在给模型定义任务协议,而不是简单写一段说明。一般会包含角色设定、任务目标、输入数据、约束条件、输出格式和示例。

比如让模型做工具调用时,提示词里通常会明确:

  • 你是什么角色
  • 你要解决什么问题
  • 什么情况下需要调用工具
  • 工具输入输出是什么
  • 结果必须按什么格式返回
  • 信息不足时应该怎么处理

一个稳定的模板通常会把自由发挥空间收紧,让模型更可控。很多时候模型输出不稳定,不是模型本身不行,而是模板边界不够清楚。

PROMPT = """
你是一个AI Agent。

任务:
根据用户问题判断是否需要调用工具。

约束:
1. 如果问题可以直接回答,就直接回答
2. 如果需要外部信息,就调用工具
3. 输出必须是JSON格式
4. 不要编造工具结果

用户问题:
{query}

输出格式:
{{
  "need_tool": true,
  "tool_name": "weather_api",
  "tool_args": {{"city": "北京"}}
}}
"""

3、单 Agent 和多 Agent 的区别

单 Agent 更适合任务边界清晰、流程不复杂的场景。比如问答、查询、单工具调用,这种场景用单 Agent 足够,链路短,调试简单,延迟也更低。

多 Agent 更适合复杂任务拆解。比如先理解意图,再做规划,再查资料,再调用工具,最后总结输出。常见的拆分方式是:

  • Planner Agent:做任务规划
  • Retriever Agent:负责检索
  • Tool Agent:负责调用工具
  • Critic Agent:负责校验结果
  • Writer Agent:负责汇总输出

多 Agent 的好处是职责清楚,不同模块的 prompt 更容易优化;问题是链路更长,成本和延迟也更高。实际里很多系统会用工作流加局部多 Agent,而不是完全自由协同。

4、Function Calling 的原理是什么

Function Calling 的核心不是让模型真的执行函数,而是让模型输出一个结构化的“调用意图”。系统把工具定义、参数说明、字段 schema 提供给模型,模型根据用户问题决定要不要调用工具、该调用哪个工具、参数是什么。然后由外部程序真正执行工具,再把结果返回给模型继续生成答案。

它的关键点有两个:

  • 工具描述必须清楚,告诉模型什么时候用
  • 参数 schema 必须严格,减少乱填参数的问题

一个典型流程是:

用户问题 → 模型判断工具 → 返回 JSON → 系统执行工具 → 工具结果回填 → 模型生成最终答案

5、上下文工程怎么做,为什么会影响 Agent 效果

上下文工程的核心是“给模型什么信息,以及怎么给”。不是上下文越多越好,而是越相关越好。真正影响效果的,通常是信息顺序、噪声比例、结构化程度和当前任务聚焦程度。

常见做法包括:

  • 只保留和当前任务相关的历史对话
  • 检索结果按相关性排序后再拼接
  • 把系统规则、用户输入、工具结果分区组织
  • 对长上下文做摘要或压缩
  • 对多步任务先输出 to do list 再逐步执行

如果上下文太乱,模型容易丢重点;如果上下文太长,模型会把注意力分散掉;如果没有结构,模型虽然看到了信息,也不一定能正确利用。

6、记忆模块怎么设计,短期记忆和长期记忆有什么区别

短期记忆主要是当前会话里的上下文,比如最近几轮对话、当前任务状态、用户刚补充的信息。它服务的是当前任务连续性。

长期记忆更多是跨会话信息,比如用户偏好、常用配置、历史结论、固定背景资料。它服务的是长期个性化和持续协作。

设计时一般不会把所有历史全量塞进模型,而是做分层管理:

  • 短期记忆:直接保留最近几轮
  • 长期记忆:存储成结构化信息或向量索引,按需召回
  • 任务记忆:记录当前任务步骤、待办事项、已完成状态

这样做可以控制上下文长度,也能让 Agent 在需要时找回重要信息。

7、RAG 和 Agent 的区别是什么

RAG 的重点是“查资料再回答”,本质上是检索增强生成。它通常解决的是知识更新、事实依据、企业文档问答这些问题。

Agent 的重点是“会决策、会调用、会执行”。它不只是查文档,还可能调用接口、操作工具、规划任务、拆解步骤、状态跟踪。

可以简单理解:

  • RAG 更偏知识获取
  • Agent 更偏任务执行

很多系统里两者会结合。也就是 Agent 在决策过程中,需要知识时走 RAG,需要动作时调工具。

8、工具选择错了怎么优化

工具选择错误本质上是路由问题。常见原因有:

  • 工具描述不清晰
  • 工具之间边界重叠
  • prompt 没把选择规则写清楚
  • 用户问题本身歧义大
  • 缺少失败反馈机制

优化时一般从几个方向做:

  • 重写 tool description,减少模糊词
  • 给工具增加 few-shot 示例
  • 把工具先做粗分类,再细选
  • 对高风险调用加规则校验
  • 工具执行失败后让模型反思或重试

如果工具很多,可以先做一级路由,把问题分流到某类工具,再在该类内部精选,稳定性通常会更高。

9、并行化意图识别为什么有必要,怎么实现

因为复杂系统往往不是只判断一个意图,而是同时判断多个维度,比如:

  • 主任务意图

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

AI-Agent面试实战专栏 文章被收录于专栏

本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

全部评论

相关推荐

一共一个小时,面试难度以及自己的回答算是最近的面试压力比较大的,实习问了30分钟,中间穿插八股。1.redis数据结构2.redis持久化机制3.mysql索引底层4.聚簇索引与非聚簇索引5.索引优化6.索引失效7.mysql执行一条sql8.那么多索引mysql怎么选(不会)9.tcp与udp区别10.tcp为什么可靠11.消息队列作用12.kafka怎么保证消息有序性13.mcp是什么?14.skills是什么?15.jvm内存分配与回收过程(我讲了从创建对象到判断垃圾对象到垃圾回收我全说了一遍,是这个吗?)16.fullgc触发机制17.tcp的拥塞控制流程(不会了)18.分布式事务解决方案,说了2pc,3pc,tcc。算法是反转双向链表,没有按格式输出,但是面试官没让继续写了,面完以为挂了,结果晚上秒过,看看复试什么情况吧。今天百度打电话准备发offer了,业务跟在手子的差不多,很垂,并且说不分日常暑期,只看表现,会有转正机会,但是考虑再三还是拒绝了,百度实习薪资确实有点低,title也不如之前了,但是面试的二位业务老师我很喜欢,对我的评价也不错,希望之后能有机会共事。从三月份到现在一共面了六家,面试次数总共是8场,情况如下:脉脉二面(无答复,默认挂)百度二面已oc美团一面过,下周一二面shein一面过直接HR面游族一面过直接HR面腾讯一面过等待约二面滴滴明天一面面试通过率还是蛮高的,但是大部分都是日常,感觉对我现在的加成不大,大概率不会去,不知道暑期会是什么情况呢唉,希望能有面试吧,继续加油。字节被无hc直接取消了,现在还没人捞,有没有字节HR救救我
不管什么都不想跳动了:本人美团百度快手都待过,建议肯定是直接留快手多一点产出后转正or直接冲字节腾讯暑期吧。一是快手从福利到基建都吊打另外两家。美团现在这个业务比较惨,本来毛利就很低,亏损严重,今年很可能要优化人力降低成本,去了别说日常,就算暑期后面都很可能被优化。百度其实实习生权限挺高的,可以接触到一些含金量高的项目,但是现在的风评不如之前了,薪资也不高。二是转正概率和薪资是跟产出挂钩的,你都在手子已经积累产出了,去其他家日常实习产出都是从0开始,肯定不可能有你在手子转正可能性大啊,现在日常压根没必要去,而且我有两个师弟都是在快手日常转正的,不用太担心,安心留在手子一边多做一点产出然后一边冲字节腾讯暑期,字节腾讯今年实习岗位非常多的,不如好好把握这个,加油。
查看18道真题和解析
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务