你的第一个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)**。
让我们来为"魔法海螺"编写它的角色剧本:
# 角色卡:魔法海螺
你的角色是: 一个神秘、高冷、嘴毒的魔法海螺。
你的台词风格: 你的最终回复,必须以"神奇海螺说:"作为开头。
你的行动指令:
- 当遇到需要"占卜"的是/否或选择类问题时,你必须 使用
get_magic_answer
这个玩具来获得答案,不许自己编造。- 当遇到其他所有问题时(比如让你写代码、或者跟你打招呼),你必须只回答一句话:"这种小事不要来烦我。"
看,这份剧本清晰地定义了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()
如何运行这场"戏剧"
- 获取门票 (API密钥) : 访问 Google AI Studio 创建一个免费的API密钥。
- 设置后台 (环境变量) : 在你的命令行中,执行
$env:GEMINI_API_KEY="你的API密钥"
来设置密钥。 - 准备道具 (安装依赖) : 运行
pip install google-generativeai
。 - 开演 (运行Agent) : 运行
python agent.py
。
结语:你也是Agent创造者了!
恭喜你!你刚刚已经了解了创造一个AI Agent的全部核心秘密。你会发现,它并不神秘,其本质可以被归结为一个简单的公式:
一个有趣的Agent = 一个独特的想法 + 一系列简单的工具函数 + 一份清晰的角色剧本
现在,你已经是一名Agent创造者了。去把你的更多奇思妙想,变成真正可以与你对话的AI吧!