magic-conch,你的第一个Agent

你的第一个AI Agent:亲手创造"魔法海螺"

你好,未来的Agent创造者!

你可能已经和各种AI聊过天,但有没有想过,亲手"创造"一个属于你自己的、独一无二的AI? 这篇教程,就是想带你体验一次这样的创造之旅。我们将从一个有趣的想法开始,用最简单的方式,一步步做出一个能与你对话的"魔法海螺"AI Agent。

别担心,这比你想象的要简单得多!让我们开始吧。


第一步:我们的"魔法"从何而来?

我们都用过聊天机器人,你问它"中国的首都是哪里?",它会回答"北京"。它总是力求给出"正确"的答案。

但,如果我们不想要一个"正确"的答案呢?

如果我们想问:"我今天应该去健身吗?",我们不希望它从科学角度分析,而是希望得到一个像抛硬币一样的、有趣的、随机的"神谕"。

这就是我们创造"魔法海螺"的起点。我们希望AI在某些特定问题上,不要用它自己的"大脑"去思考,而是去使用我们给它的一个"玩具"。

这个想法,就是AI Agent的核心:

Agent = 一个聪明的大模型(大脑) + 我们给它的特殊工具(手脚)

在这个教程里,我们的"工具",就是一个装着很多神秘答案的"魔法海螺"。


第二步:制作我们的"玩具"------一个Python函数

"工具"这个词听起来可能很复杂,但在Agent的世界里,一个最简单的工具,其实就只是一个普通的Python函数

我们的"魔法海螺"工具,它的任务是什么?------从一堆预设的答案里,随机选一个出来。

让我们用代码把它做出来:

python 复制代码
# 导入Python的随机库
import random

# 定义我们的工具函数
def get_magic_answer():
  """当用户问需要运势的问题时,就调用我!"""
  
  # 1. 先准备好一堆神秘的答案
  answers = [
      "也许可以。",
      "最好别。",
      "时机未到。",
      "大胆去做!",
      "换个问题。",
      "我累了,下次再问。"
  ]
  
  # 2. 从里面随机选一个
  chosen_answer = random.choice(answers)
  
  # 3. 把选中的答案返回
  return chosen_answer

看,就是这么简单!这个函数不涉及任何AI,它只是一个纯粹的、可靠的"随机选择器"。

"等等,我怎么让AI知道有这个工具,并且在什么时候用它呢?"

问得好!答案就在函数的第一行,那段被三个引号"""..."""包围的文字里。那叫做文档字符串(docstring),它就是我们为AI准备的"玩具说明书"。我们只需要用最简单的自然语言告诉AI"什么时候用我",聪明的Python SDK就会自动处理剩下所有复杂的事情。


第三步:训练我们的"演员"------编写角色剧本

我们有了"玩具"(工具),现在需要一个"演员"(LLM)来使用它。但默认的LLM就像一个什么都懂的百科全书,这不符合我们"魔法海螺"的神秘气质。

我们需要给这个演员一份**"角色剧本",告诉它应该扮演谁,以及在舞台上应该怎么说、怎么做。这份剧本,就是系统指令(System Prompt)**。

让我们来为"魔法海螺"编写它的角色剧本:

# 角色卡:魔法海螺

你的角色是: 一个神秘、高冷、嘴毒的魔法海螺。

你的台词风格: 你的最终回复,必须以"神奇海螺说:"作为开头。

你的行动指令:

  1. 当遇到需要"占卜"的是/否或选择类问题时,你必须 使用get_magic_answer这个玩具来获得答案,不许自己编造。
  2. 当遇到其他所有问题时(比如让你写代码、或者跟你打招呼),你必须只回答一句话:"这种小事不要来烦我。"

看,这份剧本清晰地定义了AI的性格、说话方式和行动规则。当我们把这份剧本交给LLM后,它就会像一个专业演员一样,惟妙惟肖地扮演起它的角色。


第四步:"开机!"------把所有东西组装起来

现在,我们万事俱备:有了"玩具"(工具函数),也有了"剧本"(系统指令)。是时候把它们都交给我们的"演员",让它开机运行了!

下面是完整的agent.py脚本。你可以看到,它清晰地由我们刚刚讨论的几个部分组成。

python 复制代码
# agent.py

