字节 Agent 开发实习一面:自进化与评测
本场面试题
- 什么叫 Agent 自进化,产物是什么?
- 为什么要在沙箱里运行?
- 评测体系怎样和业务场景对齐?
面经与参考答法
字节 Agent 开发实习一面:自进化与评测
公司:字节跳动;岗位:Agent开发实习生;提问集中在自进化与评测;招聘场景:原帖标题为 29 届实习生;轮次:一面。帖子发表于 2026 年 8 月,未给具体面试日。
背景、经历及提问范围来自候选人自述,未独立证实。原题按可见记录归纳;各题下的答题思路为教学整理,不代表作者实际作答或企业标准答案。
教学演算:先走一次具体任务
这是教学例子,回答原帖“实际评测改进例子”的准备方法,不补造作者经历:用户要求只读订单o1;旧工具描述为“处理订单”,可能提出close_order(o1),运行时拒绝,任务失败。候选描述改为“read_order仅返回订单,不改变状态”,固定工具Schema仍只有read_order;同一测试夹具返回{status:paid,amount:100},预期正确引用结果、无写事件。候选若工具选对但答成未付款仍失败;其他失败和跨租户切片也必须检查。没有运行实验,不能给提升分数;文件快照也不撤销外部副作用。
同一原问涉及多个既有专题时,下方分列复习入口;它们不代表新增独立题目或面试流程。题后的回答均为整理教学,不是候选人现场作答。
(1)什么叫 Agent 自进化,产物是什么?
(1)什么叫 Agent 自进化,产物是什么?
“自进化”不能只说自动改 Prompt。它是一个受控闭环:从失败轨迹或业务反馈中发现问题,提出 Prompt、工具、记忆或策略候选,在隔离环境中评估,只有通过质量门禁的版本才发布。产物应是可版本化、可回滚的配置或代码,以及配套评测证据,而不是覆盖线上的不可追踪状态。
(2)高质量数据从哪里来,怎样判定?
(2)高质量数据从哪里来,怎样判定?
关联知识点待核实。
数据可以来自人工标注任务、线上失败抽样、专家示范、合成场景和历史回放。质量判断至少包含来源可信度、任务代表性、输入完整性、答案/判据正确性、难度分布、隐私合规与近重复检测。训练、调优和最终测试集需要隔离,避免拿见过的样本证明“进化有效”。
(3)为什么要在沙箱里运行?
(3)为什么要在沙箱里运行?
自进化会让模型尝试新代码和工具调用,风险比普通推理更高。沙箱应限制文件系统、网络出口、凭据、CPU/内存、运行时间和系统调用;测试数据使用最小权限的副本。沙箱降低爆炸半径,但不是绝对安全边界,宿主机仍需做审计、镜像供应链和纵深防御。
延伸阅读:代码执行、浏览器与文件操作沙箱。
(4)快照何时创建,怎样回滚?
(4)快照何时创建,怎样回滚?
关联知识点待核实。
在执行不可信修改前、完成一个可验证阶段后,以及切换候选版本前创建快照。快照要绑定输入、代码/配置版本、依赖镜像、随机种子和评测集版本。回滚不只是恢复文件,还要处理数据库、队列和外部 API 已产生的副作用;这些动作需要幂等键、补偿或隔离环境。
(5)Harness 层负责什么?
(5)Harness 层负责什么?
关联知识点待核实。
执行harness为Agent提供上下文、循环、工具、状态和执行边界;evaluation harness则把“被测Agent”与“测试环境”解耦:统一构造任务、注入工具与资源、采集轨迹、执行判分器、限制预算并生成可比较报告。它应支持同一任务在基线与候选版本上复现,从而判断提升来自真实能力还是评测漂移。
(6)评测体系怎样和业务场景对齐?
(6)评测体系怎样和业务场景对齐?
从真实用户任务抽样建立分层数据集,分别度量任务成功率、关键步骤正确率、工具参数正确率、幻觉/安全违规、延迟与成本。开放题可组合规则、执行结果、参考答案和模型裁判,但裁判也要做人工一致性校准。上线前离线回归,上线后小流量观察并把新失败沉淀回评测集。
(7)同一原问的复习入口(从零构建 Agent 运行时):评测体系怎样和业务场景对齐?
从真实用户任务抽样建立分层数据集,分别度量任务成功率、关键步骤正确率、工具参数正确率、幻觉/安全违规、延迟与成本。开放题可组合规则、执行结果、参考答案和模型裁判,但裁判也要做人工一致性校准。上线前离线回归,上线后小流量观察并把新失败沉淀回评测集。
延伸阅读:生产级 Agent 评估系统设计。
原帖还问模块间依赖:模型决策模块消费上下文,工具执行模块校验参数和权限,状态模块保存观察供下一轮决策,评测模块按固定判据读取轨迹和终态。原帖未披露其项目接口,以上是教学职责说明。知识导航:从零构建 Agent 运行时。
相关机制阅读(不计专题频次):发布质量门禁与回归阻断。仅阅读离线质量指标、失败切片和样本不足处理;原帖未问发布放行或例外审批。
(7)为什么用 Go 重写 Agent 组件?
(8)为什么用 Go 重写 Agent 组件?
关联知识点待核实。
合理理由可以是并发模型、部署体积、资源占用、静态类型和已有服务生态;“Go 更快”不能代替测量。重写时常见难点是动态 Schema 表达、流式调用、取消/超时传播、插件边界和可观测性。应先定义行为兼容测试,再逐模块替换,避免一次性重写导致语义漂移。
(8)怎样找到小于 n 的最大可组成数字?
(9)怎样找到小于 n 的最大可组成数字?
关联知识点待核实。
先尝试与 n 同长度:从高位到低位选择不超过当前位的最大候选;一旦某位选小,后续全部填最大数字。若后续无解,回退到前一位换成更小候选。若同长度仍无解,再用最大数字组成少一位结果。示例 A={1,2,4,9}, n=2533 得到 2499。实现时需澄清数字能否重复、是否含 0、是否允许等于 n。
面试口述与教学追问
口述要点:执行harness决定怎样跑,评测harness决定怎样验证;改进产物要版本化,用同输入和独立终态判据比较,平均分不能抵消越权,不能把示例说成亲历事故。
下面是模拟变条件追问,不是来源面经原题:
- 新提示词平均分更高,但出现一次跨租户查询,能发布吗?——权限不变量单独阻断,不能用平均分抵消。
- 文件快照恢复后,外部数据库已经写入怎么办?——检查幂等/补偿与环境隔离,不能把文件回滚当跨系统事务。
整理答案的核验资料
核验于 2026-10-02。LangGraph 为滚动文档;MCP使用2026-07-28规范,MySQL使用8.4。未声称执行了作者的项目或复现其面试。
- Anthropic Agent 评测:终态、轨迹与评分器
- gVisor维护者:威胁模型与沙箱边界(滚动文档,核验于2026-10-02,不声称解决所有风险)
- Go官方FAQ:goroutine与执行资源(滚动文档,核验于2026-10-02,性能仍需实测)