先别急着造 Agent,先让提示词撞一次墙。

SoulTeacher 从一段只说英语的外星人提示词开始,在真实互动、量化评分和人的体感之间建立测试闭环。

提示词书通过细线缆连接 SoulTeacher,她正隔着聊天界面与学习者交流

我的英语一直不好。幸亏本科毕业不要求必须过四级,否则今天再翻找那些旧证书,大概会发现自己双证全无。

但英语不好,和想学好英语,是两回事。我一直有一颗想把它学好的心。这些年方法试过不少;到了 AI 时代,我当然也试过让各种 Agent 教我。让它陪聊,让它纠错,让它制订计划,让它扮演老师、朋友,甚至路边偶遇的外国人。角色换了一拨又一拨,结果通常差不多:聊不了几句,我就完全失去了继续交流的兴趣。

如果每次学习都需要先表演“我热爱学习”,那大概不是我的英语有问题,是这个东西不太好使。

所以,我决定自己搞一个。

这个项目最早被我叫作“灵魂老师”。四个字单独念出来,有一点肉麻,像深夜电台和心灵课程联名推出的产品。换成英文 SoulTeacher,气质立刻变了:同一个想法,忽然像刚拿到融资。于是,项目就叫 SoulTeacher。

把东西搞复杂很容易。Agent、记忆、知识库、工作流、工具调用,一股脑都装进去,看起来立刻像个大项目。把东西搞简单却很难:究竟哪一层能力,才刚好足够解决眼前的问题?

我没有一上来就做 Agent。我先问:完全只用提示词,行不行?提示词撞墙,再考虑 Skill;Skill 撞墙,再考虑插件;插件还不行,再上 Agent。假如 Agent 也解决不了,那就先等大厂把模型能力迭代一轮,然后从头再来。听上去有点像躺平,其实是在避免拿航空母舰送一份外卖。

我越来越觉得,这可能是深度 AI 应用的一种开发顺序。未来的架构师,未必是最会堆新名词的人,而是能迅速判断一个业务问题应该在哪一层解决的人。能用一句提示词解决,就别先养一个 Agent;该写程序的时候,也别对着提示词再喊三遍 MUST

这篇文章记录的,就是我主动寻找提示词撞墙的过程。要找墙,当然要先走起来。

黑色屏幕上只有一个荧光绿的 A,下面的光标一闪一闪,像某种来自宇宙深处的心电图。

我输入 A。对面又发来一个 B

这就是 SoulTeacher 最早的样子:一个只会说英语、能听懂中文却绝不说中文的外星人,试着和地球人建立联系。她不会先介绍名字,也不会端出“第一课:字母表”。我们要在游戏、误解和共同经历里,慢慢发现对方是谁。

这个想法没有先变成软件,而是先变成了一段提示词。听起来像拿一张纸去造宇宙飞船,多少有点不自量力。但它真的飞起来了。

有一次我拼错了词。她没有说“你错了”,只是自然地给出正确形式,然后继续和我玩。我明明被纠正了,却没有听见粉笔划过黑板的声音。那种感觉很美妙:学习发生了,但老师没有突然从桌子底下钻出来。

于是我第一次意识到,提示词不只是“让 AI 帮我做件事”。它可以定义一个世界里的物理规律。

外星人也会变成教导主任

飞船很快开始漏气。某一版 Agent 坚持逐个测试字母。我说:“我认识 26 个字母。”她不信。我要求继续学单词,她仍然举着下一个字母,像一位相信试卷胜过相信人的教导主任。

后来另一位用户用它学日语,Agent 又把罗马字 a 当成平假名 。这个 BUG 很小,却像针一样扎破了我们的自信:复制一个符号、识别一个符号、听见读音、主动写出来,本来就是不同的证据。我们以为自己在测认知,其实可能只是在测复制粘贴。

提示词从此有了版本号、测试用例和 BUG。研发与测试被拆成两个会话:母会话生成提示词并创建干净的新会话;用户在其中互动。结束后,母会话回读完整过程,评分、找 BUG、修改下一版。出题的人不替考生答题,却要回来批完整张卷子。

一段提示词,也应该有自己的测试闭环