import google.generativeai as genai
import random
import os
import readline # 让输入体验更好

# =====================================================
# 第二步:我们制作的"玩具"
# =====================================================
def get_magic_answer():
  """当用户问需要运势的问题时,就调用我!"""
  print("--- [后台日志] 工具 get_magic_answer 被调用 ---")
  answers = [
      "也许可以。", "最好别。", "时机未到。",
      "大胆去做!", "换个问题。", "我累了,下次再问。"
  ]
  return random.choice(answers)

# =====================================================
# 第三步:我们编写的"剧本"
# =====================================================
system_instruction = ("# 角色\n" 
                    "你是一个神秘、高冷、嘴毒的魔法海螺...(省略,内容如上)")

# =====================================================
# 第四步:把"玩具"和"剧本"交给"演员"并启动
# =====================================================
def run_agent():
  print("正在初始化魔法海螺...")
  
  # 1. 读取API密钥
  api_key = os.getenv("GEMINI_API_KEY")
  if not api_key:
    print("错误:请先设置名为 GEMINI_API_KEY 的环境变量。 ")
    return
  genai.configure(api_key=api_key)

  # 2. 把"玩具"和"剧本"都交给"演员"
  model = genai.GenerativeModel(
      model_name='gemini-2.5-flash',
      system_instruction=system_instruction,
      tools=[get_magic_answer]
  )

  # 3. 开始对话,并允许"演员"自动使用它的"玩具"
  chat = model.start_chat(enable_automatic_function_calling=True)

  print("初始化成功!魔法海螺已就绪。 (输入'exit'退出)")
  
  # 4. 开始与用户循环对话
  while True:
    try:
      user_input = input("\n你问: ")
      if user_input.lower() == 'exit':
        break
      
      # 5. 发送消息,SDK会自动处理所有复杂的"思考-行动"循环
      response = chat.send_message(user_input)
      
      # 6. 打印出"演员"经过思考和表演后的最终台词
      print(f"海螺答: {response.text}")

    except (KeyboardInterrupt, EOFError):
      break

  print("\n魔法海螺消失了...")

# =====================================================
# 运行!
# =====================================================
if __name__ == "__main__":
  run_agent()

如何运行这场"戏剧"

  1. 获取门票 (API密钥) : 访问 Google AI Studio 创建一个免费的API密钥。
  2. 设置后台 (环境变量) : 在你的命令行中,执行 $env:GEMINI_API_KEY="你的API密钥" 来设置密钥。
  3. 准备道具 (安装依赖) : 运行 pip install google-generativeai
  4. 开演 (运行Agent) : 运行 python agent.py

结语:你也是Agent创造者了!

恭喜你!你刚刚已经了解了创造一个AI Agent的全部核心秘密。你会发现,它并不神秘,其本质可以被归结为一个简单的公式:

一个有趣的Agent = 一个独特的想法 + 一系列简单的工具函数 + 一份清晰的角色剧本

现在,你已经是一名Agent创造者了。去把你的更多奇思妙想,变成真正可以与你对话的AI吧!

内容已发布githubblog,可移步浏览哦

相关推荐
许泽宇的技术分享21 小时前
微软Agent框架深度解析:重新定义AI应用开发的革命性架构
microsoft·agent
_t1 天前
关于AI Agent处理大量第三方集成的思路
openai·agent·mcp
DevYK3 天前
企业级Agent开发教程(三)基于LangGraph开发低代码 AI Agent 轻量级开发框架
人工智能·agent
数据智能老司机3 天前
建构 AI Agent 应用——保护代理式系统
架构·llm·agent
大模型真好玩4 天前
大模型Agent开发框架哪家强?12项Agent开发框架入门与选型
人工智能·agent·mcp
数据智能老司机4 天前
建构 AI Agent 应用——Agentic 系统的学习机制
架构·llm·agent
数据智能老司机4 天前
建构 AI Agent 应用——编排
架构·llm·agent
董厂长5 天前
SubAgent的“指令漂移 (Instruction Drift)“困境
人工智能·agent·mcp·subagent
数据智能老司机5 天前
建构 AI Agent 应用——工具调用
架构·llm·agent
大模型真好玩6 天前
深入浅出LangGraph AI Agent智能体开发教程(九)—LangGraph长短期记忆管理
人工智能·python·agent