快手 Data Agent 一面:记忆、循环与 Subagent
本场面试题
- 短期与长期记忆应怎样设计?
- 怎样防止 Agent 陷入死循环?
- Subagent 适合哪些任务?
面经与参考答法
公司:快手;方向:Data Agent(原帖标题);轮次:一面。部门和实际面试日期未披露。本文选录3题。
根据候选人公开自述整理,经历未经外部认证。以下短答和例子均为编辑教学补充,不代表现场答案、原项目实现或企业标准方案。
(1)短期与长期记忆应怎样设计?
先按用途和生命周期区分:短期记忆维护当前会话的消息、任务状态与工具结果,需要故障恢复时使用持久检查点;长期记忆保存经授权可跨任务复用的事实或经验,保留来源、版本与有效期。召回时检查租户、权限、时效和冲突;相似度只产生候选,不保证事实正确,也不要求所有记忆都使用向量库。
教学例子(非原项目实现): 本轮订单查询的进度属于短期状态;用户明确允许保存的语言偏好可以进入长期记忆。换会话后取回偏好,仍需确认所属用户与当前有效性。
深入阅读:短期记忆、长期记忆与检索
---
(2)怎样防止 Agent 陷入死循环?
把完成条件、调用次数、token、费用和全局期限纳入运行状态,在决策与工具执行前校验。用未完成目标、状态版本、动作参数和新证据判断进展;分页或轮询须区分游标推进与重复空转。无进展时换方法、澄清或退出,重试也消耗原任务预算。完成、超限、失败、取消和人工介入应明确分流,模型说“完成”不能代替产物验证。
教学例子(非原项目实现): 连续以相同查询拿到相同证据,不能只改提示措辞就无限继续;若分页游标确实推进,同一工具重复调用仍可能是有效进展。停止时返回已完成项、剩余问题与原因。
深入阅读:Agent Run Loop、轮次与终止条件
---
(3)Subagent 适合哪些任务?
适合边界明确、可独立取证,或需要不同工具与上下文的子任务。主 Agent 传入目标、必要材料、约束、允许工具、预算和完成标准;子 Agent 在隔离上下文中执行,以证据与状态返回,由主 Agent 验证归并。独立任务才适合并行,共享写入需要所有者或版本检查。委派不扩大权限,也不自动提高质量;任务很小或依赖很强时,单一执行链可能更合适。
教学例子(非原项目实现): 把两份独立规范的核对交给两个只读子任务,各自返回段落引用,主 Agent 验证后归并。若后一项依赖前一项产物,应先完成依赖,而非让两路猜测或覆盖同一文件。
深入阅读:Subagent 子智能体设计