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,可移步浏览哦

相关推荐
前端双越老师5 小时前
2025 年还有前端不会 Nodejs ?
node.js·agent·全栈
AI大模型19 小时前
RAG 真的不聪明?其实它只是缺了这一步……
程序员·llm·agent
大模型教程19 小时前
普通人如何借助 Agentic RAG 打造全智能化电商客服与客户沟通体系
程序员·llm·agent
聚客AI1 天前
🚫万能Agent兜底:当规划缺失工具时,AI如何自救
人工智能·llm·agent
安思派Anspire1 天前
从 ETL 到 ELT 再到 EAI:AI 如何重塑数据处理
aigc·openai·agent
方始终_1 天前
做一个图表MCP Server,分分钟的事儿?
前端·agent·mcp
聚客AI2 天前
🍬传统工程师转型:智能体架构师的技能图谱
人工智能·agent·mcp
愚者三尺2 天前
AI 应用开发指南:一文带你快速入门 Prompt、RAG、Function Calling、MCP 与 Agent
agent·mcp
ITZHIHONH2 天前
FastGPT源码解析 Agent 智能体插件实现,以获取天气预报为样例
agent·ai编程·插件