程序员转行学习 AI 大模型: Agent(智能体)| 附完整可运行代码

0 阅读3分钟

本文是程序员转行学习AI大模型的第15个核心知识点笔记,附清晰业务流程示例。 当前阶段:还在学习知识点,由点及面,从0到1搭建AI大模型知识体系中。 系列更新,关注我,后续会持续记录分享转行经历~

概念

Agent:能够感知环境、做出决策、执行行动的智能系统。在 LLM 领域,Agent 是指能够调用工具、执行复杂任务的 LLM 应用。

LLM 核心组件:

  1. LLM:智能体的大脑部分,负责推理决策、理解意图、生成计划等;
  2. 工具(Tools):外部 API 调用;
  3. 记忆(Memory):分为长期记忆(向量数据库)、短期记忆(上下文);
  4. 规划(Planning):拆解任务、步骤排序、动态调整;

举例说明,当我们对 Agent 说:帮我查一下明天北京的天气,如果是雨天,请帮我写个提醒发给小王。

Agent 收到这句话后,内部是这样运行的:

  1. LLM:根据输入,分析出两个任务:查天气、发提醒;
  2. 规划:先查天气->判断是否下雨->如果是,写提醒->发送;
  3. 工具:调用“工具查询工具”,明天北京下雨;
  4. 记忆:去通讯录(记忆库)里找“小王”的联系方式;
  5. 工具:调用“发送消息工具”,把提醒发出去。

Agent 执行流程:

图1 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: 📚 《从零开始构建智能体》——从零开始的智能体原理与实践教程

从原理到实践:万字长文深入浅出教你优雅开发复杂AI Agent

飞行社

AI Agent(智能体) 教程 | 菜鸟教程