Skip to content
Published on

LLM 智能体与 Agentic AI 完全指南:从 ReAct、多智能体编排到 MCP

分享
Authors

引言 — 从问答机器人到自主行动的智能体

从 2024 年到 2025 年,再到 2026 年的今天,AI 的范式已经从单纯的"问答"聊天机器人,完全转向了自主行动的智能体(Agent)。

LLM 智能体在获得一个目标后,会自行制定计划、调用工具、检视结果,并借此达成目标。Devin 已经能独立解决 GitHub 上的 issue,Claude 也已经能通过点击电脑屏幕来完成任务——这样的时代已经到来。

本指南将从 LLM 智能体的核心概念一路讲到实战落地。


1. 什么是智能体?

传统 LLM 与智能体的区别

传统 LLM 是输入 → 输出的简单结构。而智能体则不同:

  • 感知(Perceive):从环境(工具结果、用户输入、记忆)中收集信息
  • 规划(Plan):决定为达成目标所需的行动序列
  • 行动(Act):调用工具、发起 API 请求、执行代码
  • 反思(Reflect):评估结果并调整下一步行动

智能体的核心组成部分:

组成部分说明
LLM 核心推理与决策引擎
工具(Tools)网页搜索、代码执行、API 等
记忆短期/长期上下文管理
编排器智能体循环控制

2. ReAct 框架:推理 + 行动

什么是 ReAct?

ReAct(Reasoning + Acting)是 Yao 等人在 2022 年提出的框架,LLM 通过反复执行思考(Thought)→ 行动(Action)→ 观察(Observation) 循环来解决问题。

Thought: 分析当前状况,决定下一步行动
Action:tool_name(arguments) 的形式调用工具
Observation: 接收工具执行结果
...重复...
Final Answer: 得出最终答案

为什么 ReAct 能减少幻觉?

普通 LLM 是一次性生成整个答案,因此中途容易"编造"事实。ReAct 通过以下方式加以改善:

  1. 实时依据确认:每一次 Observation 都充当基于事实的锚点
  2. 逐步验证:在确认中间结果的同时及早修正错误
  3. 利用外部知识:在推理过程中用真实工具进行检索/计算

Python 实现示例

from langchain.agents import create_react_agent
from langchain_anthropic import ChatAnthropic
from langchain.tools import DuckDuckGoSearchRun, PythonREPLTool
from langchain import hub

llm = ChatAnthropic(model="claude-opus-4-5", temperature=0)
tools = [DuckDuckGoSearchRun(), PythonREPLTool()]

# 加载 ReAct 提示词模板
prompt = hub.pull("hwchase17/react")

agent = create_react_agent(llm, tools, prompt)

from langchain.agents import AgentExecutor
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

result = agent_executor.invoke({
    "input": "搜索 2026 年目前最受欢迎的 3 个 AI 智能体框架,并制作一张比较表"
})

3. Chain-of-Thought & Tree-of-Thought

Chain-of-Thought(CoT)

CoT 仅凭"让我们一步一步思考"这样一句提示词,就能显著提升 LLM 的推理能力。

cot_prompt = """
请一步一步解决问题:

问题:{problem}

求解过程:
1. 首先整理已给出的信息。
2. 执行所需的计算/推理。
3. 验证中间结果。
4. 得出最终答案。
"""

Tree-of-Thought(ToT)

ToT 在 CoT 的基础上进行扩展,探索路径时采用的是树状结构,并用 BFS/DFS 选出最有希望的路径。

from langchain_experimental.tot.base import ToTChain
from langchain_experimental.tot.thought_generation import ProposePromptStrategy

tot_chain = ToTChain.from_llm(
    llm=llm,
    checker=checker,
    k=3,           # 每一层要生成的分支数
    c=4,           # 评估深度
    verbose=True
)

4. 记忆系统

记忆的 4 种类型

智能体的记忆设计与人类的记忆体系类似:

记忆类型存储位置特征
感觉记忆输入上下文处理当前输入
短期记忆上下文窗口当前对话会话
长期记忆向量数据库 / KV 存储永久性知识存储
情景记忆向量数据库对过去经验建立索引

mem0:长期记忆集成

mem0 是一个为智能体添加个性化长期记忆的开源库。

from mem0 import Memory

