AI Agent开发入门:Turtle和Gemma实战教程
用Turtle和Gemma框架讲解AI Agent的概念和实现。对想学习Agent开发的程序员有帮助。
用Turtle和Gemma框架讲解AI Agent的概念和实现。对想学习Agent开发的程序员有帮助。
如果你像我一样,最初的"编程"体验可能涉及一个闪闪发光 CRT 显示器上的小三角形。你输入 FORWARD 100,看着小乌龟在屏幕上画了一条线。那就是纯粹的魔法。你在让计算机做事。(参见:Logo 编程语言)
最近,我通过一个叫 Turtle-Gemma 的项目重新发现了这种魔力,它将那种童年时代的魔法带到了现代 AI 的世界。
与其输入命令,你只需在浏览器中点击麦克风并说:"嘿,给我画一个红色的星星。"过几秒钟后,一个 AI agent 会编写 Logo 代码、执行它,并将你的请求画在数字画布上。
这是一个有趣的小项目,但它不止如此:它是理解现代 AI "Agent" 实际工作方式的最有效方法之一。让我们窥探一下它的工作原理。
将多项不同技术整合到一个无缝循环中有一种特殊的满足感。这正是 Turtle-Gemma 所做的。
如果你看这个架构,它是一个非常简洁的管道:
The Ears(耳朵):一个 Gradio web 界面捕捉你的语音或文字请求。
The Brain(大脑):Google 的 Gemma 模型接收输入并充当一个 agent。
The Hands(双手):一个自定义构建的"无界面"乌龟引擎(turtle_engine.py)接收 agent 的指令并将其绘制到 PIL(Python Imaging Library)图像上。
作为一个制造者,我热爱这一点。这提醒我们,你不需要一个庞大的企业级技术栈就能构建一个感觉很前沿的东西。一个干净的 Python 环境、一个开源权重的模型,以及一个简单的 UI 库就足以将一个口头想法转化为渲染的图像。
如果你最近在 AI 领域有所接触,你可能听说过"Agentic Workflows(Agent 工作流)"或"Tool Calling(工具调用)"这些术语。它们听起来很沉重且令人生畏。通常,它们描述的是 AI 查询数据库、解析 JSON 或获取天气 API——这些任务很强大,但在实际应用中几乎是看不见的。
Turtle-Gemma 是工具调用的完美可视化工具。
当你要求 Gemma"画一个红色的星星"时,这个模型不仅仅是输出一个原始图像文件。它必须思考所需的步骤,并使用给定的"工具"。在这种情况下,这些工具实际上就是 move_turtle()、turn_turtle()、set_pen_state() 和 set_pen_color()(参考:turtle-gemma/config.py)。
你可以看到 AI 大声推理:
"用户想使用乌龟图形画一个红色的星星。一个星星是一个多边形,通常通过反复向前移动并转动特定角度来绘制。"
Tool Call 1: set_pen_color("red")
Tool Call 2: move_turtle(100)
Tool Call 3: turn_turtle(144)
通过强制 LLM 在画布上输出物理的、有序的步骤,AI 推理的抽象"黑箱"变得完全可视化。如果 AI 产生幻觉或搞错了逻辑,你不会得到一个无声的代码崩溃——你会得到一个奇怪的、不对称的星星,而不是完美的星星。你在实时观看模型的思考过程。
当然,因为这是一个试图在 2D 空间中导航的 AI,事情并不总是完美的——这也是乐趣所在。
提示词:draw a x-mas tree
有时你会要求画一棵圣诞树,AI 会忘记画树干,导致一个歪斜的三角形,下面有一条绿线射出来。有时它可能会对自己的当前方向稍微感到困惑,并绘制奇怪的线条。
这些小"错误"令人难以置信地惹人喜爱。它们提醒我们,LLM 不是无所不能的魔法大脑;它们是推理引擎,尽力将语言映射到几何图形。
我们花了那么多时间将 AI 用于严肃的任务——写电子邮件、调试服务器或解析电子表格。Turtle-Gemma 是一个很好的提醒,说明用 AI 编程仍然可以只是为了娱乐。
提示词:draw a gangnam style
如果你想看到工具调用的实际应用,或者你只是想体验将形状说出来的喜悦,我强烈推荐你克隆这个仓库,启动 Gradio 应用,并自己试试看。
告诉乌龟去画一个星星。这可能会让你微笑。