Agent 到底是什么?

小蒋2026-06-18 10:19:05

背景:Agent 为什么突然火了?

1. 从“聊天机器人”到“智能体”的跃迁

2023年之前,大众对AI的认知停留在ChatGPT式的一问一答——你提问,它回答,对话结束。这种模式的核心局限在于:模型被“锁”在自己的知识库里,无法主动行动、无法获取实时信息、无法调用外部工具。

2024年开始,Agent(智能体)成为AI领域最热门的概念之一。如果说大模型是“大脑”,那么 Agent 就是给这个大脑装上了手和脚——它不仅能思考,还能主动采取行动来完成目标。

2. 核心驱动力

  • 大模型能力爆发:GPT-4、Claude 3 等模型具备了足够的推理能力

  • 开源框架推动:LangChain、AutoGen、Dify 等框架让普通人也能搭建 Agent


Agent 到底是什么?

一句话定义

Agent 是一个能够自主理解目标、规划步骤、调用工具、执行动作并迭代优化的智能程序。

与传统AI的核心区别

维度传统聊天机器人Agent(智能体)
能力边界只“说”不“做”能“做”事(查天气、发邮件、订票)
交互模式被动响应主动规划与执行
记忆能力单轮/短上下文可保持长期记忆
工具使用可调用任意API/工具
自主决策可拆解任务、试错、调整策略


简单实现示例

import os
import sys

from dotenv import load_dotenv
from langchain.agents import create_agent
from langchain_core.messages import AIMessage, HumanMessage
from langchain_core.tools import tool

# 从项目目录的 .env 文件加载环境变量(如 OPENAI_API_KEY)
load_dotenv()

# 可通过 .env 覆盖,便于切换模型或测试不同问题
DEFAULT_MODEL = os.getenv("OPENAI_MODEL", "openai:gpt-5.4-mini")
DEFAULT_QUERY = os.getenv("AGENT_QUERY", "帮我查一下明天杭州的天气")


@tool
def search_web(query: str) -> str:
    """搜索互联网,用于查询实时信息(天气、新闻等)。"""
    # TODO: 接入真实搜索 API(如 Tavily、SerpAPI)后再返回真实结果
    return f"搜索结果是:关于 {query} 的信息..."


def require_openai_api_key() -> str:
    """检查 OPENAI_API_KEY 是否已配置,未配置则提示并退出。"""
    api_key = os.getenv("OPENAI_API_KEY", "").strip()
    if api_key:
        return api_key

    print(
        "未找到 OpenAI API Key。\n\n"
        "在项目目录创建 .env 文件,写入:\n"
        "   OPENAI_API_KEY=sk-你的密钥\n\n"
        "可选配置:\n"
        "   OPENAI_MODEL=openai:gpt-4o-mini\n"
        "   AGENT_QUERY=你的问题",
        file=sys.stderr,
    )
    sys.exit(1)


def build_agent(model: str = DEFAULT_MODEL, *, debug: bool = False):
    """创建带工具的 ReAct Agent,model 格式为 'openai:模型名'。"""
    return create_agent(
        model,
        tools=[search_web],
        system_prompt="你是助手,需要实时信息时请先调用 search_web 工具。",
        debug=debug,
    )


def extract_reply(result: dict) -> str:
    """从 Agent 返回结果中取出最后一条 AI 回复。"""
    for message in reversed(result["messages"]):
        if isinstance(message, AIMessage) and message.content:
            return message.content
    return "未获取到有效回复。"


def main() -> None:
    require_openai_api_key()

    agent = build_agent(debug=True)
    result = agent.invoke({"messages": [HumanMessage(content=DEFAULT_QUERY)]})
    print(extract_reply(result))


if __name__ == "__main__":
    main()


配置文件(.env)

OPENAI_API_KEY=sk-xxx          # 必填

OPENAI_MODEL=openai:gpt-4o-mini # 可选,默认gpt-5.4-mini

AGENT_QUERY=帮我查一下明天杭州的天气 # 可选,默认查询


注:有些模型需要梯子

Agent 有什么用?(应用场景)

1. 数据分析和报表生成

  • 连接数据库 → 写SQL查询 → 分析数据 → 生成图表 → 输出报告

  • 全程无需人工写代码

2. 自动化工作流

  • 自动抓取竞品价格 → 对比分析 → 发送预警邮件

  • 自动处理客服工单 → 分类 → 回复

3. 软件开发(Devin 类)

  • 自主阅读代码库 → 定位bug → 写修复代码 → 提PR

4. 多Agent协作

  • 一个 Agent 写方案,一个 Agent 审核,一个 Agent 执行

  • 模拟“虚拟公司”运作

曝光2416浏览153