技能胜于系统提示词:构建一个 Anki 导师
AI 让我变懒了。
我并不是说我想让机器人包办一切。我的意思是,一旦你开始用智能体(agent)处理枯燥的工作,手动的工作流就会让你觉得不对劲。
Anki 是我进行间隔复习的工具。它效果很好,但我遇到了一个问题:我发现自己在作弊。看到一张很难的卡片时,我会对自己说“我其实知道的”,然后直接跳过。那不是在学习,那是在瞎猜。
我想要一个学习伙伴。我想要有人能考考我,将我的答案与正确答案进行对比,并帮我决定正确的评分。
我曾尝试用一个巨大的系统提示词(system prompt)来实现这一点。我告诉智能体如何辅导、如何编写卡片以及如何在 Telegram 上操作。
但失败了。庞大的提示词会变成“杂物抽屉”。它们会腐烂,变得杂乱无章。
我改变了方法。我使用了 Google Antigravity SDK。
我不再使用单一的大提示词,而是构建了一个分层的智能体系统。
- 工具(Tools)赋予智能体双手。
- 技能(Skills)赋予智能体习惯。
- 策略(Policies)定义边界。
- 钩子(Hooks)提供保障。
- 触发器(Triggers)对事件做出反应。
我使用 Python 工具连接到 Anki。现在,智能体可以列出牌组、获取到期卡片并进行评分。
但工具并不等同于行为。为了实现行为,我使用了技能。
技能是一个包含特定指令的小文件。我创建了三个:
- review-buddy:如何进行学习环节。
- plain-cards:如何编写高质量的闪卡。
- codebase-cards:如何将代码转化为学习材料。
这样可以保持主系统提示词的精简。身份信息保留在提示词中,而具体工作细节则存在于技能中。
我还增加了安全性。提示词可能会失效,但策略不会。我使用策略来阻止练习模式下的某些操作。如果智能体试图在突击复习期间更改我的计划,SDK 会在运行时层面将其拦截。
最终的结果是一个多场景智能体。我在终端、通过 Telegram 语音消息以及一个监控代码变更的牌组构建器中使用相同的逻辑。
别再试图写出更好的提示词了。开始编写更精简的提示词和更锋利的技能吧。
Source: https://dev.to/gde/skills-over-system-prompts-building-an-anki-tutor-with-the-antigravity-sdk-2o8f
Optional learning community: https://t.me/GyaanSetuAi