Agent的范式

Agent(智能体)的范式

范式 (Paradigm) 是一种通用的模式、思路或框架,用来指导我们如何理解和解决问题。每种范式背后有不同的思路、优缺点和适用场景,但它们解决的是同一个问题。

Agent(智能体)是指一个能自主感知环境、做出决策、采取行动来完成目标的系统。

在大模型语境下,Agent 通常指的是:

一个以 LLM 为"大脑",配合记忆、工具、规划能力 ,能够自主完成任务的系统。

它不只是"你问一句我答一句"的聊天机器人,而是能:

  • 主动分解任务
  • 调用外部工具(搜索、代码执行、API 等)
  • 根据中间结果调整策略 多步执行直到完成目标

一、按推理模式划分

1. ReAct(Reasoning + Acting)

核心思想 :在于"思考-行动-观察 "(Thought-Action-Observation)循环机制,形成 Thought → Action → Observation 的循环。
特点 :每一步都先思考当前状态,再决定下一步行动,观察结果后继续推理。
优势 :推理过程可解释,行动有依据。使Agent能根据环境反馈 动态调整策略。
缺点:缺乏全局规划;Token 消耗大;Prompt 敏感。

代表:Yao et al. 2022 的 ReAct 论文。

ReAct Agent:原理、应用与实战指南

2. Plan-and-Execute(先规划后执行)

核心思想 :先制定全局计划,再逐步执行。
特点 :将任务分解为子任务序列,按计划顺序或并行执行。
优势 :适合复杂、多步骤任务;减少盲目试错。
变体:可以是静态规划(一次性规划),也可以是动态规划(执行中根据反馈调整计划)。

bash 复制代码
# LangGraph 实现 Plan-and-Execute 的核心结构
from langgraph.graph import StateGraph

def plan(state):
    """生成计划"""
    ...

def execute_step(state):
    """执行当前子任务"""
    ...

def replan(state):
    """判断是否需要调整计划"""
    ...

def should_continue(state):
    """是否还有未完成的子任务"""
    if state["remaining_steps"]:
        return "execute"      # 继续执行下一个子任务
    else:
        return "finish"       # 全部完成

# 构建图
graph = StateGraph(State)
graph.add_node("plan", plan)
graph.add_node("execute", execute_step)
graph.add_node("replan", replan)

graph.add_edge("plan", "execute")
graph.add_conditional_edges("execute", should_continue, {
    "execute": "execute",
    "finish": END
})

app = graph.compile()

3. Reflexion(自我反思)

核心思想:Agent 执行后对结果进行自我评估和反思,将反思结论作为经验用于下一轮迭代。

特点:形成"执行 → 反思 → 改进"的闭环。

优势:能够从错误中学习,无需梯度更新参数。

代表:Shinn et al. 2023 的 Reflexion 论文。

bash 复制代码
from typing import TypedDict, List
from langgraph.graph import StateGraph, END
from openai import OpenAI

client = OpenAI()

# ========================
# 1. 定义状态
# ========================
class ReflexionState(TypedDict):
    task: str
    output: str
    reflections: List[str]       # 历史反思记录
    evaluation_pass: bool
    feedback: str
    iteration: int
    max_iterations: int


# ========================
# 2. 定义节点
# ========================

def execute(state: ReflexionState) -> dict:
    """执行节点:生成回答"""
    prompt = f"任务:{state['task']}"
    if state["reflections"]:
        prompt += "\n\n过往经验(请避免重复犯错):\n"
        for i, r in enumerate(state["reflections"], 1):
            prompt += f"  第{i}次教训:{r}\n"

    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": "你是一个有帮助的助手。"},
            {"role": "user", "content": prompt}
        ]
    )
    output = response.choices[0].message.content

    return {
        "output": output,
        "iteration": state["iteration"] + 1
    }


def evaluate(state: ReflexionState) -> dict:
    """评估节点:检查输出质量"""
    import json

    prompt = f"""评估以下回答是否正确解决了任务。

任务:{state['task']}
回答:{state['output']}

返回 JSON:
- "pass": true/false
- "feedback": 不通过时的具体问题
"""
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": "你是严格评审员,用 JSON 回答。"},
            {"role": "user", "content": prompt}
        ],
        response_format={"type": "json_object"}
    )
    result = json.loads(response.choices[0].message.content)

    return {
        "evaluation_pass": result["pass"],
        "feedback": result.get("feedback", "")
    }


def reflect(state: ReflexionState) -> dict:
    """反思节点:总结失败原因"""
    prompt = f"""任务失败了,请反思原因。

任务:{state['task']}
你的回答:{state['output'][:500]}
评审反馈:{state['feedback']}

总结改进策略(不超过 3 句话):
"""
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": "你是善于总结经验的反思者。"},
            {"role": "user", "content": prompt}
        ]
    )
    new_reflection = response.choices[0].message.content

    return {
        "reflections": state["reflections"] + [new_reflection]
    }


# ========================
# 3. 定义条件路由
# ========================

