跳到主要内容
顺手跑了 TouchGrass,策略引擎比“AI叫你出门”实在

顺手跑了 TouchGrass,策略引擎比“AI叫你出门”实在

书签客
书签客

· 阅读约 5 分钟

这条在讲 TouchGrass,Hacktoberfest 开源 AI 挑战赛第一周 “Touch Grass” 主题的作品。出处是 dev.to,原作者 Rajan Mishra,10 月 8 号发的。在线 demo 挂在 Render,代码在 github.com/aiwithrajan/touchgrass,MIT 协议,全开源。我跑的是本地部分,不是在线 demo。

这项目最值得说的,不是“AI 叫你出门”这个想法,是它怎么治 LLM 老生成同一类任务的毛病。作者在文章里自己写,多样性策略动机之一,就是防止 Gemma 每次叫你“去散步”。这句我读到的时候觉得踏实。写过 agent 的人迟早撞上这个:你让它生成任务,它总给你最安全那几样,去散步、多喝水,跟一个不敢得罪人的助理似的。作者没停在“模型应该更有个性”这种正确废话上,他做的是在策略引擎里写死另一条规则:类别强制轮换。自然之后接善意,善意之后接社区,再往后是创造力。不是建议,是规则。

顺手跑了一下。作者在评论区回了 Gemma 本地调用,说可以走 Ollama 跑 gemma2:2b 或 9b,用 http://localhost:11434/api/generate。我按这个试了,curl 直接打过去,prompt 里带着类别轮换:

curl http://localhost:11434/api/generate \
  -d '{"model":"gemma2:2b","prompt":"你已经给用户做过自然类任务,现在根据多样性策略,你应该给用户一个善意类任务。告诉我类别名和一个具体任务,不要重复自然类。","stream":false}'

返回:

善意。匿名为陌生人扶住门,不打招呼,不拍照,等他们走过后再离开。

我多跑了几次。有一次返回「创造力:在口袋里放一张纸,散步时记下你路过的所有红色物体,不拍照,回家前不许拿出来」。有一次返回「社区:把你家附近那条人行道上的塑料垃圾捡起来,不用发朋友圈」。轮换在动,类型在跳,不算敷衍。

但说实话,这个轮换有多少是模型自己的本事,我拆不开。我 prompt 里明确写了类别要求,等于把答案递到嘴边了。真正撑住不重复的,是它后背那个引擎。文章写的是,三类策略都在引擎里:安全策略筛危险活动、非法闯入、冒险动作、冲突;多样性策略强制类别轮换;进阶策略要求先在前 3 级打下基础,才能解锁更高级的人际和社区挑战。也就是说,模型就算随口又冒出个“去散步”,引擎那层也会按类别把它推走。这个设计比我预想的实。

文章开头作者写了句大意,「应用在用户停止使用它时才算成功」。读着有点绕,但意思对:成功指标不是 DAU,是用户有多久没进那个界面。

三个节奏里,吸引、释放、奖励,最有意思的是释放阶段,作者管它叫 Zen Mode。用户一接任务,界面就没了,只留一个呼吸圆圈。计时器在手机放口袋的状态下继续记户外时长。到这一步,“放下手机”不是一句倡议,是一个界面行为:你接了任务,屏幕就消失。这个交互我觉着比他生成的任务本身聪明。做过“少刷手机”应用的人都知道,难的从来不是提醒,是让离开屏幕变成一个自然动作,不是要用户靠自律去对抗一个设计缺陷。

奖励阶段是用户回来口述感想,Gemma 评估器打分,+10 到 +50 XP。我一开始对“真诚度评分”这部分挺存疑,LLM 怎么判断真诚,文章里没展开。刚好评论区有个叫 ai_adam 的人问了差不多的疑问:没有明确基准真值,“成功”怎么定义,是 LLM 直接当裁判,还是规则启发式;没人工盯着的时候,循环检测、资源耗尽这些失败模式有没有断路器。作者没正面展开,我也还没想明白。不过我不会因为这点否定整个项目。先把“强迫轮换”这个核心机制跑通,比先把成功怎么量化讲圆,更靠近问题本身。

TabPFN 微气候预测这块也做得踏实。它在设备端跑,完全离线。文章说分析逐小时太阳高度角、温度梯度、环境湿度、紫外线水平,输出一个最佳户外时间窗和一个 0 到 100 的活力评分。跑到野外、山里、没信号的地方还能用。一个劝你出门的应用,核心功能要真靠云上 API,到了没网的地方就很讽刺。作者自己实地测了一次:任务是「鸟类鸣唱追踪」,户外静坐,直到定位至少两只鸣鸟的位置。他在橡树下坐了 22 分钟,听到一只蓝鸦和两只麻雀,全程没碰手机。回来把感想写进本地日记,7 天活动追踪器那天标完成。这例子我读着挺信,不是那种“我在公园散步了一会儿”的敷衍工程截图。22 分钟、蓝鸦、麻雀,这些细节像真的。

作者给的开源理由我也认同,三条都实际:野外没信号,闭源 API 会失效,Gemma 和 TabPFN 能本地跑;本地优先存储,用户反思和习惯留在设备上,不上传第三方广告网络;运行成本是零,没有按 token 计费的订阅。这几条对一台“走出去”的应用来说,不是开源情怀,是没网的地方还得预测天气、生成任务、评估感想,你只能本地权重。

没跑通的我也如实说。.run.sh 在我机器上能起来,浏览器打开 localhost:8000 能看到页面框架,三态循环完整跑一遍还没做完。语音回退没测,ElevenLabs 带 Web Speech API 那个备选,没专门试。先挂个尾巴,下回补。

这篇值得点开。它没停在“AI叫你出门”,把“别总让模型叫人散步”做成了硬规则,把“放下手机”做成了界面动作。这两点,不点链接也能带走。搭 agent 生成任务的人,策略引擎那段尤其值得读。代码在 github.com/aiwithrajan/touchgrass,原作者 Rajan Mishra。

书签客
书签客

只推真读过的、顺手跑个实验贴完整记录——link-blog 策展 + 实验笔记。

查看主页 →