蚂蚁 Agent 开发一面:多 Agent 并发与质量保障
本场面试题
- 多个 Agent 同时写数据库或文件怎么办?
- RAG 混合检索怎样实现?
- AI Coding 上线前怎样保证质量?
面经与参考答法
蚂蚁 Agent 开发一面:多 Agent 并发与质量保障
这份记录包含 Agent 开发一面的项目架构、多 Agent、RAG、工具失败、上下文与代码质量追问。具体面试日期未披露;采集元数据中的 2026 年 4 月是发帖时间。本文选录并合并为下列 12 组工程题,不把原文的 19 项编号当作当前稿的完整问答数量。未收录实际 Agent 数量与角色分工、本人开发过哪些工具、是否编写过 MCP、AI Coding 使用方法论、额外项目,以及 omo / openspec 的实践或学习来源追问。所有答案均为教学整理,不补造项目经历。
(1)怎样介绍 Agent 项目架构?
关联知识点待核实。
先画清入口、编排运行时、模型、工具、状态/记忆、检索、异步任务和观测系统,再选择一个真实请求讲完整数据流。每个组件要回答“为什么需要、失败后怎么办、用什么指标验证”,避免用框架名代替设计。
(2)什么时候用单 Agent,什么时候用多 Agent?
关联知识点待核实。
默认从单 Agent 或确定工作流开始。只有子任务能独立并行、角色需要不同权限/工具、或上下文隔离能显著提升质量时才拆分。多 Agent 会增加通信、重复上下文、调试和一致性成本,必须用成功率、延迟或组织边界证明收益。
(3)多个 Agent 怎样通信?
关联知识点待核实。
同步调用适合短任务,队列/事件适合长任务与解耦,Agent-as-Tool 适合由上层统一编排。消息至少包含 task/run ID、发送者、目标、Schema 版本、幂等键和 deadline。共享黑板可以传状态,但要有字段所有者和并发规则。
(4)多个 Agent 同时写数据库或文件怎么办?
优先把同一资源交给单写者串行化;数据库可使用事务、唯一约束、乐观版本号或必要的行锁;文件可写临时文件后原子 rename,或让各 Agent 写独立分片再合并。分布式锁只是租约,不替代幂等、版本检查和冲突解决。
延伸阅读:并发控制、资源隔离与公平调度。
(5)异步执行怎样管理?
关联知识点待核实。
任务需要持久状态、可取消、重试上限、超时和死信处理。父任务等待子任务时要传播 deadline;合并结果时区分部分成功和全部失败。进程重启后通过队列与检查点恢复,不能依赖内存中的 Promise。
(6)RAG 混合检索怎样实现?
关键词检索擅长专有名词和精确匹配,向量检索擅长语义近似。两路召回先做权限和元数据过滤,再用 RRF 或归一化分数融合,最后 rerank。离线用 Golden Set 调参,线上记录每路命中贡献和无答案反馈。
延伸阅读:Hybrid Search 混合检索。
(7)怎样减少幻觉?
关联知识点待核实。
先区分无证据、错误证据、模型未遵循证据和工具结果解析失败。检索系统给出可引用证据与置信信号,缺少证据时允许拒答;工具返回使用结构化 Schema 校验;高风险结论增加规则或人工确认。仅在 Prompt 中写“不要幻觉”不构成保障。
(8)工具结果字段缺失或冗余怎样处理?
关联知识点待核实。
在工具适配层验证 Schema、必填字段、类型和大小限制。可恢复的缺失触发带上限重试或降级,不可恢复则向 Agent 返回明确错误码;冗余字段在进入上下文前裁剪。不要让模型猜出缺失的业务关键字段。
(9)Self-Refine 自我修正有哪些策略?
关联知识点待核实。
先由独立检查器根据明确 rubric 找出具体缺陷,再只针对缺陷生成修订;每轮比较质量分和变更,若无提升就停止。设置最大轮次与成本预算,关键任务保留人工接管。
(10)MCP 和工具失败怎样处理?
关联知识点待核实。
MCP 提供统一工具/资源协议,但鉴权、超时、限流和业务权限仍由服务端负责。失败先分类为参数、权限、限流、暂时故障或不可恢复错误;只对幂等、暂时性错误做指数退避,并把最终状态持久化。
(11)怎样管理 Agent Context?
关联知识点待核实。
把系统规则、当前任务状态、近期对话、检索证据和工具结果分层;按相关性和预算选择内容,长结果保存引用与摘要。安全规则不能被外部检索内容覆盖,敏感数据在进入模型前做权限和脱敏检查。
(12)AI Coding 上线前怎样保证质量?
把 AI 产出当作未经信任的提交:小步 diff、静态检查、单元/集成测试、安全扫描、依赖审查和人工代码评审。对数据库迁移、权限、财务等高风险变更增加专门门禁。上线后保留灰度、监控与回滚。
延伸阅读:发布质量门禁与回归阻断。