def route_after_evaluate(state: ReflexionState) -> str:
    if state["evaluation_pass"]:
        return "end"
    elif state["iteration"] >= state["max_iterations"]:
        return "end"
    else:
        return "reflect"


# ========================
# 4. 构建图
# ========================

graph = StateGraph(ReflexionState)

graph.add_node("execute", execute)
graph.add_node("evaluate", evaluate)
graph.add_node("reflect", reflect)

# 流程:execute → evaluate → (end | reflect → execute)
graph.set_entry_point("execute")
graph.add_edge("execute", "evaluate")
graph.add_conditional_edges("evaluate", route_after_evaluate, {
    "end": END,
    "reflect": "reflect"
})
graph.add_edge("reflect", "execute")

app = graph.compile()


# ========================
# 5. 运行
# ========================
result = app.invoke({
    "task": "用 Python 实现一个 LRU Cache,要求 get 和 put 操作都是 O(1)",
    "output": "",
    "reflections": [],
    "evaluation_pass": False,
    "feedback": "",
    "iteration": 0,
    "max_iterations": 3
})

print("最终输出:", result["output"])
print("总轮次:", result["iteration"])
print("反思记录:", result["reflections"])

4. Chain-of-Thought / Tree-of-Thought(思维链/思维树)

CoT:逐步推理,每步展示推理过程。

ToT:探索多条推理路径,通过搜索(如 BFS/DFS)找到最优路径。

LATS:将蒙特卡洛树搜索(MCTS)与 LLM 结合,适用于需要深度探索的场景。

二、按架构设计划分

5. 单智能体(Single Agent)

一个 LLM 配备工具和记忆,独立完成任务。

典型实现:ReAct Agent、Function Calling Agent。

6. 多智能体系统(Multi-Agent)

多个 Agent 协作或竞争完成任务,常见模式:

模式 描述 代表框架
协作式 多个角色分工合作(如产品经理、程序员、测试员) CrewAI、AutoGen
辩论式 多个 Agent 各自推理,通过辩论达成共识 ChatEval
层级式 一个总控 Agent 调度多个子 Agent LangGraph、MetaGPT 竞争式 多个 Agent 独立求解,取最优结果 ---

7. 工作流式(Workflow-based / Agentic Workflow)

核心思想:用预定义的 DAG(有向无环图)或状态机编排 Agent 的执行流程。

特点:比完全自主的 Agent 更可控、更可预测。

代表:LangGraph、Dify、Coze 等平台。

与纯 Agent 的区别:不是让 Agent 完全自主决策,而是在关键节点由人或规则控制流程走向。

三、按交互与能力划分

8. 工具增强型(Tool-Augmented Agent)

Agent 可以调用外部工具(搜索引擎、代码执行器、API、数据库等)。

本质是将 LLM 从"纯文本生成器"扩展为"能与外部世界交互的系统"。

代表:OpenAI Function Calling、LangChain Tools。

9. 计算机使用型(Computer Use Agent)

Agent 直接操作计算机界面(点击、输入、截图等)。

代表:Anthropic 的 Computer Use、OpenAI 的 Operator。

10. 检索增强型(Agentic RAG)

Agent 主动决定何时检索、检索什么、如何整合检索结果。

与传统 RAG 的区别:传统 RAG 是"先检索后生成"的固定流程,Agentic RAG 让 Agent 自主判断是否需要检索以及如何使用检索结果。

11. 自主智能体(Autonomous Agent)

Agent 有长期目标,自主分解任务、持续执行、记忆积累。

代表:AutoGPT、BabyAGI、Devin。

特点:目标驱动,最少人工干预,但可控性是挑战。

相关推荐
2601_957780841 小时前
GPT-5.5时代:从“指令集“到“任务契约“的Prompt工程范式迁移
大数据·人工智能·gpt·架构·prompt
小村儿1 小时前
连载
前端·后端·ai编程
求学中--2 小时前
DeepSeek V4 API实战:从零搭建AI编程助手全流程
人工智能·ai编程
西西弗Sisyphus2 小时前
从零实现 Transformer:第 0 部分 - 基础( Foundations)view 重塑形状 和 transpose 交换维度顺序
transformer·embedding·view·transpose·multi-head
ai超级个体2 小时前
前端唯一的护城河?结合 AI 将字节组件库 Headless 化后的感想~
前端·react·ai编程·ant design·组件库·vibe coding
winlife_2 小时前
AI 怎么验证 Unity PlayMode 行为:截图 + 输入模拟的完整闭环
人工智能·unity·游戏引擎·ai编程·claude·playmode
千里马学框架2 小时前
WMS/AMS深入WindowState如何正确找到自己在层级结构树中位置进行挂载
android·wms·ai编程·性能·系统开发·车载开发·framework工程师
LinDaiDai_霖呆呆2 小时前
做 Agent 开发入门必懂的 10 个 Agent 核心概念
前端·agent·ai编程
南宫乘风3 小时前
从 Prompt 到工程化能力:写好 AI Agent Skill 的实践方法
prompt·skills