# 初始化 mem0(用 Qdrant 作为向量数据库)
config = {
    "vector_store": {
        "provider": "qdrant",
        "config": {
            "collection_name": "agent_memory",
            "host": "localhost",
            "port": 6333,
        }
    },
    "llm": {
        "provider": "anthropic",
        "config": {
            "model": "claude-opus-4-5",
            "temperature": 0,
        }
    }
}

memory = Memory.from_config(config)
user_id = "user_123"

# 存储记忆
memory.add(
    messages=[
        {"role": "user", "content": "我主要用 Python,喜欢 FastAPI"},
        {"role": "assistant", "content": "明白了!我会记住你偏好 Python/FastAPI。"}
    ],
    user_id=user_id
)

# 检索并使用记忆
relevant_memories = memory.search(
    query="用户偏好的语言是什么?",
    user_id=user_id
)

context = "\n".join([m["memory"] for m in relevant_memories])
print(f"相关记忆:{context}")

基于向量存储的情景记忆

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from datetime import datetime

class EpisodicMemory:
    def __init__(self):
        self.embeddings = OpenAIEmbeddings()
        self.store = Chroma(
            collection_name="episodes",
            embedding_function=self.embeddings,
            persist_directory="./episodic_memory"
        )

    def store_episode(self, content: str, metadata: dict = None):
        """将对话/任务片段存储到记忆中"""
        metadata = metadata or {}
        metadata["timestamp"] = datetime.now().isoformat()
        self.store.add_texts([content], metadatas=[metadata])

    def recall(self, query: str, k: int = 3):
        """检索相关片段"""
        docs = self.store.similarity_search(query, k=k)
        return [doc.page_content for doc in docs]

# 使用示例
memory = EpisodicMemory()
memory.store_episode(
    "用户询问了 FastAPI 项目结构相关的问题,并得到了成功的回答",
    {"task_type": "coding", "success": True}
)

5. 工具集成(Tool Integration)

标准工具类别

智能体使用的主要工具:

  1. 网页搜索:Tavily、SerpAPI、DuckDuckGo
  2. 代码执行:Python REPL、Jupyter Kernel
  3. 文件系统:文件读取/写入/搜索
  4. API 调用:REST、GraphQL
  5. 数据库:SQL、向量数据库查询
  6. 计算机控制:屏幕截图、点击、键盘输入

自定义网页搜索工具实现

from langchain.tools import BaseTool
from pydantic import BaseModel, Field
import httpx
from typing import Optional

class WebSearchInput(BaseModel):
    query: str = Field(description="要搜索的查询")
    max_results: int = Field(default=5, description="返回结果的数量")

class TavilySearchTool(BaseTool):
    name: str = "web_search"
    description: str = "在网页上搜索最新信息。需要实时信息时使用。"
    args_schema: type[BaseModel] = WebSearchInput
    api_key: str = ""

    def _run(self, query: str, max_results: int = 5) -> str:
        url = "https://api.tavily.com/search"
        payload = {
            "api_key": self.api_key,
            "query": query,
            "max_results": max_results,
            "include_answer": True,
        }
        response = httpx.post(url, json=payload)
        data = response.json()

        results = []
        if data.get("answer"):
            results.append(f"摘要: {data['answer']}\n")
        for r in data.get("results", []):
            results.append(f"- {r['title']}: {r['content'][:200]}...")
        return "\n".join(results)

    async def _arun(self, query: str, max_results: int = 5) -> str:
        # 异步版本
        async with httpx.AsyncClient() as client:
            response = await client.post(
                "https://api.tavily.com/search",
                json={"api_key": self.api_key, "query": query, "max_results": max_results}
            )
        return self._process_response(response.json())

MCP(Model Context Protocol)

MCP 是 Anthropic 于 2024 年末发布的标准化工具集成协议。此前的 Function Calling 在各家 LLM 上使用的格式各不相同,而 MCP 则通过服务器-客户端模型将工具标准化。

MCP 的核心优势:

  • 可复用性:一次搭建的 MCP 服务器可以与任意 LLM 连接
  • 丰富的上下文:提供 Resources、Prompts、Tools 三种抽象
  • 动态发现:在运行时动态查询可用的工具列表
# MCP 服务器实现示例(Python SDK)
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp import types

app = Server("my-tool-server")

