如果有人在今晚十二点告诉我,一个多小时以后,这块刚拆出来的开发板不仅能和我对话,还能查我公司的项目、读时间线,并且真的往 OPC Feed 里写下一条事件,我大概不会相信。那时候我连一根合适的数据线都没有,脑子里想的还是:嵌入式开发应该很难,可能要先学 C、装环境、看芯片手册,再花很长时间把板子折腾明白。
可到凌晨两点,这个最小闭环已经跑通了。
这篇文章不是一篇开发板教程,也不是"一个小时学会嵌入式"的速成故事。我想记录的是另一件事:为什么一件看起来在一个晚上突然发生的事情,其实连接着我小学时写 QBasic、第一次看到 GPT-3.5、自学 Python、在不知道 Agent 这个词时自己搓出循环、进入 Agent 团队工作、后来使用 Cursor,以及开始做 OPC Feed 的许多零散经历。
今晚只是这些原本不在一条线上的东西,第一次同时落在了一个可以听见、可以回答、可以真正执行操作的硬件上。
事情还得从几个小时前说起。
我刚把一块微雪 ESP32-S3-AUDIO 开发板接上电。手头没有合适的数据线,不能把它连到 Mac,更谈不上安装 ESP-IDF、编译固件或者调试串口。我原本以为,接触开发板至少要先看很多教程,装一堆环境,踩一遍驱动的坑,然后从最简单的 Hello World 开始。
结果它上电以后先说了一句:"进入配网模式。"
我顺着这句话往下走,用手机给它配了网,把设备绑定到小智后台,试着和它说话。后来发现小智有 MCP 接入点,我又把 OPC Feed 的 MCP Server 通过一个桥接进程接了进去。再后来,这块刚刚上电的开发板已经可以查 OPC Feed 里的项目、读时间线、调用工具,甚至真的写入了一条事件。
从上电到跑通这个闭环,大概只用了一个多小时。
这当然不能说明我已经会做嵌入式开发了。我连一行板端 C 代码都还没有写,连数据线都没有准备好。硬件是乐鑫做的,板子是微雪做的,小智固件和云端能力也是别人做的。MCP、OTA、唤醒、语音识别、文本转语音,这里面有大量现成的封装。
但我还是很开心。
这种开心不是因为我误以为自己在一个晚上发明了什么,也不是因为"一个小时做出 MVP"很适合拿去发朋友圈。它更像是很多年前埋下去的东西,在这个凌晨忽然接上了。那些经历以前是散的,有些甚至已经被我忘了。今晚我才看见,原来那些路并没有白走。
我最早接触的编程,是 QBasic
我小时候参加过 QBasic 的计算机编程比赛。
带我们的好像是学校的数学老师,后来他是副校长还是校长,我现在已经记不太清了。比赛我还拿过奖。那时候学的是面向过程,变量、赋值、循环、判断、子程序,还有 GOTO。我有个同学老把 GOTO 叫作"狗腿语句",这个说法我一直记到现在。
后来我没有从事程序员的工作,很多东西也就放下了。再回头学 Python 的时候,我发现编程对我并不完全陌生。变量声明、函数定义、循环语句、赋值,这些东西换了一套语法,骨架还是能认出来。面向对象多了类、实例、方法,刚开始听起来像一整套新世界,真正接触以后也没有那么吓人。
所以我有时会想,我并不是从 2023 年或者 2025 年才第一次接触编程。更早的时候,我已经短暂地看见过它。只不过当时年纪小,也不知道它以后会在我的生活里占什么位置。
GPT-3.5 出现的时候,我有过一次很强烈的"觉醒"
真正让我重新靠近编程的是 GPT-3.5。
我第一次看到相关演示时非常激动。那种感觉不只是"这个软件挺厉害",而是脑子里一下涌出了很多畅想。我说不清那些畅想当时有多少是准确的,但我能感觉到,某些事情正在发生变化,而且这个变化可能会把普通人和技术之间的距离拉得很近。
那时候我开始学 Python。
我看过很多教程。印象很深的一个老师叫小迪老师,他主要讲 AI,经常在 PyCharm 和 Notebook 里演示。屏幕是白色的,字是黑色的,他讲话的语速和语调都很平缓,声音还很脆。这个组合非常容易让人睡着。我经常是睡觉前打开教程,看着看着就开始困,有时甚至看到头痛欲裂,最后不知道自己到底学进去多少。
后来还看过一位叫菜菜老师的女生。她讲得也很好,声音会更高一点,更生动一点,对我来说不那么容易睡着。小迪老师可能更通俗,菜菜老师更能把我从困意里拽回来一点。
现在回头看,那段时间我其实没有自己想象中那么认真。我看了很多,知道了很多名词,也确实学会了一些东西,但经常一知半解就过去了。有些环境需要翻墙,我嫌麻烦;明明知道应该多试一试,还是会因为惰性停下来。于是我主要用 DeepSeek、豆包这一类当时更容易用到的工具,不停地问:"这个怎么办?""那个怎么写?"
我不能把那段时间美化成勤奋自律的成长史。里面有好奇,也有懒惰;有兴奋,也有大量看过以后就忘掉的东西。但至少,我开始重新写代码了。
我曾经以为自己发明了一种东西
2025 年前后,我开始尝试写一种可以循环执行任务的程序。
那时候我甚至不知道这个东西应该叫 Agent。我只是觉得,大模型不能只回答一次就结束,它应该能够判断事情做完没有。如果没做完,就继续调用工具,继续执行;如果做完了,再给出最终结果。
我当时设计了一个 JSON 字段,名字就叫 Final Answer。让大模型输出 True 或 False。如果是 False,程序就回到管线里继续跑,继续调用工具;如果是 True,就把内容作为最终输出。我还把一些 Python 爬虫接口接进去,让它可以自己查资料。
这个东西真的被我搓出来了。
我当时还挺沾沾自喜,觉得自己好像发明了一种新的机制。身边的人听不懂,我也不知道该用什么行业术语解释,只能描述那个 True、False 和循环。
后来我才知道,原来这就是 Agent 思路里非常朴素的一种实现。外面早已有 ReAct、工具调用、规划、循环、终止条件等一整套概念。知道这件事以后,我并没有觉得之前的自己特别可笑。相反,我觉得那次"误打误撞"挺重要。因为我不是先背下 Agent 的定义,再照着教程抄一个例子。我是先遇到了一个问题,自己想出一种办法,然后才发现这个办法在更大的技术语境里叫什么。
当然,只靠自己琢磨也有局限。如果一直不知道外面已经走到了哪里,很容易重复造轮子,也容易把一个很初级的东西当成重大突破。自己动手和进入共同语境,这两件事都需要。
在Agent开发团队的半年,把我的视野突然拉开了
后来我在网上看到一个Agent团队(前司)的一些宣传,进了他们的群,尝试和里面的人交流。
当时我的见识其实挺浅。我没有做过正式程序员,也没有真正见过软件开发公司是怎么运转的。我甚至以为他们是一个很小的公司,所以还带着一点"我也做了些东西,想和你们交流学习"的心态去聊。结果交流得不错,我真的去了那里,入职做了大概半年。
那半年对我的影响很大。
这个团队本身是从一个大集团的 IT 部门里再挑出的一小波人,专门做 Agent 的攻坚、研发和创新,可以暂时不那么急着考虑效益。我在那里见到了很多优秀的同事。以前我对"技术团队"的想象很抽象,到了那里才看见,原来有些人真的可以把东西做得那么快、那么好,而且他们说话、判断、拆问题的方式,都和我以前接触到的环境不一样。
我最开始承担的一项工作是大量阅读。每天读几十篇公众号文章,再写十来篇公众号文章。文章当然大量使用 AI 辅助,俗称"洗稿"。但洗稿也不是把原文扔进去让模型随便改几个词。AI 味太重,会被同事瞧不起,也会被老板喷。你得做选题,要知道什么值得写,要把多篇内容融合起来,还要联网补资料,再让 AI 改写、重组、压缩。
这套流程里,有些部分可以自动化,有些部分当时还很笨。比如截图、选图、做图片,以及反复和 AI 磋商标题,常常占掉很多时间。每天大量阅读以后,我会在脑子里筛选选题,再挑一个或两个去做。表面上看是批量内容生产,实际上它逼着我持续接触最新的 AI 概念,也逼着我判断什么东西值得被讲出来。
更大的冲击来自同事。
我看到一些前端同事和产品经理借着 AI 的能力,非常快地做出产品。那时候我还不懂前端,我的世界主要是 Python,是脚本、接口、爬虫和运行在终端里的程序。后来我开始接触 React、Next、Docker、PostgreSQL、Langchain、Streamlit、Vercel、Transformer、Context、Prompt、AgentLoop...等等等等数不胜数
Cursor 对我来说不是换了一个编辑器。它像是突然打开了一扇门。以前我得先会,才敢做;后来我可以一边做,一边问,一边读代码,一边让 Agent 帮我找到入口。这个顺序的变化很重要。
我开始用费曼学习法,把 AI 当成一面随时可以追问的墙
在前司那段时间,我每天读很多文章,也关注了很多 AI 公众号和博主。有些概念第一次看到时,我其实理解得很偏,甚至完全理解错了。
我会在外面逛街时问 AI,在食堂吃饭时问,在商场里问,在床上睡觉前继续问。最常问的不是"请给我一个定义",而是:"我这样理解对不对?"
我会先用自己的话把一个东西讲出来,再让 AI 挑错。这个方法后来我也分享给朋友。我觉得使用 AI 学习,费曼学习法特别有效。你不能一直让它说给你听,因为它说得流畅,并不代表你真的理解了。你得反过来说给它听,让它对你的叙述做手术刀式的矫正。
我印象比较深的一次,是研究 React 和 Vue 的生态演进。我想知道它们为什么诞生,解决了什么问题,后来又生出了哪些东西。Next.js、Nuxt 又是什么,所谓全栈或者前端全栈到底是什么意思。
我第一次认真看到这些东西时觉得很新鲜。后端的一些原理,我反而觉得更朴素,像数学和逻辑,跑在终端里,看输入和输出。但前端可以把东西直接变得漂亮、可见、可操作。到了后来,AI 应用开始爆发,生图、PPT、Slide、封面设计、内容创作工具都和前端技术结合得很深,我更能理解为什么前端并不是"做页面"那么简单。
那段时间我得出一个有点笨、但对我很有用的结论:不要逃避任何一个不会的单词。
一个单词背后可能不是一个定义,而是一整套技术栈。你听同事说 Next.js,如果因为不懂就假装听懂,或者觉得以后再说,那你避开的其实不是一个英文单词,而是一整片知识拼图。至于怎么搞懂,可以读文档,可以找老师,可以参加培训,也可以不停地问 AI。方法不重要,重要的是不要让那个洞一直留在那里。
"被 AI 腌入味了"
之前一位同事评价我,说我"被 AI 腌入味了"。
这句话挺好笑,我也一直记得。现在回头看,我大概比那时候腌得更入味了。
我已经很难把 AI 只当成一个偶尔打开的工具。它进入了我阅读、写作、编程、研究、做产品和自我反省的过程。我会把 Cursor 当成开发环境,也会在凌晨两点对着它说一大段人生经历。这里面当然有情感抒发的需要。一个人长期坐着工作,很少有人能随时听你把一个念头从头说到尾。有一个对象能接住这些话,哪怕它是模型,也会让思路更容易继续往下走。
但它对我又不只是陪伴。我把话说出来,是在整理自己。说的过程里,我会发现哪些地方一直含糊,哪些地方其实已经想明白,哪些判断只是兴奋时的幻觉。最后这些内容还可以被沉淀进 OPC Feed,成为时间线上的一条记录,甚至以后改成文章对外讲。
以前人们写日记,是把事情写进本子。我的记录方式越来越像是在和一个 Agent 对话,然后让对话落进自己的系统里。
2026 年,我开始做自己的产品和公司
今年我开始自己做产品、开公司。
到现在还没有取得特别好的收入,这件事没有必要粉饰。但家人支持我,老婆也支持我,所以我有一种可以扯开膀子干的感觉。
现在很多人会调侃"一人公司",也有人嘲讽 OPC,觉得一个人不可能真的完成一家公司的工作。我对这件事的看法没有那么浪漫。我不觉得 AI 或者 OPC 模式可以解决人的生存问题,也不觉得装上几个工具就能轻松挣钱。
从逻辑上说,生存本来就是竞争问题。一种工具能帮我提高效率,也能帮别人提高效率。它能帮我挣到一份工资,同样也能帮别人挣到。最后大家还是会回到竞争中,不会因为某个新工具出现,就突然拥有一条没有成本的捷径。
所以我更愿意把 OPC 和 AI 看成放大器。
你有创造力,它可以放大创造力。你有执行力,它可以放大执行力。你本来就不知道要做什么,它未必能凭空给你一个真正属于你的方向。你本来不愿意动手,它也不会永远替你承担所有后果。
这也是我做 OPC Feed 时越来越明确的一件事。我想做的不是一个更会聊天的聊天框,而是一套能让人和 Agent 共用项目、事件、文档和工作线的系统。AI 做过什么,应该留下记录;一个结论是怎么产生的,应该能回去找到;今天的研究,明天不该重新从搜索框开始。
然后就到了今晚这块板子
这两天,我先用 OPC Feed 做了一些调研。调研结果留在 Feed 和时间线上。之后继续用 Cursor 查资料,在京东找硬件,下单买回来。板子到了以后,我又继续让不同的 AI 工具帮我查微雪、乐鑫、小智、ESP-IDF、MCP 和 OTA。
这些事情并不是严格串行发生的。我会同时推进几条线:一边理解硬件,一边查文档,一边验证小智后台,一边把结论写回 OPC。以前我可能会觉得,要做嵌入式开发,就必须先从 C 语言教材、芯片手册和环境安装开始,一层一层学完才有资格动板子。
今晚我换了一条路径。
我先给板子上电。它说进入配网模式,我就先体验出厂固件。发现它是小智,我就研究小智后台。发现有 MCP 接入点,我就想办法把 OPC Feed 的 MCP Server 接进去。标准 MCP 是 Streamable HTTP,小智给的是一个带 Token 的 WebSocket 接入点,中间需要桥。我在本机跑起桥接进程,处理认证和协议转发。小智后台显示在线以后,板子就拿到了 OPC 的项目、事件和文档工具。
最后我对着它说话,让它写入一条事件。事件真的出现在 OPC Feed 里。
到这一步时,我突然有了一种量变碰到质变的感觉。
单独看,每一块都不是我发明的。ESP32-S3 是乐鑫的,小智是开源项目和平台,微雪做了板卡,MCP 是协议,Cursor 和模型帮我读文档、写桥接、查问题。可如果没有人把这些东西放到同一张图上,它们就只是散落的零件。能不能迅速看懂各自是什么,知道问题卡在哪一层,选择先绕过什么、以后再补什么,然后把它们接成一个能工作的闭环,这件事本身仍然需要判断和执行。
我现在当然还不会真正的板端开发。数据线到手以后,我还要安装 ESP-IDF,读微雪示例,学会编译、烧录、看串口日志。以后还会碰到音频缓冲区、I2S、唤醒词模型、网络重连、内存限制、OTA 安全和各种硬件问题。今晚的 MVP 没有消灭这些难题,它只是证明了一件更早、更重要的事:这个产品的体验可以成立。
桌上有一个东西,我可以对它说:"帮我看看现在有哪些项目。"它可以回答。也可以让它读动态、写事件、调用 OPC 后面的工具。明天把它拿给投资人或者客户看,对方不需要先理解 ESP-IDF。他只要看到,一个原本躺在网页里的组织系统,现在有了一个可以放在桌上的入口。
我高兴的,可能不只是这个 MVP
我想感动一下自己,又觉得这样说有点别扭。
因为今晚的结果来得太快,快到好像没有经历传统故事里的那种艰苦。没有连续熬几个月焊板子,也没有在一堆寄存器和驱动里爬出来。甚至连数据线都没有。我只是顺着现成的封装,一层一层问下去,就做出了一个能互动、能写入的东西。
可这不代表路没有走过。
路可能是在小学机房里写 QBasic 的时候走了一点,在同学喊"狗腿语句"的时候走了一点;在 GPT-3.5 演示让我激动得睡不着的时候走了一点;在小迪老师的白色屏幕前看得头痛欲裂、最后睡着的时候走了一点;在 DeepSeek 里反复问 Python 怎么写的时候走了一点;在我自以为发明了 Final Answer 循环的时候走了一点;在前司每天读几十篇文章、写十来篇稿子的时候走了一点;在我第一次弄懂 React、Next.js、Docker 等东西的时候又走了一点;在 Cursor 里一次次把不懂的单词追到底,又走了一点。
这些路平时没有排成一条直线,所以我会误以为自己走得很慢,甚至觉得很多东西只是浅尝辄止。今晚它们临时接到了一起。我能读懂一点文档,能看懂一点代码,知道后端、前端、Agent、MCP 和硬件分别处在哪一层;也知道什么时候不要逞强从零开始,而是先利用别人已经封装好的能力验证产品。
所以我开心的,不只是一个开发板终于能写 OPC 事件。
我是在这个凌晨确认了一件事:我过去那些看起来不连续的学习,已经开始形成一种可以调用的能力。它还不扎实,也不完整,但它能在真实问题出现时被组织起来,最后做出一个东西。
我不想把它写成一个励志故事
这篇自述如果以后拿出去讲,很容易被剪成一种标准故事:小时候学编程,中途转行,遇到 AI,重新觉醒,一人创业,一个小时做出硬件 MVP。
真实情况没有这么整齐。
我有很多懒惰的时候。嫌翻墙麻烦,知道该学也没学;教程看了不少,很多没有真正掌握;理解经常有偏差;做内容时也经历过大量"洗稿"工作;创业到现在收入也不理想。今晚做出来的东西高度依赖小智平台和本机桥接,Mac 一休眠,桥就可能断。它离真正能交付的产品还有权限隔离、专用 API Key、服务器常驻、监控、CI/CD、OTA、自研固件和稳定性测试。
这些都是真的。
但另一件事也是真的:我没有停在想象里。我把板子买回来了,把电接上了,把账号认证做了,把 MCP 接通了,把事件写进去了,还把过程、截图、架构和后续问题继续沉淀回自己的系统。
做得不完整,和没有做,是两回事。
OPC 对我来说,越来越像我自己的工作记忆
今晚还有一个让我觉得很有意思的地方。
我用 OPC Feed 研究怎么做语音助手,然后又把语音助手接回 OPC Feed。小智通过 MCP 调用 OPC 的项目和事件工具,写下"首次启动";Cursor 帮我整理调研,继续写入里程碑和文档;现在,我又通过一段很长的口述,把自己的经历放回同一条时间线。
产品、开发过程和个人叙事,在这里形成了一个小小的回路。
这可能也是我真正想做 OPC Feed 的原因之一。我不希望 AI 每次都像刚认识我。也不希望一个项目的结论散落在聊天记录、浏览器标签、群消息和脑子里。工具执行完以后,最好能留下事实;研究结束以后,最好能留下文档;一个凌晨为什么让人高兴,也可以留下来。
不是所有记录都为了管理,也不是所有内容都必须立刻变现。有些东西留下来,只是为了以后回头看时,我能知道当时的自己是怎么想的。
写到这里,板子还在桌上
它现在还只是微雪的开发板,没有外壳,没有我自己定制的唤醒词,也没有 OPC 的品牌。它运行的是小智固件,连的是小智平台,本机还要开着桥接进程。严格来说,它还不是"我们的桌面语音助手"。
可它已经能让我看到那个东西可能是什么样子。
以后也许会给它做一个外壳和按钮,给不同办公室放一台;也许会把桥接迁到服务器上,按客户和智能体管理权限;也许会做语音助手专用的 API Key;也许 Agent 可以经过审批调用 CLI、触发 CI/CD,再由 OTA 把新固件送回设备。再往后,我们可能不再依赖小智云,而是用自己的固件和 Voice Runtime,把听、说、记忆、工具和审计都接进 OPC。
这些现在都只是后续问题。今晚不需要把它们全部解决。
今晚我只想记住一个画面:凌晨两点,我坐在桌前,一块几个小时前还很陌生的开发板已经可以听我说话,并把一句话写进我自己做的系统里。
以前我总觉得,等我把某项技术彻底学会以后,我再去做那个东西。现在我越来越习惯另一种顺序:先把问题弄清楚,先找到最短的可验证路径,先让它工作,然后再沿着真实暴露出来的问题往深处学。
这条路未必更轻松,但它更像我现在的路。
至于"被 AI 腌入味了"这句话,我想我可以认领。只是我希望自己不只是泡在 AI 里,而是真的借着它,把那些过去想做却没做成的事情,一件一件做出来。
原文发布于 OPC Feed:凌晨两点,我把一块开发板接进了自己的世界