ai-agent的了解和学习
一、什么是 AI Agent?
AI Agent(人工智能代理) 是指能够感知环境、进行决策、执行动作的智能实体。它可以是软件程序,也可以是机器人系统。与传统 AI 模型(如单纯的大语言模型)不同,AI Agent 具备自主性、反应性、主动性和社交能力。
简单理解:AI Agent 像一个“有目标、能行动、会反思”的智能体,而不仅仅是“回答问题”的模型。
二、AI Agent 的核心组成
一个典型的 AI Agent 包含以下四个关键模块:
| 模块 | 功能描述 |
|---|---|
| 感知模块 | 从环境获取信息(如文本、图像、传感器数据) |
| 决策模块 | 基于当前状态和目标,选择最佳行动(通常由 LLM 或强化学习策略实现) |
| 记忆模块 | 存储历史交互、中间结果、环境状态(短期/长期记忆) |
| 执行模块 | 将决策转化为具体动作(如调用工具、发送请求、移动机器人) |
三、AI Agent 的工作原理
AI Agent 通常运行在一个 感知-规划-行动 的循环中:
-
感知环境:获取当前状态(如用户提问、传感器读数)
-
内部推理:结合记忆与目标,生成计划(如调用 API、查询知识库)
-
执行动作:输出具体操作(如回复、移动、存储数据)
-
反馈更新:观察动作结果,更新记忆或目标
举例:一个旅行规划 Agent
感知:用户说“帮我订一张去北京的机票”
推理:需要查询航班、比对价格、确认时间
执行:调用机票 API 获取数据,生成推荐
反馈:用户选择后完成下单
四、AI Agent 的主要类型
1. 简单反射型 Agent
-
基于当前感知直接响应(条件-动作规则)
-
无记忆,无目标
-
示例:自动恒温器
2. 基于模型的 Agent
-
维护内部世界模型,能处理部分不可见状态
-
示例:扫地机器人(通过传感器构建地图)
3. 基于目标的 Agent
-
不仅考虑当前,还考虑未来行动是否有助于达成目标
-
示例:导航系统(寻找最短路径)
4. 基于效用的 Agent
-
在多个可能目标中选择最优(最大化效用函数)
-
示例:股票交易 Agent(平衡风险与收益)
5. 学习型 Agent
-
能从经验中改进自身行为(强化学习、监督学习)
-
示例:AlphaGo、推荐系统 Agent
五、AI Agent 与大语言模型(LLM)的关系
| 特性 | 纯 LLM | LLM-based Agent |
|---|---|---|
| 输入输出 | 文本 in / 文本 out | 环境状态 in / 动作 out |
| 是否调用工具 | 否 | 是(API、计算器、数据库等) |
| 是否具有记忆 | 有限(上下文窗口) | 可扩展(向量数据库、外部存储) |
| 是否自主规划 | 否 | 是(如 ReAct、CoT、Plan-and-Solve) |
代表框架:LangChain、AutoGPT、BabyAGI、CrewAI
六、AI Agent 的典型应用场景
-
智能客服:自主处理常见问题,升级复杂问题
-
代码开发助手:自动读取仓库、运行测试、修复 bug
-
个人助理:管理日程、发送邮件、预订服务
-
游戏 NPC:具有行为树或强化学习策略的智能角色
-
自动驾驶:感知-规划-控制的闭环系统
-
金融交易:自动化策略执行与风险控制
七、开发 AI Agent 常用技术栈
| 类别 | 工具/框架 |
|---|---|
| 语言模型 | GPT-4、Claude、LLaMA、Qwen |
| 编排框架 | LangChain、AutoGen、Semantic Kernel |
| 记忆管理 | Redis、Chroma、Pinecone |
| 工具调用 | Function Calling(OpenAI)、ReAct 模式 |
| 部署监控 | FastAPI、LangSmith、Weights & Biases |
八、挑战与未来方向
-
长期记忆与上下文融合:如何高效存储和检索经验
-
多 Agent 协作:多个 Agent 如何通信、分工、避免冲突
-
安全与对齐:防止 Agent 产生有害或无意的行动
-
实时性与资源限制:边缘设备上的轻量化 Agent
-
可解释性:让用户理解 Agent 的决策过程
九、总结
AI Agent 是人工智能从“感知理解”走向“自主行动”的关键一步。
它不再是单纯的模型,而是一个具备记忆、规划、工具使用与目标驱动能力的完整系统。
随着 LLM 和强化学习的进步,AI Agent 将在自动化、个性化服务、复杂系统控制等领域发挥越来越重要的作用。
如果你想动手实践,建议从 LangChain 的
create_react_agent开始,构建一个能调用搜索或计算器的简单 Agent。
附录:一句话总结
AI Agent = 感知 + 记忆 + 规划 + 行动 + 目标
它是能够自主完成任务的智能体,是大模型走向“动手能力”的必然形态。
LangChain Agent 代码示例(可直接运行)
pip install langchain langchain-community langchain-openai langchain-ollama
示例 1:使用 OpenAI(需要 API Key)
# 1. 导入必要组件
from langchain.agents import create_react_agent, AgentExecutor
from langchain.tools import Tool
from langchain_openai import ChatOpenAI
from langchain.prompts import PromptTemplate
# 2. 定义工具:计算器
def calculate(expression: str) -> str:
"""接收数学表达式字符串,返回计算结果"""
try:
result = eval(expression) # 注意:生产环境需限制表达式安全性
return str(result)
except Exception as e:
return f"计算错误:{e}"
# 3. 定义工具:模拟搜索(实际可替换为真实API)
def search(query: str) -> str:
"""模拟搜索引擎,返回固定结果(可换成SerpAPI等)"""
# 这里仅作演示,真实场景可调用 Google 搜索 API
if "北京天气" in query:
return "北京今天晴,气温 15~25℃"
else:
return f"未找到关于“{query}”的实时信息,请尝试其他关键词。"
# 4. 将函数封装为 Tool 对象
tools = [
Tool(name="Calculator", func=calculate, description="用于数学计算,输入表达式如 '3+5*2'"),
Tool(name="Search", func=search, description="搜索实时信息,例如 '北京天气'")
]
# 5. 初始化大语言模型(使用 OpenAI)
llm = ChatOpenAI(
model="gpt-3.5-turbo",
temperature=0,
openai_api_key="your-openai-api-key" # 替换为真实 key
)
# 6. 定义 ReAct 风格的提示词模板
react_prompt = PromptTemplate.from_template("""
你是一个能使用工具的智能助手。你可以使用以下工具:
{tools}
工具名称: {tool_names}
你必须严格按照以下格式回答:
Question: 用户的问题
Thought: 你应该思考下一步做什么
Action: 要使用的工具名称,必须是 [{tool_names}] 之一
Action Input: 传递给工具的输入
Observation: 工具返回的结果
... (重复 Thought/Action/Action Input/Observation 最多 N 次)
Thought: 我现在知道最终答案了
Final Answer: 对用户的最终回复
开始!
Question: {input}
Thought: {agent_scratchpad}
""")
# 7. 创建 Agent 和执行器
agent = create_react_agent(llm, tools, react_prompt)
agent_executor = AgentExecutor(
agent=agent,
tools=tools,
verbose=True, # 打印详细思考过程
max_iterations=5, # 防止无限循环
handle_parsing_errors=True
)
# 8. 运行测试
if __name__ == "__main__":
response = agent_executor.invoke({"input": "帮我计算 123 * 456,然后告诉我北京天气怎么样?"})
print("最终答案:", response["output"])
运行效果(verbose=True 会打印中间过程):
> Entering new AgentExecutor chain...
Thought: 用户需要先计算乘积,再查询天气。我先用计算器。
Action: Calculator
Action Input: 123 * 456
Observation: 56088
Thought: 现在查询北京天气。
Action: Search
Action Input: 北京天气
Observation: 北京今天晴,气温 15~25℃
Thought: 我现在知道最终答案了。
Final Answer: 123 * 456 = 56088,北京今天晴,气温 15~25℃。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)