跳转至

第23章 · AI Agent · 阶段测试题答案

配套测试题: zh/教辅/阶段测试题/第23章.md


一 · 单选题 (8 题)

1.1 A - ReAct = Reason + Act 交替。

1.2 B - ToT 用树结构组织推理。

1.3 C - MCP 是 Anthropic 2024-11 发布。

1.4 B - MCP 三大组件: Resources / Tools / Prompts。

1.5 B - A2A 是 Google 2025 发布。

1.6 B - MemGPT 借鉴 OS 虚拟内存(主存 + 虚存)。

1.7 B - Reflexion 把反思文本存长期记忆, 下次尝试调用。

1.8 B - Voyager 在 Minecraft 实验。


二 · 多选题 (4 题)

2.1 ABCDE - 5 大记忆类型全部正确。

2.2 AB - MCP 跨厂商, Function Calling 是 OpenAI 专有。

2.3 ABCDE - 全部 5 大自进化范式。

2.4 ABCD - 全部 4 大 Computer Use 评测。


三 · 简答题 (5 题)

3.1 ReAct / Reflexion / Voyager 区别

范式 核心机制 适用
ReAct Thought + Action 交替, 单次会话 简单工具调用
Reflexion 失败反思 + 长期记忆, 多轮 编程 / 调试
Voyager 技能库 + 自动课程, 长期 开放游戏 / 探索

3.2 MCP 设计动机

动机: LLM 应用工具接入重复劳动, 跨厂商标准缺失。

组件: Resources (数据) + Tools (函数) + Prompts (模板)。

优势: - 一次开发跨 Claude / Gemini / 本地 - 工具市场 (1000+ MCP Server) - 标准化错误处理

3.3 MemGPT 虚拟内存

类比: LLM 上下文 = 主存, 外部存储 = 虚存。

机制: - LLM 通过系统指令主动管理 - Recall: 把虚存相关数据调入主存 - Archival: 把主存数据持久化到虚存

效果: 突破 Context Window 限制, "无限长期记忆"。

3.4 Computer Use vs Operator v2

维度 Anthropic Computer Use OpenAI Operator v2
发布 2024-10 2025-09
范围 macOS/Linux 桌面 全 OS + 浏览器 + 移动
模型 Claude 3.5 Sonnet GPT-5.6
Context 200K 1M
安全 沙盒 沙盒 + 权限

共同点: 都用视觉 + 工具调用, 都强调安全沙盒。

3.5 企业 RAG Agent 架构

Loader (PDF / Confluence)
   ↓
Splitter (512 token, 重叠 50)
   ↓
Embedder (BGE-large-zh)
   ↓
Vector DB (Milvus) + BM25 → Hybrid
   ↓
Retriever → Re-ranker (BGE-reranker)
   ↓
Generator (Claude 4.5 + System Prompt "引用源")
   ↓
Mem0 (用户偏好)
   ↓
Self-RAG (判断是否重检索)
   ↓
RAGAS 评估 (Faithfulness / Relevance / Citation)

四 · 编程题 (2 题)

4.1 ReAct Agent

class ReActAgent:
    def __init__(self, llm, tools):
        self.llm = llm
        self.tools = tools
        self.history = []

    def run(self, task, max_steps=10):
        self.history = [{"role": "user", "content": task}]
        for step in range(max_steps):
            prompt = f"Task: {task}\nHistory: {self.history}\nNext action (JSON):"
            response = self.llm(prompt)
            action = parse_action(response)
            if action["tool"] == "finish":
                return action["args"]["answer"]
            result = self.tools[action["tool"]](**action["args"])
            self.history.append({"action": action, "result": result})
        return "Max steps exceeded"

4.2 MCP Server

from mcp.server import Server
from mcp.types import Tool, TextContent

server = Server("company-tools")

@server.list_tools()
async def list_tools():
    return [
        Tool(name="search_db", description="搜索企业数据库",
             inputSchema={"type": "object", "properties": {"query": {"type": "string"}}}),
        Tool(name="send_email", description="发送邮件",
             inputSchema={"type": "object", "properties": {"to": {"type": "string"}, "subject": {"type": "string"}, "body": {"type": "string"}}}),
    ]

@server.call_tool()
async def call_tool(name, arguments):
    if name == "search_db":
        result = db.search(arguments["query"])
    elif name == "send_email":
        result = email.send(arguments["to"], arguments["subject"], arguments["body"])
    return [TextContent(type="text", text=str(result))]

五 · 评分标准

题号 分值
单选 ×8 32
多选 ×4 20
简答 ×5 30
编程 ×2 18

六 · 易错点

  1. MCP ≠ Function Calling: 前者是标准协议, 后者是 OpenAI 专有 API
  2. MemGPT = 虚拟内存: 类比 OS, 不是字面"GPT 增强"
  3. Reflexion ≠ Re-prompt: 是反思 + 长期记忆
  4. Computer Use ≠ RPA: AI 推理 vs 固定脚本
  5. Voyager 限于 Minecraft: 不是通用 Agent