Agents:智能体工作原理
理解 Agent 的 ReAct 循环:思考 → 行动 → 观察,以及 create_react_agent 的使用。
Chain 与 Agent 的区别
Chain 的执行路径是写死的:A → B → C。Agent 则由模型自主决定下一步做什么:它可以多次调用工具、观察结果、修正方向,直到完成任务。
ReAct 循环
最经典的 Agent 范式是 ReAct(Reason + Act):
Thought: 我需要先知道今天的天气 →
Action: 查询天气(北京) →
Observation: 晴,28℃ →
Thought: 信息足够了 →
Final Answer: 北京今天晴,28℃,适合出行。
模型输出"思考 + 行动",框架执行行动并把"观察"结果喂回,循环直到给出最终答案。
一个最小 Agent 示例(LangGraph 版)
pip install langgraph
from langgraph.prebuilt import create_react_agent
def calculator(expr: str) -> str:
"""计算数学表达式"""
return str(eval(expr))
agent = create_react_agent(llm, tools=[calculator])
result = agent.invoke(
{"messages": [("user", "128 乘以 456 再加 17 是多少?")]}
)
print(result["messages"][-1].content)
何时用 Agent,何时用 Chain
- 步骤固定、可枚举 → 用 Chain(更稳定、更便宜、更快);
- 步骤不可预知、需要动态决策 → 用 Agent。
原则:能用 Chain 解决就不要上 Agent。
📝 课后练习
quiz-1 ReAct 范式中一次完整循环的顺序是?