在大模型进入工程化落地阶段后,“会聊天的 AI”已经不再有竞争力。真正有价值的是另一类系统:

能够调用工具、执行任务、完成工作流的 AI Agent

本文将带你用 LangChain 从零构建一个最小可运行 AI Agent,并逐步扩展成工程化结构。


1. AI Agent 到底是什么?

一句话理解:

AI Agent = LLM + 工具 + 推理循环

它的运行流程是:

用户输入
   ↓
LLM 判断是否需要工具
   ↓
选择工具(Tool)
   ↓
执行工具
   ↓
返回结果给 LLM
   ↓
生成最终回答

2. 环境准备

安装依赖:

pip install langchain langchain-openai

3. 初始化 LLM

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-4o-mini",
    temperature=0
)

4. 创建第一个 Tool(工具)

我们先做一个最简单的工具:加法计算器

from langchain.tools import tool

@tool
def add(a: int, b: int) -> int:
    """
    计算两个整数的和
    """
    return a + b

5. 构建 AI Agent

from langchain.agents import initialize_agent, AgentType

tools = [add]

agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True
)

6. 运行你的第一个 Agent

result = agent.run("帮我计算 125 + 879")
print(result)

执行过程(关键)

你会看到类似推理链:

Thought: 需要进行加法计算
Action: add
Action Input: 125, 879
Observation: 1004
Final Answer: 1004

7. 加入真实业务工具

AI Agent 的价值来自“工具扩展”。

我们再加一个用户查询工具:

@tool
def get_user(user_id: str):
    """
    查询用户信息(模拟数据库)
    """
    fake_db = {
        "1001": {"name": "Tom", "status": "active"},
        "1002": {"name": "Jerry", "status": "inactive"}
    }
    return fake_db.get(user_id, {"error": "user not found"})

8. 多工具 Agent

把多个工具注册进去:

tools = [
    add,
    get_user
]

重新构建 Agent:

agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True
)

9. 测试多任务能力

print(agent.run("帮我计算 100 + 200"))
print(agent.run("查询用户 1001 的信息"))

10. Agent 的核心机制拆解

LangChain Agent 本质包含 4 个能力:

① Reasoning(推理)

判断是否需要工具

② Tool Selection(工具选择)

从工具列表中选择合适函数

③ Execution(执行)

调用 Python 函数 / API

④ Feedback Loop(反馈循环)

将结果继续交给 LLM


11. 一个最小完整项目结构

ai-agent-demo/
│
├── app.py              # 主入口
├── llm.py             # 模型初始化
├── tools.py           # 工具定义
└── agent.py           # Agent 构建

llm.py

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-4o-mini",
    temperature=0
)

tools.py

from langchain.tools import tool

@tool
def add(a: int, b: int) -> int:
    return a + b


@tool
def get_user(user_id: str):
    fake_db = {
        "1001": {"name": "Tom"},
        "1002": {"name": "Jerry"}
    }
    return fake_db.get(user_id, "not found")

agent.py

from langchain.agents import initialize_agent, AgentType
from llm import llm
from tools import add, get_user

tools = [add, get_user]

agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True
)

app.py

from agent import agent

print(agent.run("帮我计算 88 + 12"))
print(agent.run("查询用户 1002"))

12. 企业级架构演进

当系统变复杂后,可以升级为:

Frontend
   ↓
API Gateway
   ↓
Agent Service (LangChain)
   ↓
Tool Layer
   ├── DB Service
   ├── HTTP Service
   ├── Search API
   └── Cache Layer

13. 常见坑(非常重要)

❌ 工具太多

→ Agent 会乱选

❌ Prompt 不稳定

→ 输出不可控

❌ 没有权限控制

→ 工具可能被滥用

❌ 长链路性能差

→ 多步调用会变慢


14. 正确的工程化方向

建议升级路径:

Level 1:LangChain Agent

快速验证

Level 2:LangGraph

可控工作流

Level 3:企业 Agent 平台

多 Agent + 审批 + 权限 + 流程编排


15. 总结

AI Agent 的核心不是“更聪明”,而是:

让模型具备执行能力,而不仅仅是回答能力

LangChain 提供了最基础的工程化能力:

  • 工具调用

  • 推理链

  • 多步任务执行