工业级AI Agent - 测试题答案
📝 多智能体协作与长期记忆系统测试答案
第一部分:选择题答案
1. C - 任务分解和智能体编排
解析:CEO Agent作为总控智能体,主要负责将复杂任务分解为子任务,并协调各个专业智能体完成工作。
2. B - 确保任务依赖关系无环
解析:DAG(有向无环图)确保任务流程中不会出现循环依赖,保证任务可以按拓扑顺序执行。
3. C - 情景记忆(Episodic Memory)
解析:情景记忆存储在Milvus向量数据库中,属于长期记忆。短期缓冲区和Redis缓存属于短期记忆。
4. C - 确保输出质量
解析:Review Loop通过"执行-评估-修正"的闭环机制,对不合格的输出进行重做,从而保证质量。
5. B - 生成摘要并存入Milvus
解析:当缓冲区达到阈值时,会触发归档流程:生成对话摘要、向量化、存入Milvus长期存储。
6. C - 实时搜索
解析:做梦服务主要负责记忆整理(聚类、去重、提取洞察、矛盾修正、归档),不负责实时搜索。
7. B - 实现并行执行
解析:asyncio.gather 可以同时执行多个异步任务,提高执行效率。
8. B - 从情景记忆中提取
解析:语义记忆是通过LLM从多条情景记忆中抽象提取出的高层次知识。
9. B - 质量审核员
解析:Critic Agent负责对其他Agent的输出进行质量评估和审核。
10. D - 临时记忆
解析:记忆分层架构包括:短期记忆、情景记忆、语义记忆三层,没有"临时记忆"这个概念。
第二部分:判断题答案
1. 错误
解析:多智能体系统通过专业分工、并行执行和质量把控,更适合处理复杂任务。单体Agent容易出现Context爆炸和注意力分散问题。
2. 错误
解析:SOP必须是DAG(有向无环图),不能有循环依赖,否则会导致死锁。
3. 错误
解析:短期记忆存储在内存缓冲区(Buffer)或Redis中,不是Milvus。Milvus存储的是长期记忆(情景记忆和语义记忆)。
4. 错误
解析:做梦服务应该在系统空闲时(如凌晨)执行,避免影响正常业务。
5. 正确
解析:记忆压缩通过摘要生成等方式减少上下文长度,从而降低token消耗。
6. 错误
解析:无依赖关系的Agent可以并行执行,使用asyncio.gather提高效率。
7. 错误
解析:情景记忆存储的是具体事件(Who, When, What),语义记忆才存储抽象知识和经验法则。
8. 正确
解析:Review Loop机制允许Critic Agent审核输出,对不合格的结果打回重做。
9. 错误
解析:Milvus是向量数据库,不是关系型数据库。
10. 正确
解析:混合检索结合了向量相似度搜索和关键词匹配,提高检索准确性。
第三部分:填空题答案
1.
- Researcher(研究员)
- Analyst(分析师)
- Critic(审核员)
2.
- 情景记忆(Episodic Memory)
- 语义记忆(Semantic Memory)
3.
- Standard Operating Procedure(标准作业程序)
- 执行顺序
4.
- 去重(或:删除重复)
- 矛盾修正(或:解决矛盾)
5.
asyncio.gather
第四部分:简答题答案
1. 多智能体系统相比单体Agent的优势
答案要点:
专业分工:每个Agent专注于特定领域,提高专业性和准确性
- 例如:Researcher专注搜索,Analyst专注分析,各司其职
并行执行:无依赖的任务可以同时执行,提高效率
- 使用
asyncio.gather实现真正的并行
- 使用
质量把控:通过Review Loop机制确保输出质量
- Critic Agent审核,不合格可以重做
可扩展性:易于添加新的专业Agent
- 通过Agent注册机制动态扩展
避免Context爆炸:每个Agent维护独立的上下文
- 不会出现单体Agent的注意力分散问题
评分标准:列举3点及以上,每点解释清楚即可得满分。
2. 记忆管道的工作流程
答案要点:
存储流程:
- 用户输入进入短期缓冲区(Buffer)
- 当缓冲区达到阈值(如8轮对话)时触发归档
- 生成对话摘要,使用LLM压缩关键信息
- 对摘要进行向量化(Embedding)
- 存入Milvus向量数据库作为情景记忆
检索流程:
- 接收查询请求
- 提取查询关键词
- 对查询进行向量化
- 在Milvus中执行混合检索(向量相似度 + 关键词匹配)
- 返回相关的长期记忆 + 短期缓冲区内容
压缩流程:
- 收集短期记忆和检索到的长期记忆
- 如果上下文过长(>1000字符)
- 使用LLM生成压缩摘要
- 保留与当前查询最相关的信息
- 返回压缩后的上下文(减少token消耗)
评分标准:三个环节都解释清楚,流程完整即可得满分。
3. Review Loop机制
答案要点:
定义: Review Loop是一种"执行-评估-修正"的闭环质量控制机制。
工作流程:
- 执行阶段:Agent(如Researcher或Analyst)执行任务
- 评估阶段:Critic Agent审核输出结果
- 对研究内容:检查信源可靠性、信息完整性
- 对分析代码:检查语法正确性、逻辑合理性
- 决策阶段:Critic给出审核结果
- PASS:通过,进入下一环节
- REJECT:拒绝,需要重做
- REVISION:需要修订,提供改进建议
- 修正阶段:如果未通过,将反馈注入上下文,重新执行
质量保证机制:
- 多维度评分(准确性、完整性、清晰度)
- 提供具体的问题列表和改进建议
- 设置最大重试次数(如2次),避免无限循环
- 每次重做都会参考上次的反馈
评分标准:解释清楚定义、流程和质量保证机制即可得满分。
第五部分:代码分析题答案
1. 这段代码实现了什么功能?(3分)
答案: 这段代码实现了基于DAG的SOP任务流执行引擎。它按照拓扑排序的方式执行SOP中的所有节点,确保每个节点在其依赖节点完成后才执行。
关键特性:
- 自动识别无依赖的节点
- 并行执行所有就绪节点
- 检测循环依赖
2. ready 列表中包含的是什么类型的节点?(2分)
答案:
ready 列表包含的是所有依赖已满足的节点,即:
- 该节点的所有依赖节点都已经执行完成(在
executed集合中) - 该节点本身还未执行(在
pending字典中)
这些节点可以立即执行,不需要等待其他节点。
3. 为什么使用 asyncio.gather 而不是循环调用?(3分)
答案:
使用asyncio.gather的原因:
真正的并行执行:
asyncio.gather可以同时执行多个异步任务- 循环调用是串行执行,效率低
性能优势:
1 2 3 4 5 6# 串行:总耗时 = t1 + t2 + t3 for node in ready: await execute_node(node) # 并行:总耗时 = max(t1, t2, t3) await asyncio.gather(*[execute_node(n) for n in ready])充分利用资源:
- 多个Agent可以同时调用API
- 等待IO时不会阻塞其他任务
4. 如果SOP中存在循环依赖,会发生什么?(2分)
答案:
如果存在循环依赖,会抛出RuntimeError("检测到循环依赖")异常。
原因:
- 当存在循环依赖时,所有剩余节点的依赖都无法满足
ready列表为空,但pending字典不为空- 触发
if not ready条件,抛出异常
示例:
| |
附加题答案(选做)
内容创作SOP设计
SOP定义:
| |
DAG流程图:
| |
节点说明:
research节点:
- Agent:Researcher
- 任务:收集主题相关资料
- 依赖:无
- 输出:研究报告
outline节点:
- Agent:Analyst
- 任务:生成文章大纲
- 依赖:research
- 输出:结构化大纲
data_analysis节点:
- Agent:Analyst
- 任务:数据分析和可视化
- 依赖:research
- 输出:图表和分析结果
content_draft节点:
- Agent:Researcher
- 任务:撰写文章内容
- 依赖:outline + data_analysis
- 输出:文章草稿
final_review节点:
- Agent:Critic
- 任务:质量审核
- 依赖:content_draft
- 输出:最终文章
并行执行优化:
- outline和data_analysis可以并行执行(都只依赖research)
- 提高整体执行效率
评分标准:
- 节点定义清晰(3分)
- 依赖关系合理(3分)
- Agent分配恰当(2分)
- 流程图正确(2分)
💡 学习建议:对照答案检查自己的理解,重点关注错误的题目,回到笔记中复习相关知识点。
📝 答案日期:2026-03-26