快手 AI 应用服务端日常实习一面:协作、上下文与评测
本场面试题
- 多个 Agent 怎样传递上下文与上一步执行结果?
- 长链路任务怎样处理上下文膨胀?
- Agent 的 Memory 应该怎样设计?
- Agent 最终怎样评测?
面经与参考答法
快手 AI 应用服务端日常实习一面:协作、上下文与评测
公司:快手;岗位:AI 应用服务端开发实习生;招聘场景:日常实习;轮次:一面。面试日期未给;原文提到二面邀约后主动拒绝,不算实际二面。
根据候选人公开自述选录技术问题,经历未获外部认证。原帖未提供完整现场答案;下方短答与例子均为编辑补充,不代表作者实际作答、项目实现或企业标准答案。本文选录4组问题。
(1)多个 Agent 怎样传递上下文与上一步执行结果?
把目标、输入、约束、必要事实和期望输出写成明确的任务合同,再传递结果及可追溯引用。共享状态要有所有者和版本,子Agent不应任意覆盖全局事实。图内调用可以显式映射状态字段;跨进程时再增加序列化、认证、消息关联和去重,不能把转发整段聊天当作状态同步。
教学例子:B依赖A输出的风险事件列表,编排层先检查列表格式、数据版本和来源,再作为B的输入;若A失败或只返回一段泛泛总结,B不应继续假定结果有效。
知识阅读:多智能体消息、协议与状态同步。
(2)长链路任务怎样处理上下文膨胀?
先为任务约束、当前问题和输出预留预算,再按相关性读取证据。把历史维护为带来源的结构化任务状态,冗长工具输出保存在外部、按需取片段;必要时删除重复内容、抽取或摘要。保留否定条件、数字、版本和未完成事项,压缩后验证关键信息及任务结果,不能只看长度变短。
教学例子:几十次工具调用产生大量日志,窗口里保留定位问题所需的错误、结论、文件位置与未决项,完整日志用引用回查;若摘要丢掉“不可修改线上数据”,应回读并修正,而不是继续执行。
知识阅读:上下文压缩、摘要与裁剪。
(3)Agent 的 Memory 应该怎样设计?
先按用途区分当前任务状态和需要跨任务保存的记忆,再确定写入、检索、更新、过期及删除规则。短期状态要满足恢复需求;长期事实保留来源、时间和适用对象,只有授权且经过必要校验的信息才写入。查询先按用户、租户、权限和时效过滤,再选结构化或语义检索,向量库并非必选。
教学例子:用户纠正了某项偏好,系统把旧值标为失效,检索只返回当前可用事实;不能把新旧两句同时当成有效偏好,也不能跨用户召回相似但无权访问的内容。
知识阅读:短期记忆、长期记忆与检索。
(4)Agent 最终怎样评测?
先把用例的输入、初始环境、允许动作和成功判据固定下来,再同时检查实际结果与执行轨迹。确定性要求用程序或测试验收,开放质量可用经过人工校准的评分;越权等硬约束单列,不用平均文案分掩盖。比较版本时保持环境和预算可比,报告失败切片、重复运行表现、延迟及每个成功任务成本。
教学例子:任务要求生成只读分析报告,验收要读取实际报告、核对数据与引用,并检查轨迹中没有写业务数据;回复里出现“已完成”或工具HTTP返回成功都不能单独作为通过。
知识阅读:Agent 评测原理:任务、轨迹与环境结果。