@app.list_tools()
async def list_tools() -> list[types.Tool]:
    return [
        types.Tool(
            name="get_weather",
            description="查询指定城市的当前天气",
            inputSchema={
                "type": "object",
                "properties": {
                    "city": {"type": "string", "description": "城市名"},
                    "units": {"type": "string", "enum": ["celsius", "fahrenheit"]}
                },
                "required": ["city"]
            }
        )
    ]

@app.call_tool()
async def call_tool(name: str, arguments: dict) -> list[types.TextContent]:
    if name == "get_weather":
        city = arguments["city"]
        # 实际调用天气 API
        weather_data = await fetch_weather(city)
        return [types.TextContent(type="text", text=str(weather_data))]

async def main():
    async with stdio_server() as (read_stream, write_stream):
        await app.run(read_stream, write_stream, app.create_initialization_options())

6. LangGraph:基于状态的智能体

LangGraph 是 LangChain 团队打造的基于图的智能体编排框架。与基于 DAG 的 LangChain 表达式语言(LCEL)不同,LangGraph 支持循环(cycle),能够自然地表达智能体循环。

基于状态的智能体实现

from langgraph.graph import StateGraph, END
from langchain_anthropic import ChatAnthropic
from langchain_core.messages import HumanMessage, AIMessage, ToolMessage
from typing import TypedDict, Annotated, Sequence
import operator

# 1. 定义状态
class AgentState(TypedDict):
    messages: Annotated[Sequence, operator.add]
    tool_calls: list
    iteration_count: int

# 2. 设置 LLM 与工具
llm = ChatAnthropic(model="claude-opus-4-5")
tools = [WebSearchTool(), PythonREPLTool()]
llm_with_tools = llm.bind_tools(tools)

# 3. 定义节点
def call_model(state: AgentState) -> AgentState:
    """LLM 调用节点"""
    response = llm_with_tools.invoke(state["messages"])
    return {
        "messages": [response],
        "iteration_count": state["iteration_count"] + 1
    }

def call_tools(state: AgentState) -> AgentState:
    """工具执行节点"""
    last_message = state["messages"][-1]
    tool_results = []

    for tool_call in last_message.tool_calls:
        tool = next(t for t in tools if t.name == tool_call["name"])
        result = tool.invoke(tool_call["args"])
        tool_results.append(
            ToolMessage(content=str(result), tool_call_id=tool_call["id"])
        )
    return {"messages": tool_results}

# 4. 路由函数(条件边)
def should_continue(state: AgentState) -> str:
    last_message = state["messages"][-1]
    # 有工具调用则继续,没有则结束
    if hasattr(last_message, "tool_calls") and last_message.tool_calls:
        if state["iteration_count"] < 10:  # 防止无限循环
            return "tools"
    return "end"

# 5. 构建图
graph = StateGraph(AgentState)
graph.add_node("agent", call_model)
graph.add_node("tools", call_tools)

graph.set_entry_point("agent")
graph.add_conditional_edges(
    "agent",
    should_continue,
    {"tools": "tools", "end": END}
)
graph.add_edge("tools", "agent")  # 工具执行后回到智能体

# 6. 添加记忆检查点
from langgraph.checkpoint.memory import MemorySaver
checkpointer = MemorySaver()
app = graph.compile(checkpointer=checkpointer)

# 执行(用 thread_id 管理对话会话)
config = {"configurable": {"thread_id": "session_001"}}
result = app.invoke(
    {"messages": [HumanMessage(content="搜索并总结 2026 年 AI 智能体的趋势")], "iteration_count": 0},
    config=config
)

7. 多智能体系统

CrewAI:基于角色的多智能体

from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool, FileWriterTool

# 工具设置
search_tool = SerperDevTool()
file_writer = FileWriterTool()

# 智能体定义
researcher = Agent(
    role="AI 研究员",
    goal="深入调研最新的 AI 智能体技术趋势",
    backstory="""你是 AI 领域的专业研究员。
    你会分析最新的论文、博客和 GitHub 仓库,提炼出核心洞见。""",
    tools=[search_tool],
    llm="claude-opus-4-5",
    verbose=True
)

writer = Agent(
    role="技术作家",
    goal="把调研结果写成易读的技术报告",
    backstory="""你是一名擅长把复杂 AI 概念讲清楚的专业作家。""",
    tools=[file_writer],
    llm="claude-opus-4-5",
    verbose=True
)