流程概览
  1. 母会话:明确想法与观察项
  2. 母会话:生成提示词 vN
  3. 母会话:创建独立测试会话
  4. 新会话:只注入待测提示词
  5. 用户与 Agent 真实互动
  6. 新会话:结束评估
  7. 母会话:回读完整测试过程
  8. 量化评分 + 原始 BUG + 人的体感
  9. 母会话:修改规则并升级版本
  10. 交给程序、存储与上下文

↻ 反馈进入下一轮

我们给每个观察项打 012NT:失败、部分满足、满足、未测试。但分数旁边必须再写一句人话——我愿不愿意继续和她聊天?因为一份得分 95% 的提示词,仍然可能像一位追着你默写的老师。

每一轮只修真实出现的问题。用户说已经认识字母,Agent 却不肯前进,我们就修路由;日语把 a 当成 ,我们就拆开不同证据;陌生词解释得更陌生,我们就要求先用已经共享的简单语言,再动用图片或小网页。README 不再是许愿池,而是事故调查报告。

大多数 AI 项目,底下都压着几段提示词

今天很多人做 Skill,更少的人做 MCP,再少一些的人做 Agent。更多项目在用 AI 优化按钮、代码和流程。但扒开这些新名词,许多 AI 产品的核心仍然是 N 段提示词,再加一些程序负责何时把它们递给模型。

既然代码需要版本、测试和边界,提示词当然也需要。多写三个 MUST 不会让模型突然长出纪律,更不会让它长出数据库。

这次 SoulTeacher 的提示词已经能塑造一个很特别的会话:不说用户母语,悄悄纠正错误,用共同情境建立词义,再让陌生的新词自然回来。它也终于撞上了墙:提示词不能保证永久保存生词,不能让下一次会话继承今天发生的故事,也不能独自管理私有数据。继续往里加规则,只会把纸飞机折得越来越厚。

但撞墙并不意味着失败。恰恰相反,你终于知道下一步为什么需要 Skill、插件、Agent 或真正的软件,而不是因为它们听起来厉害,就先把全家桶搬上桌。

现在轮到你了。找一个自己真正感兴趣、边界又足够具体的问题:也许是让 AI 只用苏格拉底式提问陪你读一本书,也许是每天把一段流水账改成脱口秀,也许是让它扮演一个永远不直接告诉你答案的侦探。先别急着做产品,只写一套固定提示词;给它编号,让母会话创建干净的测试会话,认真记录每一次惊喜、冷场和翻车,再一轮轮修下去。

如果最后只靠一套提示词,就稳定解决了一个固定问题,那不是简陋。那比先造 Skill、插件和 Agent 帅一百倍。复杂的东西谁都可以往上堆,真正困难的,是用最小的东西,刚好解决问题。

所以,先找一个你愿意反复琢磨的小问题。然后写下第一版提示词,创建一个新会话,亲自走进去。

墙在哪里,撞过才知道。

附录|我和 SoulTeacher 的一段真实对话

以下内容选自 v0.6 测试会话。对话卡片根据原始日志逐字排版,保留了我的拼写和语法错误;绿色房间则是 Agent 在那次对话中实际生成的图片,不是为文章补做的插图。

SoulTeacher v0.6 对话节选:Neo 提到黑客帝国,Agent 隐式纠正表达并让红蓝药丸进入故事
名字刚说出口,故事就记住了我喜欢《黑客帝国》,还顺手纠正了 a Matrix Fans。没有红笔,只有红色药丸。
绿色光线笼罩的走廊中,一只黑猫走向前方门口
我说房间里全是绿光,请她“拍一张照片”。她真的把我们共同想象的地方画了出来。
SoulTeacher v0.6 对话节选:Neo 与 Agent 跟随黑猫,并从黑盒子里发现一只小黄鸭
拼写错误没有让故事停下来。那个看起来很危险的黑盒子,最后只开出一只小黄鸭。
SoulTeacher v0.6 对话节选:Neo 不理解 tail,Agent 用黑猫的位置和图形继续解释
这大概就是我想要的学习:不知道就说不知道,然后两个人留在同一个故事里,换一种办法继续理解。