Agent 到底是什么?
背景: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 执行
模拟“虚拟公司”运作
请先 登录后发表评论 ~