这里是谁的小空间?
嗨,我是 Twiink。平时写写代码,也画点画,经常因为一句“要不试试?”就给自己找点事情做。 这里放着我折腾过的东西,也想慢慢攒一些照片、画作和日常。欢迎随便逛逛。
做点有趣的东西,放一些舍不得关掉的脑洞。
写代码,也画点画,经常因为一句“要不试试?”就开始折腾新东西。
有时候是个小网页,有时候是个顺手的小工具,最近也常研究怎么让 AI 帮我干点有意思的活。我喜欢把复杂的事情一点点拆开、理顺,最开心的一刻永远是“终于跑通了”。
这里装着我的项目、日常,还有一些舍不得关掉的脑洞。
欢迎随便逛逛,碰到感兴趣的东西,随时来找我玩。
好奇心在线 / 自由创作 / 脑洞收集 / 边做边学
个人创作者,平时写写代码、做点小项目,最近也在琢磨 AI 和 Agent 的各种玩法。
不写代码的时候,喜欢画会儿画、拍拍古风照片,或者干脆发会儿呆。遇到有意思的点子就动手试试,边做边学,慢慢把脑子里的想法做出来。
把做过的项目、突然冒出来的点子和随手记录都放在这儿。给自己留个档,也欢迎路过的人随便逛逛。
TypeScript · Vue · React · Python · Django · FastAPI · Java · Spring Boot · Docker
前端常用 TypeScript、Vue、React,后端主要写 Python(Django、FastAPI)和 Java(Spring Boot),平时用 Docker 打包部署。从页面交互到背后的接口逻辑,都能自己搭起来。
RAG · LangChain · LangGraph
常折腾 RAG、LangChain、LangGraph,喜欢研究怎么把 AI 接进实际任务里。
习惯先把事情想明白,把看着头大的问题拆成几件能落地的小事,再一步步动手做。
写代码,也画画。不管是写页面还是画插画,对我来说都是把脑子里的画面做出来。
日常写代码和理思路时,也常拉上 Codex、Claude Code、Claude Desktop 一起干活。
开始大学生活,也是从这时候起,慢慢摸索自己真正喜欢做什么。
认识了一群志同道合的朋友,一起学东西、做项目,有了想法就一起动手试。
做完了第一个知识图谱项目,也赚到了人生第一笔项目收入,第一次真切觉得学的东西派上了用场。
参与工作室和杭州公司的合作,给科技馆做了「无界宇宙」小程序,这是我参与的第一个正式投入使用的小程序。
去天津挺汇集团做前端开发,开始接触真实业务里的需求、协作和交付。
参与杭州良渚 5000+ 艺术园七号展馆的合作项目,开发了和线下场馆游戏设备联动的「泡芙大作战 PuffWar 乐园」小程序,同时参与开发「SecKnow AI 教育平台」,两个项目都已经正式投入使用。
喜欢汉服和古风妆造,偶尔去拍套照片,换个和平时写代码完全不一样的状态。
闲下来喜欢自己画两笔,看到好看的线条、配色和画面也会顺手攒起来。
看到有意思的网站交互、顺手的小工具或者新鲜的 AI 玩法,总会忍不住点进去研究半天。
留几张喜欢的照片,记下突然冒出来的点子、踩过的坑,还有生活里好玩的小事。
有人一起学技术、一起讨论点子、一起把项目做出来,大学生活因此热闹了很多。
完成知识图谱项目拿到报酬的时候,很有成就感。
从科技馆的「无界宇宙」,到结合线下场馆设备的「泡芙大作战 PuffWar 乐园」,再到「SecKnow AI 教育平台」,看着自己写过的代码真正上线运行,是一件很踏实的事。
把自己的古风照片做成动漫版和黑白线稿,放进了网站里,算是在这儿正式安了个家。
以后不管又做完了什么新项目,还是画了张满意的画、解决了某个卡很久的问题,都继续往这里记。
天津赛区 · 省级三等奖
华北赛区 · 省级三等奖
天津科技大学
已通过大学英语四级考试
戴上手环去闯关,攒点积分换礼物,再把手机变成手柄,和场馆大屏里的角色一起玩。一个和线下乐园搭着玩的微信小程序。
平时去线下乐园,大多就是到处逛逛、玩玩项目。做「泡芙大作战 PuffWar 乐园」的时候,我们想让逛乐园这件事更像在打一场真人的闯关游戏。
进场戴上手环、用小程序绑好之后,就可以照着地图去找任务做了。在场馆里的游戏设备上刷手环打卡、闯关,手机里就会跟着攒积分、点亮图鉴和徽章,还能看看自己和所在阵营排在第几名。攒够了积分,可以直接在小程序商城里挑礼物,再去现场柜台把实物领走。
里面还有一个我很喜欢的小玩法:走到场馆的大屏幕前扫个码,手机屏幕就会变成一个游戏手柄。拖一拖摇杆,就能直接操控大屏里的角色到处跑,还能顺手发个表情和文字上去,大家一起在屏幕前闹腾,气氛一下就热闹起来了。
这个项目的前后端我都参与了不少,主要是把大家从进场玩游戏、攒积分,到最后换礼物的整个过程跑顺:
照着设计稿做出了任务地图、翻页图鉴、积分排行榜、商城和订单这些页面,加上了开屏动画和两个阵营的主题切换,让小程序看着就有游乐园的氛围。
把现场手环、游乐设备和小程序连起来。大家在设备上刚闯完关,打开手机就能看到任务进度往前走了一截、积分也涨了。
从在商城里挑东西、用积分或者微信付款下单,到拿着手机去柜台扫码领走礼物,把买东西和换礼物的每一步都接好。
实现了扫码连接大屏、手指拖动虚拟摇杆控制角色移动,以及在手机上发弹幕和表情的互动。
写了一些自动运行的小任务,比如晚上闭园后帮手环自动解绑、整理当天的游玩记录,以及关掉超时没付钱的订单。
乐园里的好玩项目,小朋友经常会拉着家长刷上好几遍。如果每玩一次都把奖励重发一遍,积分很快就被刷爆了;但如果第二次玩完全不给分,又少了一点挑战的乐趣。所以后来做成了“按进步补分”:只要这次比之前的最好成绩更高,就把多出来的那部分积分补给你,既鼓励大家多试几次,也不用担心积分乱掉。
在现场换礼物的时候人多手杂,有时候网络慢一点,大家可能会连着点好几下,或者付完款刚好切出去了。为了不出现“扣了两次积分”或者“付了钱却没生成领奖码”这种让人着急的情况,我把下单、扣积分、付款和现场核销这几步做了核对和防重处理,中途取消或者退款也能把积分原样退回去。
刚开始做手机摇杆的时候发现,如果只是手指动一下才发一次信号,那手指按住边缘不动的时候,大屏上的小人走一步就停了,玩起来特别别扭。后来改成了按住摇杆就会持续告诉大屏“继续往这边走”,一松手小人就立刻停下;就算现场人多、手机网络偶尔闪断一下,也会自己悄悄重连上,尽量不打断大家正在玩的兴致。
UniApp、Vue 3
Python、Django、WebSocket、MySQL、Redis
微信支付、场馆手环与游乐设备、现场互动大屏
这是我第一次做跟线下真实场景贴得这么近的项目。以前写页面,觉得按钮能点、数据能存就差不多了;但放到游乐园里,页面背后是正戴着手环到处跑的小朋友、现场滴滴响的打卡设备,还有大家抬头看着的大屏幕。看着自己写出来的东西真正在场馆里被大家用起来、玩起来,是一件特别有成就感的事。
戴上手环,带着自己的小宇航员逛科技馆。做任务、换装扮、集勋章,还能把手机变成手柄,去大屏幕里走一走。
去科技馆逛展的时候,很多小朋友和观众走马观花看一圈就出来了。「无界宇宙」想做的事情很简单:让大家进馆之后多一个自己的宇航员小分身,边逛展、边做任务,像在完成一场小小的太空探险。这也是我参与的第一个正式投入使用的小程序。
进馆戴上手环、在手机里绑好之后,就能领到自己的小宇航员。一边在展馆里打卡做任务、攒积分,一边慢慢收集新装备和勋章——头盔、衣服、身边跟着的小玩偶,还有身上的小特效都能自己挑着搭。每次拿到新东西,回手机里给小人换一身装扮,逛展就多了一点收集的乐趣。
走到馆里的互动大屏前,还可以掏出手机扫个码,把手机变成游戏手柄。穿过一段小小的太空隧道动画,刚才自己亲手打扮好的那个小宇航员就会降落到大屏幕上。手指拖一拖摇杆,大屏里的角色就跟着到处走,还能顺手发几句文字和表情上去凑热闹。
逛完离场前,可以在小程序里看看今天一共攒了多少分、能去现场哪里换小奖品,也能把自己的宇航员造型和点亮的勋章生成一张纪念海报,存下来或者发给朋友看。
我在工作室和杭州公司的这次合作里,主要负责把小程序的各个页面和玩法做出来,也一起做了手机连大屏互动的那一块:
做好了登录、选形象、起名字和扫码绑手环的页面,让大家刚进馆站在门口的时候,花不了几步就能绑好手环去玩。
做出了“我的装备”页面,把头盔、衣服、腿部装备、小玩偶和特效分门别类摆好,点一下就能直接穿在角色身上看效果。
做好了分章节的任务列表和勋章陈列室,做完哪些挑战、拿到了哪几块勋章、佩戴哪一个称号,一眼就能看清。
参与实现了扫码连大屏、角色降落过场、手指拖动摇杆走路,以及往大屏上发文字和表情的小功能。
做好了积分明细、现场兑奖指引,还有一键生成专属角色海报、直接分享给微信好友的功能。
小宇航员身上的头盔、衣服、玩偶和特效都是分开搭配的。如果换一件还得保存、刷新才能看见,试衣服的兴致就少了一半。所以我把人物做成了好几层叠在一起的样子,底下切换任何一件单品,上面的小人马上就会换好;刚解锁还没试过的新装备也会带个小红点提醒一下,方便大家第一时间去试新衣服。
如果勋章墙打开只有孤零零一两枚,看着就有点冷清。后来做成了整面墙先摆出来:拿到了的勋章是彩色的,点开能看到是什么时候拿到的,还能直接戴在名字旁边;没拿到的先留一个灰色的印子,点进去会告诉你要去完成哪个任务才能点亮。这样逛到一半翻开看看,很容易就会冒出“再去把那枚也拿了吧”的念头。
站在大屏幕前面扫码的时候,大家注意力都在头顶的屏幕上。如果手机半天没反应,很容易以为坏了就关掉重扫。所以我把整个过程拆成了几个挺有仪式感的小画面:先确认一下今天穿哪套衣服上场,接着穿过一段太空隧道等待连接,连上的那一刻提示“成功着陆”,然后再把手机变成摇杆界面;万一展馆里人多信号不好断开了,手机也会自己试着重连几次,尽量不让大家扫兴。
UniApp、Vue 3、Pinia
手机与场馆大屏实时连接通信
场馆打卡手环、线下互动大屏、微信海报分享
这个项目在 2025 年 1 月正式在科技馆投入使用,对我来说意义挺特别的——这是我参与做的第一个真正走到线下、被很多来逛馆的人拿在手里玩的小程序。以前去科技馆都是自己当游客看展,这次换了个身份,想到有人会戴着手环在馆里跑来跑去,在手机上给小宇航员换衣服、抬头在大屏里找自己的角色,最后再揣着一张纪念海报回家,就会觉得做这件事情特别有意思。
像翻一本会动的科普绘本:看故事、动手做实验,没弄明白就问问 AI,再做几道小测验。老师也能在后台准备和修改教材。
平时自己看网课或者翻教材,如果全是大段大段的文字,看一会儿就容易犯困走神;遇到卡壳的地方没人问,可能顺手就把页面关掉了。做「SecKnow AI 教育平台」的时候,我们想把学东西这件事做得像翻一本会动的科普绘本——让孩子能顺着自己的好奇心,边看、边动手试、边提问。
打开网站,不同的学科和主题就像一颗颗小星球。除了语文、数学、科学这些平时要学的科目,也有心理健康、财商、逻辑思维这些有意思的话题。点进一个知识点,大概十来分钟就能走完一小节:先看故事、图文和视频把来龙去脉弄明白,碰到有小实验的地方,还能亲手拖一拖、调一调,看看画面里会发生什么变化。
要是看到哪一段突然卡住了,不用切出去到处搜,直接点一下旁边的“问这个”,就能叫出 AI 小助手对着这一段追问;做练习题的时候,还可以连上 AI 老师一边语音聊、一边看着屏幕上的题目慢慢理清思路。最后做几道轻松的小测验闯个关,这一小节就算拿下了。
而在学生看不到的另一头,还有一套给老师备课用的工作台。老师只要选好知识点,就能让 AI 先把整套教材和教案的底子编出来,再像改文章一样逐段预览、改字、换配图、加批注,收拾妥当了再放到前台给学生用。
这个项目我前后端都参与了不少,从老师在后台备课编教材,到学生在前台看课、做实验、问问题,再到买课开通,中间很多环节都亲手摸了一遍:
做出了 AI 编教材、自动生成教案、逐段预览修改、挑配图和写教学批注这一整套功能,让老师不用从零开始熬夜码字。
把图文故事、语音朗读、视频、公式、能动手操作的小实验和闯关小测验拼成一节节流畅的课,并记下大家学到了哪一步。
做出了课本里指哪问哪的“AI 自学助手”,也参与了做题时能开麦说话、看屏幕画面的 AI 老师辅导功能。
接好了选课下单、付款和自动开通课程的流程,付完钱就能直接去上课,不用人工挨个核对。
做好了后台的账号和分工设置,不同学校、不同年级和科目的老师登录进来,看到和打理的都是自己负责的课,互不打扰。
老师备课的时候,经常会一口气勾选好几个章节让 AI 去编。但一本教材里既有长文,又有配图、视频和互动小实验,生成起来挺花时间的。要是中间有一张图或者一个小实验没生成出来,整本书就作废重来,既耽误功夫又白花钱。所以我把后台做成了“哪块坏了补哪块”:文字和已经画好的图都先留着,只把卡住的那一小块单独拿去重做;万一遇到账号额度不够这类问题,就先把任务稳稳停住,等处理好了还能接着刚才的进度继续往下编。
平时看书遇到不懂的地方,最烦的就是还得自己打一大段话去解释“我现在看到哪一章、上面写了什么”。所以在做课本页面的时候,我们在每一小段旁边都放了一个提问按钮。点一下,页面就会自动把你正在看的这一段话带给 AI 小助手,你只需要直接问“这步是怎么来的?”就行,还能顺着它的回答一路追问下去。
如果刚点进一门新课就能直接跳到最后做题,很多人可能走马观花点两下就关了;但要是全都学会了,回来复习还得从第一关重新解锁,又会特别折腾。所以我们把学习进度分成了两种情况:第一次学的时候,得像闯关一样解开上一节才能去下一节,中途关掉网页再回来也会停在刚才最远的地方;等整节课通关之后,所有章节就彻底敞开了,想跳回去看哪一段都可以。
Vue 3、React、TypeScript、Pinia、Vite
Python、Django、Celery、RabbitMQ、MySQL、Redis
AI 教材生成、实时语音与画面互动、支付宝支付
以前做「无界宇宙」和「泡芙大作战」的时候,想的是怎么让小朋友在线下展馆和游乐园里玩得开心;到了 SecKnow,场景搬到了屏幕前的书桌旁,但心里想的事其实差不多——怎么把原本容易让人犯困的知识点,做得让人愿意多看一眼、多点一下。
我很喜欢我们给这个项目画的那张绘本海报:翻开一本书,里面慢慢升起几颗装着实验、问答和测验的小星球。能用代码把这些小细节一点点搭起来,让老师备课省点力气、让看课的人多一点探索的乐趣,是一件挺踏实的事。
把零散的文档放到一起,用平时说话的方式找资料。遇到复杂问题,再分几步查清楚,把回答和出处一起留下来。
平时不管是做项目还是大家一起干活,电脑和网盘里总会攒下一大堆 PDF、Word 和笔记。明明记得“这件事之前哪份文件里写过”,真着急用的时候,光靠搜一两个词还是得把好几个文档挨个点开,来回翻上半天;要是直接丢给 AI 问,有时候又怕它顺嘴胡编,不敢直接信。
做「RAG 中台(RAG-Center)」的时候,我想做的其实就是个“帮人翻资料、还会把原文翻开指给你看”的小管家。平时把零散的文档传上去分门别类放好,想查什么的时候,直接像平时说话一样问就行——哪怕你随口问的是“出差住酒店能报多少”,而文件里写的是“差旅住宿标准”,记不清原话也没关系,它照样能顺着意思和字眼把那几段翻出来。
要是碰到那种一句两句说不清、得翻好几份文件才能凑齐答案的问题,还可以切到“深度研究”。它会像个耐心的搭档一样,先把大问题拆成几件要先搞明白的小事,去资料库里分头翻一圈;发现哪块还缺材料,再顺着线索去补查一轮,最后把整理好的回答连着出处小标号一起摆到你面前。哪句话出自哪份文件、哪一节,点一下就能跳回原文核对;要是资料库里压根没写这件事,它也会老老实实告诉你还没找到依据,绝不硬编。
这个项目前后端我都是从头搭起来的,核心就是把“传资料、翻内容、核对出处”这几步做得顺手又踏实:
做出了传文件、像管电脑文件夹一样打理资料库,以及查资料、给结果打星留备注的页面。哪份文档还在后台收拾、哪份已经能查了,打开页面一眼就能看清。
把“按大致意思找”和“按字面原词找”结合到了一起,再挑出最贴切的那几段往前放——平时随口一问能找着,搜编号、缩写或者专有名词时也不会跑偏。
做出了“深度研究”功能,先想清楚要查哪几件事,分头去翻资料;要是第一遍没凑齐,还会顺着线索再补查一轮,最后整理成一篇有理有据的回答。
把文档名字、章节位置和原文段落都留好,回答里还会挂上小标号,点一下就能跳到对应的原文核对,让人看完了心里有底。
做好了不同工作空间的隔开管理,大家登录进来只看得到自己团队的文档库,今天查了多少次、还能怎么查,也都清清楚楚,互不打扰。
很多规定或者说明,单拎出中间一句话来看,特别容易看走眼——比如前面明明写着“仅限特定情况适用”,结果只把后半句找出来了,意思就全拧了。所以在收拾文档的时候,我会顺着原本的标题、小节和表格把结构留住;往外拿的时候,也会把紧挨着的前后几段话一块带出来,让人一眼看清来龙去脉。
平时翻制度或者说明文档,最头疼的就是好不容易翻到地方,上面却只写着一句“具体要求参见另一份文件”。如果这时候就直接停下来交差,其实啥也没解决。所以在做“深度研究”的时候,我专门让它先分清“这只是个路标,还是真正的答案”——要是只找到了文件名或章节线索,就顺藤摸瓜再去翻一轮;万一翻遍了整个资料库确实没写,或者两份文件说法打架,就在最后老老实实标出来。
有时候往库里一口气塞进一大批新文档,或者想把整个资料库重新理一遍,后台得忙活好一会儿。要是整理到一半卡住了得全盘重来,或者整理期间大家干脆没法查东西,用起来就很糟心。所以我做成了“新旧交替”的办法:万一中途哪一步卡壳了,后台自己多试几次接着往下弄就行;在新的资料库还没彻底收拾利索之前,大家手头查到的依然是原来那套好用的旧内容,等新的一套全准备妥当了,再悄悄换上去,中间一点不耽误用。
React、TypeScript、Vite
Python、FastAPI、Celery、Redis
PostgreSQL、pgvector、Elasticsearch
我自己平时做项目、攒笔记的时候,也经常碰到那种“百分之百确定自己存过,但死活想不起塞在哪个文件夹里”的抓狂时刻。有时候问 AI 吧,它答得头头是道,我心里却直打鼓,还得自己再去翻一遍原文才敢用。
所以做「RAG-Center」的时候,我一直想把“找得着”和“敢放心用”这两件事落到实处——既帮人省下翻箱倒柜找文件的功夫,也把每一句话是从哪儿看来的清清楚楚摆在桌面上。看着杂乱的文档一点点被收拾得服服帖帖,每次提问都能顺着标号翻回原文求证,心里就会觉得特别踏实。
陪你把脑子里的半成品点子一点点聊透,再顺着理出产品说明书、接口清单和给 AI 写代码的任务单。
平时突然冒出个新点子,跟朋友或者搭档说“咱们做个……吧”,嘴上聊起来热火朝天,觉得三天就能做完;可真坐到电脑前准备动手,或者想让 AI 帮着写代码的时候,脑子一下就卡壳了——总共要有几个页面?按钮点完去哪儿?万一填错了或者中途反悔怎么处理?要是前期全靠一句“你懂我意思吧”,做到一半准得推倒重来。
做「HarnessPRD 智能需求文档平台」(界面里叫 ReqFlow)的时候,我想做的其实就是个“陪你把想法聊明白、再理成开工资料”的小帮手。刚开始哪怕只有一个模糊念头也没关系,先把大概想法填进去,AI 就会像个爱操心的搭档一样,顺着你的话追问那些容易漏掉的细节。聊完之后,它会把刚补齐的内容整理出来摆在你面前,让你先过目确认“对,我就是这个意思”,再往下动笔。
等最核心的“到底要做什么”拍板定下来了,它就会顺着这份底子,帮你理出三样可以直接拿去干活的东西:一份讲清楚功能和页面的产品说明书(PRD)、一份前后端对表用的数据接口清单,还有一份专门喂给 AI 编程工具的写代码任务单。如果手头本来就已经写好了一半文档,也不用从头走流程,直接塞进去就能接着往下写;全部收拾停当之后打包带走,就能踏踏实实开工了。
这个项目前后端都是我自己从头搭的,主要是把从“脑子里有个念头”到“手头有一套能直接开工的文档”这几步接顺:
如果只有一个粗略念头,就从头开始填;要是手头已经写好了产品说明,甚至连前后端怎么配合都理过了,直接把现成文档导进来就能接着往下走,不用从零重填一遍。
做出了追问对话和改动对比功能。跟 AI 聊完一轮,它新补了什么、改了哪几条,都会清清楚楚列出来,等你点头确认了才算数。
先写产品说明书,顺带帮你挑一挑里面有没有前后矛盾或漏写的地方;等这份说明书敲定之后,再接着写出前后端对表用的接口清单和给 AI 写代码用的任务单。
写出来的每一份文档都能直接在页面上改字,或者让 AI 照着修改意见再润色一遍。每次改动都会自动存下历史记录,哪天觉得“还是昨天下午那版更好”,点一下就能换回来,还能顺手记一句当时为什么要改。
做了一边写一边自动保存的方案夹。中途关掉网页下次打开还能接着弄,全部理顺之后,一键就能把整套资料打包带走。
平时跟 AI 聊天,它特别容易顺着话头自己往下编——你随口提了一句“以后也许可以加个排行榜”,它转头就写进“这次必做”里了。如果聊完直接拿去生成几千字的长文档,这些夹带私货的小地方根本看不过来。所以我专门在中间加了一道“先对账、再动笔”的关卡:聊完之后先把改动一条条拎出来,左边是原来的,右边是新改的,一眼就能看出它有没有会错意,确认没跑偏再往下写。
做项目最怕的就是“改了前面、忘了后面”。比如最开始说好“提交之后不能改”,结果聊着聊着改成了“一天之内都能撤回”,要是后面干活的人还拿着老一套清单去写代码,做出来准得打架。所以我把那份核心的产品说明书设成了基准:必须先给它拍板定稿,才能去写后面的资料;万一你回头又去改了前面的说明书,后面那两份资料马上就会亮起提醒,催着你把它们也一块更新掉。
一口气写完几份大文档再加上挑错检查,往往得花上一小会儿。如果页面一刷新、或者不小心关掉标签页就得从头再来,实在太折磨人了。所以我把写文档的活儿放到了后台慢慢跑,页面上会实时显示它正在写哪一步;就算中途把网页关了去忙别的,回来重新点开这个方案,照样能接上刚才的进度往下看,写好的东西一字不落。
React、TypeScript、Tailwind CSS、Vite
Python、FastAPI、Pydantic、SQLite
LangChain、Skills
很多时候我们脑子里冒出一个好玩的点子,最后之所以不了了之,往往就是卡在了“想得挺美,但不知道第一铲子往哪儿挖”的阶段。要把一句轻飘飘的“我想做个小工具”,变成哪几个页面、点哪个按钮、一步步怎么写出来,中间其实要补好多细碎的功课。
做「HarnessPRD」的时候,我最喜欢的就是看着一个原本只有两三句话的模糊念头,在几轮一问一答里慢慢长出血肉,最后变成一整套能直接拿去开工的说明书。不管是自己独立折腾新项目,还是跟工作室的朋友一起干活,先把想法聊透、把纸面上的账算清楚,真正撸起袖子写代码的时候就会顺畅很多。
找粮库、约时间、看排队进度。跟语音助手「小齐」说说想办的事,让卖粮这趟路少一点来回打听。
收完粮食往外拉的时候,农户最怕两件事:一是不知道附近哪个粮库今天收粮、价格怎么样;二是开着满载的大车赶过去,结果门口已经排起了长队,只能在路边干等大半天。
做「齐爱农」这个微信小程序,就是想帮大家在装车出发前先把这些事摸清楚。打开手机就能看到附近的收储点和行情,提前约好送粮的时间;就算到了现场,也能在手机上看一眼自己的车走到了哪一步、前面大概还要等多久,不用一直守在窗口打听。
考虑到很多种地的大叔大婶平时不习惯在手机上一层层翻菜单、打字,里面专门做了一个叫「小齐」的语音助手。按住说话就行,哪怕带着当地口音或者方言,随口问一句“附近哪儿能卖粮”“我今天想去送粮”,它都能听明白,顺着话头帮着查地方、办预约。
我在这个项目里主要负责「小齐」背后的 Agent 开发,也就是让这个语音助手不仅能陪人说话,还能真的帮大家把卖粮的事办成:
大家来问问题的时候,很少会一板一眼地说标准词。有人上来只说一句“我想卖玉米”,有人会问“现在去某某库还排大队吗”。我做的就是让「小齐」先听懂大家心里真正想办哪件事。
光回答几句说明是不够的。比如农户说想去卖粮,「小齐」如果发现还不知道他想去哪个片区、送什么粮,就会顺着话头多问一句;等问清楚了,直接帮他把附近的收储点找出来,或者带着他把预约办好。
车到了粮库之后,大家最挂心的就是“到哪一步了、还要等多久”。把这部分的查询接进对话里之后,只要开口问一句,助手就能去把当前的环节和预计等待时间查出来告诉他。
平时说话本来就是一句接一句的,很少有人一口气把粮食品种、去哪个库、哪天去全说完。所以在做对话的时候,我专门处理了这种“半截话”的情况——缺哪样就温和地追问哪样,聊着聊着就把事情办完了,不用像填死板的表格那样一旦填错就重来。
查出来的粮库信息或者排队状态,如果直接把后台生硬的数据搬出来,看着依然费劲。我把助手的回复尽量理成了顺口、好懂的话,把最要紧的地点、时间和下一步该干啥放在最前面。
2026 年 10 月,「齐爱农」在山东聊城正式投入试运行,后来还上了央视网的报道。
以前做 AI 相关的东西,很容易光顾着琢磨怎么让它看起来更聪明;但在这个项目里,想到屏幕那头可能是正忙着秋收、急着拉粮出门的农户,就会觉得“少让人点两下屏幕、少让人在粮库门口白等一会儿”,比什么花哨的说法都实在。
工作里觉得哪儿能改得更省事,就在手机上提个建议。我参与了专题评审和多部门审批,让建议交到对应的同事手里,接着往下看。
平时在厂里或者办公室干活,总会有那种时候:天天走同一个步骤,心里忍不住嘀咕一句“这地方要是改一下,不就少跑一趟了吗?”但以前这种念头往往随口一说就过去了,或者要填纸质单子、一层层找人签字,嫌麻烦就干脆算了。
「海晶集团全员创新平台」就是给集团和各个分公司的三千多名员工做的一个微信小程序。大家在日常工作里不管是发现了安全隐患、想到了省事的小窍门,还是觉得哪个地方能改得更顺手,掏出手机随手就能写下来提上去。
提上去的点子也不是石沉大海,小程序里会有人接手往后看、给反馈。等于给平时干活时冒出来的有用想法,找了一个随时能递上去、也真的有人回应的地方。
一条建议从员工手机里点下“提交”只需要几秒钟,但落到后台,经常会遇到一个很现实的问题:这事到底该谁来看?我在这个项目里,主要就是负责把“提完之后怎么往下走”这段路铺顺:
集团里有时会专门征集某一类的点子,比如安全上的、生产上的,或者某个分厂自己的活动。不同主题看的重点不一样,集团本部和各个分公司的部门设置也不太一样。我把这块做成能按主题和单位灵活安排的样子,让提上来的建议一开始就能分到对的人手里,不用在群里问来问去“这归谁管”。
有些建议牵扯的事情比较多,光一个部门拍板还不行,得车间先看看靠不靠谱,再交到技术或管理部门接着评。我参与了这段多部门接力的开发,把谁先看、谁后看、看完往哪儿转安排清楚。前面的人处理完,下一位负责的同事手机上就能接着看到,提建议的员工自己也能看清现在走到哪一步了。
集团加分公司有三千多人,如果让大家提建议的时候自己去选“该交给我厂哪个科、再转给集团哪个部”,估计没几个人分得清。所以做的时候,尽量把这些绕人的规矩藏在后面:提建议的人只管挑个大概方向、把想法写清楚;至于这条建议该在哪些部门之间转、在集团本部和分公司里分别找谁,都由程序在底下静悄悄地跑完。
做这个项目的时候挺有感触的。很多在工厂、企业里用起来的系统,看着没有那么多花哨的效果,但它管的是大家每天上班最实在的事。把“谁先看、谁后看”这些藏在背后的顺序理顺了,一线同事随口提的一句“这里能不能改改”,才不会在中途掉地上,能顺顺利利地落到实处。
给 Agenta、LoopX、DeerFlow 和 Superset 修过一些小问题,也把自己做的 AgentTemplate、EnvSetup 放出来,和大家一起用、一起改。
平时写代码,没少用开源社区里现成的好东西。偶尔碰上一个不太顺手的地方,或者一个能复现的小问题,就会顺着代码找一找:要是自己能解决,也试着把它改好,再把改动提回去。
这里记下几次给别人的项目搭把手的经历,也放了两个自己开源的小工具。改动有大有小,能让下一位用到它的人少踩一个坑,就挺值得。
原本只是一条工具连接记录出了问题,结果其他正常的连接也一起不见了。我把这件事拆开处理:有问题的那条单独记下来,其他连接照常显示。排查一个小问题时,至少不用先面对一张空白列表。
报告的名字怎么写、通知里的时间怎么认、进度用哪些词描述,几处都自己抄一份,改起来就容易漏。我把这些重复的约定放回各自负责的地方,其他地方直接引用。这样改一处的时候,几边也能跟着保持一致。
让 AI 去网页上找资料时,等待时间如果填成零、负数,或者一个无效的值,网页明明能打开,工具也可能直接报错。我给这些值补上了检查,不合适时就回到默认等待时间,也加了测试,把这个容易忽略的小坑记住。
把日期归到某个季度的开头,本来只是一次普通的整理。但原来的写法会把日期里的时区弄丢,后面再拿它做比较,就可能报错。我调整了这一步:日期换到季度开头,原有的时区也一起留下来。
每次做一个新的 AI 小助手,总要重新接工具、记对话、处理任务中途停下来的情况。我把这些经常重复写的部分整理成一个能按需要取用的模板,下次有了新想法,就可以把心思多放在具体要做的事上。
换台电脑或者重装系统后,装工具、配环境总要折腾一阵。我把这些事做成了一个桌面小工具:选好需要的东西,看清准备怎么装,再交给它一步步处理;也留了快照和回滚,方便不合适时退回去。
补一个自己也会遇到的小问题,看懂一段以前没看过的代码,再跟维护者聊明白怎么改。每次留下的东西可能不大,但也算给经常用到的开源工具搭了把手。
中午看到有人说东灵山有云海,立马买票,晚上就到了山脚下。 在山上挨冻挨到早上,总算等到了日出。出发的时候有多痛快,等日出的时候就有多冷。这张合照,给这趟说走就走的旅行留个纪念。
中午看到有人说东灵山有云海,立马买票,晚上就到了山脚下。
在山上挨冻挨到早上,总算等到了日出。出发的时候有多痛快,等日出的时候就有多冷。这张合照,给这趟说走就走的旅行留个纪念。

