这是以下赛事的参赛作品:Hacktoberfest 开源 AI 挑战赛第 1 周:Touch Grass
我构建了什么
大多数现代消费级软件都围绕着一个单一的、掠夺性的漏斗构建:
$$\text{注意力} \longrightarrow \text{屏幕时间} \longrightarrow \text{算法信息流} \longrightarrow \text{广告曝光}$$
即便是现代 AI 工具,也常常被优化为让你永远在聊天窗口里打字。
TouchGrass 把这个等式反转了过来。
TouchGrass 是一个由开放 AI 驱动的现实世界挑战平台,其构建原则是:
当用户停止使用它时,这个应用才算成功。
TouchGrass 的主要输出不是供你在屏幕上消费的文本,而是现实世界中的身体行动。
该系统使用一个开放权重的Gemma 2智能体编排器来理解你的个人背景、难度等级和历史记录,然后生成横跨 9 个现实世界类别的个性化任务:
- 户外:地平线漫步、太阳与影子追踪、反向绕圈社区散步。
- 自然:植物纹理探险、野生种子培育、鸟类鸣叫识别。
- 善意:匿名扶门、帮邻居提杂货、真诚的赞美。
- 幸福:日光重置、涟漪式微笑。
- 人际连接:无屏幕咖啡时光、倾听年长邻居。
- 社区:人行道塑料清理、为本地图书馆做贡献。
- 健康:健步走、赤脚草坪接地、户外活动度拉伸。
- 创造力:城市纹理发现。
- 探索:拐进未曾探索过的小巷。
行为节奏:吸引 ➔ 释放 ➔ 奖励
- 状态 A —— 吸引:一份清晰、鼓舞人心的任务简报,带有 XP 赏金和 ElevenLabs 语音旁白。
- 状态 B —— 释放(禅模式):在你接受的那一刻,UI 会在视觉上消失,变成一个极简的环境呼吸圆圈:你在外面了。去做吧。你不需要这块屏幕。计时器记录你的户外分钟数,而你的手机一直待在口袋里。
- 状态 C —— 奖励:当你回来并说出你的感想(“我帮邻居提了她的杂货”),Gemma 评估器会为你的真诚打分,授予额外 XP,触发升级庆祝,并解锁新功能。
演示
- 在线 Web 应用(托管于 Render): https://touchgrass-agent.onrender.com
- GitHub 仓库: https://github.com/aiwithrajan/touchgrass
- YouTube 视频演示(完整 1080p,含神经 AI 语音): 在 YouTube 上观看
-
UI 与工作流架构指南(PDF):
TOUCHGRASS_UI_AND_WORKFLOW_GUIDE.pdf -
本地运行:运行
./run.sh或访问http://localhost:8000体验三态循环、TabPFN 微气候预测和离线小径模式。
代码与部署
完整代码库基于 MIT 许可证在 GitHub 上 100% 开源:
👉github.com/aiwithrajan/touchgrass
- 托管与运行时(Render):作为统一 Web 服务部署在Render上,同时提供 FastAPI 智能体后端和高性能 React SPA。
- 后端:FastAPI + Gemma 2 智能体编排器 + 安全与多样性策略引擎 + 本地优先记忆存储。
- 微气候 AI:TabPFN 表格基础模型(Prior Labs),用于最佳户外时间窗口和活力评分。
- 前端:React 19 + TypeScript + Tailwind CSS v4(平静、无干扰的扁平编辑式 UI 系统)。
- 语音:ElevenLabs API,并带有设备端 Web Speech API 回退方案。
- 可观测性:Sentry 智能体追踪埋点。
我是如何构建它的
1. Gemma 2 开源权重智能体编排器
TouchGrass 的核心是一个闭环的真实世界智能体。当你请求一个任务时,Gemma 会考虑你的等级、你最近的类别历史以及时间限制。
为了防止 LLM 常见的重复同一任务的陷阱(“去散步,去散步,去散步”),智能体流水线会接入我们的策略引擎:
- 安全策略:扫描候选任务,检查是否存在危险活动、非法闯入、冒险动作或对抗行为。
- 多样性策略:强制类别轮换,因此自然之后是善意,然后是社区,再是创造力。
- 进阶策略:在用户于 1–3 级建立个人基础之前,限制高级的人类/社区挑战。
2. 语音层
使用ElevenLabs(并带有 Web Speech API 回退方案),Gemma 的任务会以平静、鼓励的语调朗读出来:
“嘿。你今天的挑战很简单。走到户外,抬起头,对三个人真诚地微笑。等你回来时我们再见。”
这让你可以通过耳机或扬声器吸收任务内容,然后立刻把手机放进口袋。
3. 语音反思与 Gemma 评估器
当你返回时,点击麦克风并说出你的反思。Gemma Evaluator 会分析你户外努力的真诚度和深度,奖励额外 XP(+10 到 +50 XP)。
4. 进阶与里程碑
- 5 级解锁社交模式:一个隐私优先的社区看板,展示其他经过验证的真实人类在户外做了什么(仅显示大致城市区域,零 GPS 追踪)。
- 10 级解锁旅程分享:一张可导出的 canvas/SVG 卡片,用于分享你在现实世界中的成就。
5. TabPFN 微气候活力预测器
当与最佳日照和舒适度同步时,外出效果最佳。使用TabPFN(Prior Labs 表格基础模型),TouchGrass 分析逐小时太阳高度角、温度梯度、环境湿度和 UV 水平,以预测:
- 最佳户外时段:计算出精确的小时(例如今天上午 10:30),在最大化自然昼夜节律日照的同时,避开正午强烈的 UV 眩光。
- 活力评分(0–100):一个综合大气清新度、光谱和季节条件的连续评分。
- 离线韧性:采用 100% 设备端表格先验引擎运行,即使手机信号塔在数英里之外,也能保证荒野环境下的功能可用。
为什么开放创新很重要?
这是第 1 周的核心问题,也正是 TouchGrass 诞生的原因:
1. 荒野中零信号(离线步道能力)
当你徒步山脊步道、穿过国家公园或走进森林时,蜂窝网络会消失。
封闭的专有 API(如商业 OpenAI 或 Anthropic 端点)在没有互联网连接时会立即失效。由于 Gemma 和 TabPFN 在设备端本地运行,即使手机处于飞行模式,TouchGrass 也能继续预测微气候、生成挑战并评估反思。
2. 完整的位置与行为隐私
追踪每日个人反思、户外习惯和身体习惯,不应该需要把你的人生日记发送给第三方广告网络。借助开源权重 AI 和本地优先存储,你的想法和习惯完全保留在你的设备上。
3. 运行成本为 $0
没有经常性的 token 订阅费用或速率限制。任何拥有入门级笔记本电脑或智能手机的人都可以永久运行该引擎。
奖项类别
- 总冠军大奖($250):以 Gemma 2 为核心的开源权重 AI,将屏幕成瘾逆转为现实世界的身体临场。
- Render 最佳使用奖($200):托管在 Render 上,作为统一的全栈 AI 智能体运行时,同时为 FastAPI 后端和 React SPA 提供服务,并实现自动化零停机构建。
- TabPFN 最佳使用奖($200):Prior Labs 表格基础模型,根据微气候表格数据预测最佳 15 分钟户外窗口和活力评分。
- ElevenLabs 最佳使用奖($200):平静的语音任务简报和音频播放,实现无屏幕沉浸。
- Sentry 最佳使用奖($200):全面的智能体追踪,对 Gemma 生成、TabPFN 表格预测 span 和策略检查进行埋点。
带到户外:实地测试
我在一个下午的环线中把 TouchGrass 带到了户外。智能体给了我:
“鸟类鸣唱追踪器:安静地坐在户外,直到你能精确定位至少两只鸣唱鸟的物理位置。观察它们的飞行路径,不要拍照。”
我接受了,屏幕完全变黑进入禅模式,我把手机放进了夹克口袋。我在一棵橡树下待了 22 分钟,听到了一只蓝松鸦和两只麻雀,一次都没有碰手机。
回到家后,我打开应用,把反思笔记保存到我的个人 Journey 日记中,并看着我的 7 天活动追踪器将这一天标记为完成。
现实生活 > 屏幕时间。