Transcript
00:00:00大家好,这是 Agent 比较 Open Code 的演示,我们将测试这些
00:00:09在这个例子上测试两个框架。这是我在之前的视频中
00:00:20通过“Vibe Coding”编写的游戏。是的,在这个视频中,我想测试如何修复这个游戏,
00:00:29因为存在一些漏洞。例如,如你所见,X 标记赢得了
00:00:38比赛,但单元格没有被高亮显示。我们将尝试使用本地 LLM 进行同样的修复,
00:00:51也就是 Qwen 2.5 32B 3B,在我看来,这是目前
00:01:04你可以在电脑上运行的最好的模型。所以让我们先尝试 Pi,
00:01:16这是 Pi,我将在包含源码的目录中运行它,
00:01:30源码分布在不同的文件中:有 index.html、game.js 和 style.js。我们将尝试
00:01:42在两个框架中使用相同的提示词,并比较结果。我还会
00:01:55使用计时器来看看完成这项任务需要多长时间。这就是提示词。
00:02:11提示词是:让单元格方块更明显,并在它们之间添加间距,
00:02:19因为如你所见,这些方块彼此靠得非常近。然后我们有
00:02:28第二个任务,即改进获胜逻辑:获胜的标记应该
00:02:37变成绿色。这是另一个问题,因为你看不出
00:02:46玩家是在哪里获胜的。是的,它开始遵循我的提示词了,这就是
00:02:59Pi,它开始分析当前目录,在这里你可以看到
00:03:09使用的上下文。不过,也许看看修复游戏所花费的
00:03:20时间会更有趣。是的,它正在工作。然后我们将使用
00:03:30Open Code 执行相同的任务,我会重置仓库以进行同样的测试。现在我将
00:03:41暂停一下视频,等它修复完游戏后再见。
00:04:00好的,完成了。它还在写变更报告,然后我们将测试
00:04:20结果。好的,完成了。使用 Qwen 2.5 耗时 7 分 44 秒。让我们
00:04:38看看结果。这是报告,也就是代码中在技术层面上
00:04:47发生了什么。如你所见,它多次读取了 game.js 的
00:04:58多个部分。这也有一个 diff。你可以看到它对文件进行了大量
00:05:09编辑。总共发送和接收了 9.4K 和 2.8K 个 Token。这是
00:05:23上下文使用情况的结果。让我们测试一下结果:刷新。如你
00:05:35所见,现在的单元格方块间距更大了,彼此更加分离。所以
00:05:44让我们试玩一下游戏。我先从中心单元格开始。好的,好的,我会让
00:06:00电脑赢。好的,太棒了。现在电脑赢了,如你所见,方块
00:06:11分得更开了,而且获胜的标记也高亮显示了。所以它成功了。这是使用
00:06:20Pi 编程 Agent 的结果。现在我们将使用 Open Code 进行相同的测试,
00:06:30使用相同的模型和代码。我会重置代码。好的,现在变更已回退到
00:06:50有漏洞的版本,像这样。现在我们将在 Open Code 中尝试同样的
00:07:00提示词,包括单元格和获胜逻辑。我将通过 Basico 使用相同的模型,
00:07:11Basico 是我自己制作的一个自定义 Agent。我也启动了它,
00:07:27我制作 Basico Agent 是因为它比默认的编程 Agent 要
00:07:36简单得多。Basico Agent 就是这个,
00:07:56它只是一个简单的 Markdown 文件。你是一个 Basico 极简 Agent。是的,我
00:08:07在这里没写太多要求,只是让它使用带有搜索引擎工具的 Web Fetch,
00:08:15但在这次使用中我们用不到它。所以这是一个非常简单的 Agent,只是为了
00:08:24为 Open Code 创造类似的条件。我们已经使用了
00:08:3412K 的上下文。它从 index 和 game.js 开始。是的,在这里我们也会
00:08:47在暂停视频后查看最终结果。它仍在运行,
00:08:58没有太多反馈。我还想说,我也用
00:09:07Gemma 2 27B 进行了同样的测试,但它无法在这种
00:09:20项目上进行工具调用。Gemma 2 虽然能够重新创建 3D 井字棋游戏,但
00:09:30之后却无法通过工具调用来编辑这些文件。所以我只用
00:09:38Qwen 2.5 做了这个测试,因为我认为它是此类本地场景的最佳选择。
00:09:48是的,很有趣,因为它正在填写待办事项。有两个任务:一个是
00:09:58让单元格方块更明显,另一个是修复逻辑。所以它会有
00:10:07一些比 Pi Agent 更多的开销。但是,是的,Pi Agent 能够
00:10:17在没有中间待办事项的情况下完成此类任务。也许在更复杂的
00:10:26情况下,有待办事项会很有用。但归根结底,我认为是 LLM 模型
00:10:35产生了最大的差异,而不是框架。但我们
00:10:44拭目以待。
00:10:56好的。
00:11:27好的,快完成了。两个待办事项都已完成,但它还需要读取
00:11:40然后写入文件。
00:11:52好的,正在编写报告。我希望之后它能结束。已经用了 12
00:12:05分钟,时间更长,但好的,它结束了。暂停。如你所见,
00:12:15Open Code 使用了约 23K 的上下文。可能它们报告
00:12:26Token 使用量的方式不同,但似乎 Pi 修复问题只用了一半的 Token。
00:12:36这是技术报告,它多次打开了
00:12:46game.js 进行修复。让我们测试游戏,看看这些修复
00:12:57是否真的有效。刷新。看起来和 Pi 版本很像。中心单元格,好的。
00:13:19试着赢下这局。好的,我赢了。如你所见,我们得到了
00:13:32和 Pi 一样的结果,但花费了更多的 Token 和更多的时间来
00:13:43完成方案。在这个用例中,通常拥有更多功能
00:13:55(如护栏和更多提示词微调)的 Open Code,得到了与
00:14:06Pi 相同的方案,但 Pi 花费的时间和 Token 更少。总之,在我看来,正如我
00:14:18之前所说,所使用的 LLM 是最相关且最重要的部分。
00:14:28框架虽然有用且重要,但更重要的是它放入上下文中的数据质量。
00:14:36在这种情况下,使用 Pi 编程 Agent,
00:14:47开销更小,且即使在 LLM 没有很长提示词的情况下也得到了很好的结果。
00:14:58在评论区告诉我你更喜欢哪种开源
00:15:06框架编程 Agent。下个视频见,再见。
Community Posts
No posts yet. Be the first to write about this video!
Write about this video