爬完华山,走下来之后,在牌坊前拍了这张照。给这趟爬山留个凭证:华山,通关!
爬完华山,走下来之后,在牌坊前拍了这张照。给这趟爬山留个凭证:华山,通关!

和周周玩完飞拉达,拿着证书拍张照。一个用证书挡脸,一个负责举手机,背后就是山崖。 挑战完成,合照也存好了。
和周周玩完飞拉达,拿着证书拍张照。一个用证书挡脸,一个负责举手机,背后就是山崖。
挑战完成,合照也存好了。

和周周把《双人成行》打通关了。屏幕里放着片尾字幕,屏幕外把两个手柄举起来,也拍一张结算照。 这一局存档,下次玩什么,回头再慢慢挑。
和周周把《双人成行》打通关了。屏幕里放着片尾字幕,屏幕外把两个手柄举起来,也拍一张结算照。
这一局存档,下次玩什么,回头再慢慢挑。

从古风照片、动漫形象到黑白线稿,记下 Twiink 网站人物形象的制作过程。
想给这个小空间安排一个自己的形象,就从一张古风照片开始。花花的发饰、捧在手里的花,还有那身衣裙,都想一起留下来。
先变成动漫形象,再换成黑白线稿。画里的自己慢慢和网站的手绘风格凑到了一起,现在就留在这里,替我跟来串门的人打个招呼。



