本文是程序员转行学习AI大模型的第15个核心知识点笔记,附清晰业务流程示例。 当前阶段:还在学习知识点,由点及面,从0到1搭建AI大模型知识体系中。 系列更新,关注我,后续会持续记录分享转行经历~
概念
Agent:能够感知环境、做出决策、执行行动的智能系统。在 LLM 领域,Agent 是指能够调用工具、执行复杂任务的 LLM 应用。
LLM 核心组件:
- LLM:智能体的大脑部分,负责推理决策、理解意图、生成计划等;
- 工具(Tools):外部 API 调用;
- 记忆(Memory):分为长期记忆(向量数据库)、短期记忆(上下文);
- 规划(Planning):拆解任务、步骤排序、动态调整;
举例说明,当我们对 Agent 说:帮我查一下明天北京的天气,如果是雨天,请帮我写个提醒发给小王。
Agent 收到这句话后,内部是这样运行的:
- LLM:根据输入,分析出两个任务:查天气、发提醒;
- 规划:先查天气->判断是否下雨->如果是,写提醒->发送;
- 工具:调用“工具查询工具”,明天北京下雨;
- 记忆:去通讯录(记忆库)里找“小王”的联系方式;
- 工具:调用“发送消息工具”,把提醒发出去。
Agent 执行流程:
Agent 示例
# 简单AI Agent示例
import random
# 1. 工具定义
def get_weather(city):
"""模拟天气查询工具"""
weather_options = ["晴", "多云", "小雨", "大风"]
temperature = random.randint(15, 35)
return f"{city}的天气是{random.choice(weather_options)},气温{temperature}℃。"
def simple_calculator(a, b, operator):
"""简单计算器工具"""
if operator == '+':
return f"{a} + {b} = {a + b}"
elif operator == '-':
return f"{a} - {b} = {a - b}"
else:
return "暂不支持此运算。"
# 2. 记忆(用列表模拟短期对话历史)
conversation_history = []
# 3. 核心Agent循环
def run_simple_agent():
print("【简单AI Agent已启动】输入'退出'来结束对话。")
while True:
# 感知
user_input = input("\n您:")
conversation_history.append(f"用户:{user_input}")
if user_input.lower() in ["退出", "exit", "quit"]:
print("Agent:再见!")
break
# 决策与行动
response = ""
if "天气" in user_input:
# 简单提取城市名(实际应用需要更复杂的NLP)
city = "北京" # 默认城市
for c in ["北京", "上海", "广州"]:
if c in user_input:
city = c
break
response = get_weather(city)
elif "计算" in user_input or "+" in user_input or "-" in user_input:
# 非常简单的模式匹配
try:
if "1+1" in user_input:
response = simple_calculator(1, 1, '+')
elif "10-5" in user_input:
response = simple_calculator(10, 5, '-')
else:
response = "请尝试输入'计算1+1'或'计算10-5'。"
except:
response = "计算时出错了。"
else:
# 默认的对话回应
default_responses = [
"我理解您的意思了。",
"这是一个有趣的话题。",
"我目前还在学习中,可以试试问我天气或简单计算。",
"嗯,请继续。"
]
response = random.choice(default_responses)
# 记录并输出行动结果
print(f"Agent:{response}")
conversation_history.append(f"Agent:{response}")
# 打印本次对话历史
print("\n=== 本次对话历史 ===")
for line in conversation_history:
print(line)
# 4. 启动Agent
if __name__ == "__main__":
run_simple_agent()
学习资料:GitHub - datawhalechina/hello-agents: 📚 《从零开始构建智能体》——从零开始的智能体原理与实践教程