# 任务定义
research_task = Task(
    description="调研 2026 年 LLM 智能体的 5 大趋势。每个趋势都要包含具体案例和影响。",
    expected_output="5 个趋势的详细分析(每个至少 500 字)",
    agent=researcher
)

writing_task = Task(
    description="基于调研结果撰写一篇技术博客文章。",
    expected_output="一篇 2000 字左右、Markdown 格式的技术博客文章",
    agent=writer,
    output_file="ai_trends_2026.md"
)

# 执行 Crew(顺序流程)
crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, writing_task],
    process=Process.sequential,
    verbose=True
)

result = crew.kickoff()

AutoGen:基于对话的多智能体

AutoGen 是 Microsoft 打造的多智能体框架,其特色在于智能体之间通过对话进行协作

import autogen

config_list = [{"model": "claude-opus-4-5", "api_key": "YOUR_KEY"}]

# 编排智能体
orchestrator = autogen.AssistantAgent(
    name="Orchestrator",
    system_message="""你是负责统筹团队的编排者。
    你会分析任务,并将其委派给合适的专家智能体。
    最后整合所有结果,生成最终答案。""",
    llm_config={"config_list": config_list}
)

# 代码执行智能体
coder = autogen.AssistantAgent(
    name="Coder",
    system_message="你是一名专门编写并执行 Python 代码的专家。",
    llm_config={"config_list": config_list, "functions": [...]}
)

# 用户代理(负责代码执行)
user_proxy = autogen.UserProxyAgent(
    name="UserProxy",
    human_input_mode="NEVER",
    max_consecutive_auto_reply=10,
    code_execution_config={"work_dir": "coding", "use_docker": False}
)

# 执行群聊
groupchat = autogen.GroupChat(
    agents=[orchestrator, coder, user_proxy],
    messages=[],
    max_round=12
)
manager = autogen.GroupChatManager(groupchat=groupchat)
user_proxy.initiate_chat(manager, message="写一段数据可视化的代码")

8. Claude API 的 Tool Use 实现

import anthropic
import json

client = anthropic.Anthropic()

# 工具定义
tools = [
    {
        "name": "get_stock_price",
        "description": "查询指定股票的当前股价和涨跌幅",
        "input_schema": {
            "type": "object",
            "properties": {
                "symbol": {
                    "type": "string",
                    "description": "股票代码(例:AAPL、MSFT)"
                },
                "currency": {
                    "type": "string",
                    "enum": ["USD", "KRW"],
                    "description": "显示货币"
                }
            },
            "required": ["symbol"]
        }
    }
]

def process_tool_call(tool_name: str, tool_input: dict) -> str:
    """工具执行逻辑"""
    if tool_name == "get_stock_price":
        # 实际 API 调用(示例)
        return json.dumps({
            "symbol": tool_input["symbol"],
            "price": 185.92,
            "change_percent": "+2.3%",
            "currency": tool_input.get("currency", "USD")
        })

# 智能体循环
messages = [{"role": "user", "content": "告诉我 Apple 的股价"}]

while True:
    response = client.messages.create(
        model="claude-opus-4-5",
        max_tokens=4096,
        tools=tools,
        messages=messages
    )

    messages.append({"role": "assistant", "content": response.content})

    if response.stop_reason == "end_turn":
        # 提取最终文本回答
        final_text = next(
            block.text for block in response.content
            if hasattr(block, "text")
        )
        print(f"最终答案: {final_text}")
        break

    if response.stop_reason == "tool_use":
        tool_results = []
        for block in response.content:
            if block.type == "tool_use":
                result = process_tool_call(block.name, block.input)
                tool_results.append({
                    "type": "tool_result",
                    "tool_use_id": block.id,
                    "content": result
                })

        messages.append({"role": "user", "content": tool_results})

9. 智能体评估

主要基准测试

基准测试测量领域特征
AgentBench8 个环境(OS、DB、游戏等)基于真实环境的评估
GAIA通用 AI 辅助能力与人类水平的对比
SWE-bench软件工程解决真实的 GitHub issue
WebArena网页导航能力操作真实网站
OSWorld计算机使用能力GUI 交互

