Python入门新手教程:30分钟从零开始创建你的首个AI智能体

2026-06-16阅读 0热度 0
Python

文章目录:

  • Python入门:从零开始写你的第一个AI智能体,30分钟搞定!
    • 一、什么是AI智能体(Agent)?
    • 二、环境准备
    • 三、最小Agent架构:感知-思考-行动
    • 四、给Agent装上"工具箱"
    • 五、Agent核心循环总结
    • 六、下一步学习方向

Python入门:从零开始写你的第一个AI智能体,30分钟搞定!

一、什么是AI智能体(Agent)?

说到AI智能体,很多人第一反应是“能聊天的机器人”,但其实它的定义要更底层一些——一个能够感知环境、自主思考并采取行动的程序。它和传统程序的区别在哪里?看看下面这张对比表就一目了然了。

特征传统程序AI Agent
决策方式预设规则自主推理
环境感知被动接收输入主动获取信息
行动能力固定流程灵活调用工具
学习能力可反馈优化
适应性特定场景通用任务

简单来说,如果说传统程序是一个“执行命令的士兵”,那么AI Agent就是一个“能独立思考的将军”。

二、环境准备

好了,先别急着写代码,咱们得把环境先搭起来。检查一下你的电脑是否满足这些条件:

# 安装Python(建议3.10+) python --version # 创建虚拟环境 python -m venv agent_env source agent_env/bin/activate # Windows用: agent_env\Scripts\activate # 安装必要的库 pip install openai

你需要一个OpenAI API Key(或其他兼容的大模型API),可以在 OpenAI官网 申请。

三、最小Agent架构:感知-思考-行动

一个最简的Agent,本质上就是三个模块的循环:感知→思考→行动。结合下面的流程图更容易理解:

┌─────────────┐ │ 感知环境 │ ← 接收用户输入 / 获取外部信息 └──────┬──────┘ ▼ ┌─────────────┐ │ 思考推理 │ ← 大模型分析、规划、决策 └──────┬──────┘ ▼ ┌─────────────┐ │ 采取行动 │ ← 调用工具、返回结果 └─────────────┘

接下来让我们用代码把这个循环实现出来:

import json from openai import OpenAI class SimpleAgent: """一个最简的AI智能体""" def __init__(self, api_key: str, model: str = "gpt-4o-mini"): self.client = OpenAI(api_key=api_key) self.model = model self.messages = [ {"role": "system", "content": "你是一个有用的AI助手。你可以帮助用户回答问题。"} ] def perceive(self, user_input: str) -> None: """感知:接收用户输入""" self.messages.append({"role": "user", "content": user_input}) def think(self) -> str: """思考:调用大模型进行推理""" response = self.client.chat.completions.create( model=self.model, messages=self.messages, temperature=0.7 ) reply = response.choices[0].message.content self.messages.append({"role": "assistant", "content": reply}) return reply def act(self, user_input: str) -> str: """行动:完整的感知-思考-行动循环""" self.perceive(user_input) return self.think() # 使用示例 if __name__ == "__main__": agent = SimpleAgent(api_key="your-api-key-here") # 第一轮对话 reply = agent.act("你好,请用一句话介绍什么是AI Agent") print(f"Agent: {reply}") # 第二轮对话(Agent有记忆) reply = agent.act("请展开详细解释你刚才说的内容") print(f"Agent: {reply}")

运行结果示例:

Agent: AI Agent(智能体)是一个能够自主感知环境、做出决策并采取行动以实现特定目标的人工智能系统。 Agent: 当然!刚才我提到AI Agent能感知环境、做决策、采取行动。具体来说...

四、给Agent装上"工具箱"

聊天的Agent只是初级版,真正的智能体得会调用工具才行。来,我们给它装上两个实用的“武器”——计算器和天气查询:

import json from openai import OpenAI # 定义工具函数 def calculator(expression: str) -> str: """安全计算数学表达式""" try: allowed = set("0123456789+-*/.() ") if all(c in allowed for c in expression): return str(eval(expression)) return "错误:表达式包含非法字符" except Exception as e: return f"计算错误:{e}" def get_weather(city: str) -> str: """模拟天气查询(实际项目中调用真实API)""" weather_db = { "北京": "晴天,25°C", "上海": "多云,28°C", "深圳": "小雨,30°C", "成都": "阴天,22°C", } return weather_db.get(city, f"暂无{city}的天气数据") # 工具定义(告诉大模型有哪些工具可用) tools = [ { "type": "function", "function": { "name": "calculator", "description": "计算数学表达式的结果,例如 '2 + 3 * 4'", "parameters": { "type": "object", "properties": { "expression": { "type": "string", "description": "要计算的数学表达式" } }, "required": ["expression"] } } }, { "type": "function", "function": { "name": "get_weather", "description": "查询指定城市的天气", "parameters": { "type": "object", "properties": { "city": { "type": "string", "description": "城市名称" } }, "required": ["city"] } } } ] # 工具映射 TOOL_MAP = { "calculator": calculator, "get_weather": get_weather, } class ToolAgent: """带工具调用能力的AI智能体""" def __init__(self, api_key: str, model: str = "gpt-4o-mini"): self.client = OpenAI(api_key=api_key) self.model = model self.messages = [ {"role": "system", "content": "你是一个有用的AI助手,可以帮用户计算和查询天气。"} ] def run(self, user_input: str) -> str: """运行Agent主循环""" self.messages.append({"role": "user", "content": user_input}) while True: # 思考:调用大模型 response = self.client.chat.completions.create( model=self.model, messages=self.messages, tools=tools, tool_choice="auto" ) msg = response.choices[0].message # 如果模型想调用工具 if msg.tool_calls: self.messages.append(msg) for tool_call in msg.tool_calls: func_name = tool_call.function.name func_args = json.loads(tool_call.function.arguments) print(f"[工具调用] {func_name}({func_args})") # 执行工具 result = TOOL_MAP[func_name](**func_args) print(f"[工具结果] {result}") # 把结果告诉模型 self.messages.append({ "role": "tool", "tool_call_id": tool_call.id, "content": str(result) }) # 继续循环,让模型基于工具结果生成回复 else: # 模型直接回复,结束循环 self.messages.append(msg) return msg.content # 运行示例 if __name__ == "__main__": agent = ToolAgent(api_key="your-api-key-here") # 测试计算 print("用户: 帮我算一下 (128 + 256) * 3 的结果") reply = agent.run("帮我算一下 (128 + 256) * 3 的结果") print(f"Agent: {reply}") # 测试天气查询 print("用户: 北京今天天气怎么样?适合出门吗?") reply = agent.run("北京今天天气怎么样?适合出门吗?") print(f"Agent: {reply}")

运行结果:

用户: 帮我算一下 (128 + 256) * 3 的结果 [工具调用] calculator({'expression': '(128 + 256) * 3'}) [工具结果] 1152 Agent: (128 + 256) × 3 的结果是 **1152**。 用户: 北京今天天气怎么样?适合出门吗? [工具调用] get_weather({'city': '北京'}) [工具结果] 晴天,25°C Agent: 北京今天是晴天,气温25°C,非常适合出门!

五、Agent核心循环总结

我们把Agent的运行机制整理成一张表,方便你回顾整个流程:

阶段说明代码对应
感知(Perceive)接收用户输入self.messages.append(user_msg)
思考(Think)调用LLM推理client.chat.completions.create()
决策(Decide)判断是否需要工具msg.tool_calls 检查
行动(Act)执行工具函数TOOL_MAP[func_name](**args)
反馈(Feedback)将结果返回模型messages.append(tool_result)
输出(Output)生成最终回复return msg.content

六、下一步学习方向

恭喜你!你已经亲手搭建了一个完整的AI Agent。接下来可以往这些方向继续深入:

  1. 多轮对话记忆 — 添加长期记忆,让Agent记住之前的对话
  2. RAG检索增强 — 让Agent能查询你的私有文档
  3. 多Agent协作 — 多个Agent分工合作完成复杂任务
  4. ReAct模式 — 让Agent学会"推理-行动"交替循环
免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策