腾讯 AI 后端实习面经:编排、重试与知识库更新
本场面试题
- 多个 Agent 怎样编排,具体流程如何组织?
- Agent 失败或中断后,怎样实现安全重试?
- RAG 知识库怎样更新才能不停服?
面经与参考答法
腾讯 AI 后端实习面经:编排、重试与知识库更新
腾讯AI应用开发后端实习记录,具体轮次、部门和面试年月未注明。以下选录多Agent编排、安全重试和RAG更新,不把假设业务补成实际部门信息。
以下短答、详解和示例均为编辑教学补充,不代表候选人现场回答、实际项目实现或企业标准答案。
(1)多个 Agent 怎样编排,具体流程如何组织?
把编排拆成任务依赖、执行状态和结果合并三部分:主 Agent 动态分派需要独立探索的子任务,worker 在各自上下文内调用工具并返回证据,协调者核对口径后汇总。步骤固定时可用确定性任务图,能并行调用多个工具也不一定需要多个 Agent。
详解
一个具体教学流程是并行核对两个独立服务的健康状况。协调者为每个 worker 发送服务ID、时间窗口、允许的只读工具、截止时间及输出字段;worker 可根据错误码继续查日志,最终返回观察、证据引用和未确认项。若第二个服务的诊断依赖第一个服务刚查到的版本号,就应把这条依赖显式连起来,不能为了并行而猜输入。
动态派发适合子任务内容随输入变化的情况;若每次都是固定两次查询和确定规则合并,普通并行函数已经能表达,额外模型决策未必有价值。Anthropic 的 Orchestrator-workers 说明区分了动态拆分与预定义并行。
每个任务都有稳定任务ID、状态版本和负责人。不同worker各自保存对话上下文,返回结果不能直接覆盖同一个共享字符串;父运行时检查任务ID、数据快照、证据权限和版本后合并,重复回报按ID处理。语义相同而口径不同的数值不能直接相加。设置总预算、子任务超时和部分失败策略,最后与单 Agent 或固定任务图在相同预算下比较任务成功、交接错误和成本。
(2)Agent 失败或中断后,怎样实现安全重试?
为同一业务动作保存稳定的操作 ID 和参数摘要,服务端用原子账本区分进行中、成功与失败;网络重试复用原 ID,参数改变则作为新意图处理。超时只说明结果未确认,先查询或对账;同库副作用可与账本一起提交,跨服务还要有下游幂等及恢复协议。
详解
教学情境是“创建一张工单”:服务端已经创建成功,但响应在网络中丢失。Agent 若重新生成操作ID再调用,就可能创建第二张工单。正确重试应携带原操作ID;服务找到成功记录后返回同一个工单的语义结果。幂等关注重复请求的预期业务效果,而不是网络只发送一次。RFC9110定义了这一点。
账本可按“调用者、操作类型、操作ID”建立唯一约束,保存规范化参数摘要、运行状态和结果引用。不能先查不存在再无保护地执行:两个并发请求可能同时通过。把唯一占位、业务变更和成功状态放进能共同提交的事务范围;相同ID却收到不同参数时,明确拒绝,而不是重放第一次结果掩盖意图变化。AWS 的幂等API说明讨论了稳定请求标识、原子边界和参数不一致。
调用外部系统时,尽可能向下游传同一业务操作身份,保存下游资源ID。若下游结果未知且没有幂等或状态查询能力,就进入对账/人工处理,不能只加一个锁便宣称“严格一次”。失败恢复还需保留重试总期限和退避预算;幂等键保留期过短,会让很晚到达的重试重新成为新请求。
(3)RAG 知识库怎样更新才能不停服?
让旧索引继续服务,在旁路构建新版本并追平增量,验证检索、权限和容量后切换逻辑路由。一次查询固定索引及模型版本,缓存也带版本;旧索引在回滚窗口内保留。切换指针可避免重建期间停服,但不能自动解决双写失败、旧请求或新增数据的回滚兼容。
详解
教学假设是后端支持版本化索引和逻辑别名。先固定解析、分块、embedding、过滤规则和来源水位,生成v2;v1仍提供线上读取。全量构建完成后重放水位之后的增量事件,并核对更新、删除和失败,避免新索引只包含构建开始时的数据。embedding空间或切块方式改变时,要重新派生数据,不能只复制旧向量。Elastic Reindex 示例说明了独立目标和后台复制机制。
验证通过后再切换。以Elasticsearch别名为例,移除v1并添加v2应放在同一次多动作请求中;还要校验结果与切换前置条件。当前文档允许部分动作成功、部分失败,acknowledged不能单独证明预期切换完整;按版本支持使用must_exist等条件,并核对errors及各动作结果。Aliases 文档专门区分了这两种情况。
路由切换不会让在途查询和缓存自动同步。请求开始时固定版本,查询向量使用对应embedding模型,缓存键包含索引版本,引用携带来源版本。回滚只把路由切回仍完整的v1;切换之后的新数据也须有可重放事件并满足v1格式,或明确暂停回滚。保留旧版期间检查容量,最终确认无活跃查询、回滚窗口结束后再回收。