Trajectory Evaluation 与 Outcome Evaluation

智能体评估有两个核心视角:

Outcome Evaluation(结果评估):

  • 只衡量最终目标是否达成
  • Pass@k、Success Rate
  • 简单,但会忽略过程

Trajectory Evaluation(路径评估):

  • 评估达成目标的过程(行动序列)
  • 同时衡量效率、安全性、是否存在副作用
  • 在生产环境中是必需的
from dataclasses import dataclass
from typing import List, Optional

@dataclass
class AgentTrajectory:
    task: str
    steps: List[dict]  # {"thought": ..., "action": ..., "observation": ...}
    final_answer: str
    success: bool
    total_tokens: int

def evaluate_trajectory(trajectory: AgentTrajectory) -> dict:
    """基于路径的智能体评估"""
    metrics = {
        "task_success": trajectory.success,
        "efficiency": calculate_efficiency(trajectory.steps),
        "redundant_steps": count_redundant_steps(trajectory.steps),
        "error_recovery": check_error_recovery(trajectory.steps),
        "tool_usage_appropriateness": evaluate_tool_usage(trajectory.steps),
        "cost_efficiency": 1000 / trajectory.total_tokens  # 单位 token 的效率
    }
    return metrics

def count_redundant_steps(steps: List[dict]) -> int:
    """不必要的重复工具调用次数"""
    seen_actions = set()
    redundant = 0
    for step in steps:
        action_key = f"{step.get('action_type')}:{step.get('action_input')}"
        if action_key in seen_actions:
            redundant += 1
        seen_actions.add(action_key)
    return redundant

常见的智能体失败模式

  1. 无限循环:目标达成条件设置有误,导致反复执行
  2. 工具幻觉:调用不存在的工具或参数
  3. 上下文漂移:在长会话中遗忘最初的目标
  4. 过度规划:为简单任务制定不必要的计划
  5. 工具滥用:持续调用不需要的工具

10. 2026 年趋势:Computer-use 与 Coding Agents

Computer-use 智能体

Claude 的 Computer Use API 与 GPT-4o 的计算机控制功能,让智能体能够实际查看并操作电脑屏幕

import anthropic
import base64
from PIL import ImageGrab

def take_screenshot() -> str:
    """截取屏幕并进行 base64 编码"""
    screenshot = ImageGrab.grab()
    screenshot.save("/tmp/screenshot.png")
    with open("/tmp/screenshot.png", "rb") as f:
        return base64.b64encode(f.read()).decode()

client = anthropic.Anthropic()

# Computer-use 智能体
response = client.messages.create(
    model="claude-opus-4-5",
    max_tokens=4096,
    tools=[
        {"type": "computer_20241022", "name": "computer", "display_width_px": 1920, "display_height_px": 1080},
        {"type": "text_editor_20241022", "name": "str_replace_editor"},
        {"type": "bash_20241022", "name": "bash"}
    ],
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "打开浏览器,查看 GitHub 上最新的热门仓库"},
            {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": take_screenshot()}}
        ]
    }]
)

Coding Agents:Devin 与 SWE-agent

以 SWE-bench 为标准,2026 年最新编码智能体的表现:

智能体SWE-bench Verified特征
Claude Code~72%终端集成、理解代码库
Devin 2.0~65%完整的开发工作流
SWE-agent~58%开源、面向研究
Aider~55%专注本地代码库

11. OpenAI Assistants API

from openai import OpenAI
import time

client = OpenAI()

# 创建 Assistant(包含工具 + 知识库)
assistant = client.beta.assistants.create(
    name="AI 技术分析师",
    instructions="你是一名 AI/ML 技术专家。请分析最新的论文和技术文档,提供洞见。",
    model="gpt-4o",
    tools=[
        {"type": "file_search"},   # 基于文件的 RAG
        {"type": "code_interpreter"}  # 代码执行
    ]
)

# 上传文件并创建向量存储
vector_store = client.beta.vector_stores.create(name="AI 论文库")
with open("ai_papers_2026.pdf", "rb") as f:
    client.beta.vector_stores.file_batches.upload_and_poll(
        vector_store_id=vector_store.id,
        files=[("ai_papers_2026.pdf", f)]
    )

# 创建 Thread 并添加消息
thread = client.beta.threads.create()
client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content="从已上传的论文中分析 Agentic AI 的主要局限性"
)

