腾讯 AI 应用开发面试:跨会话记忆与多 Agent
本场面试题
- 跨会话怎样压缩并保留关键信息?
- FSM 状态机怎样实现?
- 为什么选择 ReAct?
- 多 Agent 怎样划分?
- Skill 的核心价值是什么?
面经与参考答法
腾讯 AI 应用开发面试:跨会话记忆与多 Agent
原帖未披露具体面试日期和轮次。本文按主题选录可见技术问题;跨会话关联追问并入记忆题,补回工厂模式与后台搭建问题。答案和方案是教学整理,不代表候选人现场回答或项目实际实现;未给出条件的股票交易题保留待确认边界。
原帖自述集中考察记忆介质、状态机、ReAct、多 Agent、Skill、可插拔 RAG 和部署。原帖序号有缺失,本文按主题重组,不补造问题。
同一原问涉及多个既有专题时,下方分列复习入口;它们不代表新增独立题目或面试流程。题后的回答均为整理教学,不是候选人现场作答。
(1)记忆应该存在哪里?
(1)记忆应该存在哪里?
关联知识点待核实。
短期运行状态可放检查点数据库或低延迟 KV;原始对话与审计事件放可靠数据库/对象存储;语义检索需要向量或全文索引。选择时同时考虑一致性、TTL、删除权、租户隔离、容量与恢复。模型上下文只是一种读取视图,不是持久化层。
(2)跨会话怎样压缩并保留关键信息?
(2)跨会话怎样压缩并保留关键信息?
将原始事件和派生摘要分开。摘要只保留已确认事实、偏好、目标、约束、未完成事项及来源 ID;每次更新做冲突检测,并允许从原始事件重建。用户维度至少用 tenant_id + user_id 隔离,session 只表示一次会话,不能拿 session ID 代替用户身份。
(3)同一原问的复习入口(会话摘要、压缩与记忆提炼):跨会话怎样压缩并保留关键信息?
将原始事件和派生摘要分开。摘要只保留已确认事实、偏好、目标、约束、未完成事项及来源 ID;每次更新做冲突检测,并允许从原始事件重建。用户维度至少用 tenant_id + user_id 隔离,session 只表示一次会话,不能拿 session ID 代替用户身份。
延伸阅读:Agent 记忆系统架构设计、会话摘要、压缩与记忆提炼。
(3)FSM 状态机怎样实现?
(4)FSM 状态机怎样实现?
先列有限状态及允许的事件/转移,为每次转移定义前置条件、动作和失败状态。状态持久化使用版本号或 CAS 避免并发覆盖,外部副作用使用幂等键。状态机适合确定性业务阶段,开放式问题求解可在某个状态内部使用 Agent。
延伸阅读:用状态机建模 Agent 行为。
(4)为什么选择 ReAct?
(5)为什么选择 ReAct?
ReAct 让模型在观察工具结果后决定下一步,适合信息不完整、路径需要动态调整的任务。代价是调用次数、延迟和循环风险。生产实现应保存结构化 Action/Observation,限制步数、工具权限和预算;确定流程不要为了“Agent 化”强行使用 ReAct。
(5)多 Agent 怎样划分?
(6)多 Agent 怎样划分?
只有角色需要不同工具/权限、任务可并行或上下文确实需要隔离时才拆分。按研究、执行、校验等责任划分,并定义输入输出 Schema、共享状态所有权和合并策略。多个 Agent 并发写同一资源时使用单写者、事务/乐观锁或任务队列,不能依赖最后写入者获胜。
延伸阅读:多智能体协作与适用边界。
(6)Skill 的核心价值是什么?
(7)Skill 的核心价值是什么?
Skill 把某一任务所需的触发条件、步骤、边界和资源按需加载,减少系统提示长期塞入所有知识。Auto-coder Skill 应进一步约束仓库规则、修改范围、测试和发布门禁。热更新必须带版本号,让进行中的 run 固定旧版本,新 run 再使用新版本。
(7)可插拔 RAG 与热更新怎样做?
(8)可插拔 RAG 与热更新怎样做?
关联知识点待核实。
先抽象稳定的检索接口和结果 Schema,后端实现通过配置选择;新索引构建完成并通过校验后原子切换别名,旧索引保留回滚窗口。配置中心保存版本与审计,运行中的请求读取一致快照,避免一次请求前后使用两套配置。
(8)本地部署要考虑什么?
(9)本地部署要考虑什么?
关联知识点待核实。
除模型和服务启动外,还要规划 CPU/GPU/内存、模型与索引体积、密钥管理、网络出口、日志脱敏、健康检查、备份恢复和升级回滚。配置按环境分层,敏感值由 Secret 管理,不打进镜像。
学习阅读(不计专题频次):Agent 服务部署、扩缩容与版本发布。可继续了解版本、Kubernetes、探针和灰度等生产部署内容;这些扩展不代表原帖实际问过,也不能替代本地运行约束和配置位置的具体回答。
(9)LangChain 与 LangGraph 有什么区别?
(10)LangChain 与 LangGraph 有什么区别?
关联知识点待核实。
LangChain 提供模型、Prompt、检索器和工具等组件;LangGraph 用图和共享状态表达可循环、可中断、可恢复的长流程。简单链路可直接组合组件,复杂控制流才需要图式运行时。
(10)最长有效括号和股票交易题怎样澄清并求解?
(11)最长有效括号和股票交易题怎样澄清并求解?
关联知识点待核实。
原帖记录了“最长有效括号”和“股票交易”。前者可用栈保存未匹配括号下标,或用动态规划记录以当前位置结尾的最长长度;股票题必须先澄清交易次数、手续费和冷冻期,再选择状态机 DP。
(11)工厂模式有什么优点?
(12)工厂模式有什么优点?
关联知识点待核实。
把对象创建与使用分离,可以集中处理实现选择和初始化,让调用方依赖稳定接口,便于替换与测试。代价是增加抽象与维护成本;只有创建分支、生命周期或扩展需求确实复杂时才值得引入。原帖未给出具体工厂实现,不能补造作者的设计。
(12)第一个项目的后台怎样搭建?
(13)第一个项目的后台怎样搭建?
关联知识点待核实。
从真实需求和职责边界讲起,说明接口、鉴权、数据模型、业务层、任务处理、配置与部署,再用一次请求串起数据流和错误处理。应区分本人完成与复用组件,并展示真实验证证据。原帖只给出这一问,未披露后台技术栈或实现细节,本文不替作者补造架构。