🚀 进击的小飞

进击的小飞 🛸

👋 嗨~这里是一只正在努力升级的程序猿小飞!

记录学习路上的 踩坑顿悟 · 相信 日拱一卒,终有大成 ✨

Agent开发入门:从零搭建我的第一个AI Agent

前几天刷推特看到好多大佬在聊 AI Agent,什么 AutoGPT、LangChain、CrewAI…看得我一脸懵逼 😵‍💫。作为一只菜菜的前端,我决定硬着头皮冲一冲,记录一下我的入坑过程~

🤔 首先,啥是 Agent?

简单说,Agent 就是一个能自己思考 + 自己行动的 AI 程序。我们平时用的 ChatGPT 是「你问一句它答一句」,但 Agent 不一样,你给它一个目标,它会自己拆解任务、调用工具、循环执行,直到把事情搞定!

💡 形象一点:普通 LLM 是问答题选手,Agent 是项目经理—— 它会自己列 plan、分步骤、找工具、最后交付结果。

🧩 Agent 的核心三要素

看了几天论文和开源代码,我总结 Agent 主要由三块组成:

  1. LLM 大脑:负责推理和决策,比如 Claude、GPT-4o。
  2. 工具集 (Tools):搜索引擎、代码执行器、文件读写…让 Agent 能干实事。
  3. 记忆 (Memory):短期记忆(上下文) + 长期记忆(向量数据库),让 Agent 不会「金鱼脑」。

🛠️ 动手:用 Python 搭一个最简 Agent

废话不多说,直接上代码!我用的环境是 Python 3.11 + OpenAI SDK,超级简单 👇

# 一个超级 mini 的 Agent 实现 ✨
from openai import OpenAI

client = OpenAI(api_key="sk-xxx")

# 1. 定义工具:让 Agent 能查天气
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "查询指定城市的天气",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string"}
            },
            "required": ["city"]
        }
    }
}]

# 2. 让模型决定要不要用工具
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user",
               "content": "杭州今天天气怎么样?"}],
    tools=tools
)

# 3. 模型会返回 tool_calls,我们执行它!
print(response.choices[0].message)

跑起来之后我惊了 🤯 —— 模型真的自己判断出要调用 get_weather,并且参数传了 杭州!这就是 Agent 的雏形啊!

💥 踩坑记录(血泪史)

  • 坑1:一开始 API key 直接硬编码在代码里,推到 GitHub 差点被扫号 😭。现在都用 .env + python-dotenv 了。
  • 坑2:Tool 的 description 写得含糊,模型经常选错工具。教训:描述越精确,Agent 越聪明
  • 坑3:忘记处理 tool_calls 为空的分支,程序直接 NPE…调试了两小时 🥲。
🌟 小飞感悟:Agent 开发70% 是 prompt 工程,30% 才是写代码。把工具描述、系统 prompt 写清楚,比堆复杂逻辑重要 100 倍!

🚀 下一步计划

这个 demo 还超级简陋,接下来打算:

  • ✅ 加入 ReAct 循环(Thought → Action → Observation)
  • ✅ 用 ChromaDB 做长期记忆
  • ✅ 接入多模态工具(看图、读 PDF)
  • ✅ 部署成一个微信机器人给同学们玩 🎉

好啦,今天的分享就到这里~ 代码已经传到我的 GitHub 了(链接在文末),欢迎 star⭐ 和提 issue!我们下篇文章见 👋