# 执行 Run 并等待结果
run = client.beta.threads.runs.create(
    thread_id=thread.id,
    assistant_id=assistant.id
)

while run.status in ["queued", "in_progress"]:
    run = client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id)
    time.sleep(1)

# 输出结果
messages = client.beta.threads.messages.list(thread_id=thread.id)
print(messages.data[0].content[0].text.value)

小测验:核心概念确认

Q1. ReAct 框架中,Thought-Action-Observation 循环减少幻觉的原理是什么?

答案:通过实时外部依据进行逐步验证

解析:普通 LLM 是一次性生成整个答案的,因此中途容易"编造"事实。ReAct 在每一个推理步骤都会调用真实的工具(搜索、计算等),并用 Observation 来核实依据。这些真实的结果会充当"事实锚点",防止后续推理在没有依据的情况下偏离方向。此外,由于中间步骤被明确记录了下来,出错的位置也更容易被找到并修正。

Q2. LangGraph 中带有循环(cycle)的图,与基于 DAG 的 LangChain 有什么不同?

答案:能够实现基于状态的迭代执行与动态路由

解析:LangChain 的 LCEL 是有向无环图(DAG),一旦执行就无法回退。LangGraph 支持循环,因此能自然地表达"调用工具 → 确认结果 → 重试"这类智能体循环。条件边(conditional edge)会根据当前状态动态决定下一个节点,检查点(checkpointer)则会把状态持久化保存,从而在多个会话之间维持记忆。这相当于把人类"尝试—出错—修正"的思考过程,用代码表达了出来。

Q3. 为什么 MCP(Model Context Protocol)比传统的 Function Calling 更灵活?

答案:标准化的服务器-客户端架构,形成了独立于 LLM 的工具生态

解析:传统的 Function Calling 中,OpenAI、Anthropic、Google 各自使用不同的格式,因此工具会与特定 LLM 绑定。MCP 定义了基于 stdio 或 HTTP 的标准协议,因此一次搭建的 MCP 服务器可以在所有支持 MCP 的客户端(Claude、Cursor、VS Code 等)中复用。除了 Tools(可执行的函数)之外,MCP 还提供了 Resources(文件、数据库等数据)和 Prompts(可复用的提示词模板)两种抽象,为智能体提供更丰富的上下文。

Q4. 在多智能体系统中,把编排器与执行智能体分离开有什么好处?

答案:关注点分离、专业化、并行处理、错误隔离

解析:编排器只专注于整体的计划制定与协调,而执行智能体则专精于特定领域(编码、搜索、写作等)。好处包括:(1)每个智能体都能被独立优化;(2)多个执行智能体可以并行工作,提升速度;(3)某一个智能体的失败不会导致整个系统停止(错误隔离);(4)可以轻松新增专业智能体(可扩展性);(5)每个智能体的行为都能被独立审计/记录。

Q5. 在智能体评估中,trajectory evaluation 与 outcome evaluation 有什么区别?

答案:Outcome 只看最终是否成功,Trajectory 还会评估过程的效率与安全性

解析:Outcome Evaluation 只衡量目标是否达成(0 或 1)。它很简单,但即便是通过糟糕的过程达成正确结果、或者存在副作用,也照样能通过。Trajectory Evaluation 会分析整个行动序列:是否存在不必要的步骤(效率)、是否有不安全的行为(安全性)、错误是否被恰当地恢复、token/API 成本是否合理等,进行综合评估。生产环境中的智能体必须把"即便达成了目标,但代价过高或存在副作用"也判定为失败,因此 Trajectory Evaluation 是不可或缺的。


结语

LLM 智能体如今已经越过研究阶段,正在实际生产环境中创造价值。2026 年的核心趋势:

  1. Computer-use 智能体:能够查看屏幕并直接操作的通用智能体
  2. 长期记忆的标准化:mem0、Zep 等记忆层逐渐普及
  3. MCP 生态扩张:数千个 MCP 服务器与工具
  4. 智能体安全性:智能体行为审计、权限限制、人工监督
  5. 多模态智能体:文本、图像、音频的一体化处理

接下来,不妨挑战一下用 LangGraph 构建生产级智能体,或者动手开发一个 MCP 服务器!