希望可以看见天池。
想做的
想做的
想做的
欢迎技术交流、项目合作,也欢迎聊聊实习和工作机会。
微信:xyz13990529155
想更快了解我做过什么,可以先看看这份简历。
在线查看简历 PDF 下载简历 PDF也欢迎来工作室串个门。
工作室 CSDN微信视频号:MatrixStudio996
嗨,我是 Twiink。平时写写代码,也画点画,经常因为一句“要不试试?”就给自己找点事情做。 这里放着我折腾过的东西,也想慢慢攒一些照片、画作和日常。欢迎随便逛逛。
可以先去画廊转一圈。那里有跟着小宇航员逛科技馆的,有在乐园里闯关换礼物的,也有陪着学点东西、帮忙翻资料和整理小想法的。 每张卡片后面,都记了一点做它时的小故事。看哪张顺眼就点开看看,说不定会碰到一个你也觉得有意思的小细节。
会画两笔,攒几张喜欢的画,也喜欢穿上古风衣裙去拍照。偶尔什么都不干,就发会儿呆。 脑子里突然冒出点什么,也会先记下来,留着以后慢慢折腾。
除了这里,也可以去我的 GitHub(https://github.com/Twiink)串串门。 看到感兴趣的东西,欢迎来问我。有些东西做着做着,自己也会冒出“下次再试试另一种做法”的念头,刚好可以一起聊聊。
技术上的小问题、想一起做的东西,或者实习和工作机会,都欢迎来聊。 不用一开始就准备得特别完整。先说说你在想什么,我们再一起看看有没有能接着做的地方。
邮箱、GitHub 和微信都放在「联系我」里,也留了站内留言入口,挑一个顺手的方式就好。 加微信时带一句“从 Twiink's Space 来的”,就知道是这里碰到的朋友啦。