一个人就是一个软件公司:一个编程小白,用 AI agent 把"桌面杂乱"做成了开源产品
一、我的桌面,曾经一塌糊涂
先交代背景:我不是程序员。平时用电脑,桌面永远是满的——文件、快捷方式、临时下载,铺得密密麻麻,找个东西要翻半天。
我想要的其实很简单:一条能自定义的"工具条",把常用的东西归拢上去,能拖进去、能吸附、能分组,关掉再开还在原处。市面上的工具要么太重,要么不合我的习惯。
问题是,我没有写工程代码的经验。
但 2026 年,随着国产 AI-code 编程助手的逐渐成熟。我决定试一件事:把"做一个桌面工具条"这个念头,丢给 AI,看它能走到哪。
结局是:六天,我有了能用的软件;再往后,我把它开源到了 GitHub(github.com/CharlieTD/CharlieWorkbar),任何人都能下载、改、再用。
这篇文章不打算教你"三天成为全栈工程师",只想老实记录:一个真小白,是怎么借助几款 AI agent,一步步把幻想打磨成真正的产品。包括那些傻坑、那些弯路。
📷杂乱桌面 → 工具条

二、我的"AI 工具箱":不是一个,是一排
我先后用过好几款:WorkBuddy、CodeBuddy、Qoder(Qoder CN / QoderWork),还有 Claude Code 搭配 DeepSeek。
我的用法很朴素,甚至有点"脚踩多船":哪段代码卡住了,就换个 agent 问问;同一个问题,有时候问两个,对比谁的改法更稳。它们不是替我思考,而是充当我的"外包工程师"——我负责说清楚要什么、哪里不对劲,它们负责把话转换成能够运行代码。
回头看,这种"多 agent 对照法"反而帮我避开了单个助手钻牛角尖的情况,同时也能横向比较多个模型在 code 中的编程思想。
📷多 Agent 协作

三、我们是怎么配合的
磨出了一套固定节奏,写在这里,因为它比代码本身更值得记:
- 我说需求
——口语化的,比如"工具条别叠在一起""关了再开,图标要回去"。 - AI 改代码
——它直接在我项目里动刀。 - 编译验证
——目标是 0 错误 0 警告。这是底线,AI 也怕"能跑但一堆警告"的代码。 - 我手动测,它截图辅助
——共用一台电脑时,它截图前会弹窗提醒我,不偷偷动。当然这也是我让其编写的警告程序和流程。 - 版本同步 + 打包
——每次迭代,版本号、关于窗口、项目文件三处必须一起改。这条规矩是 AI 帮我定的,避免了"代码改了、版本没动"的混乱。
一句话:我做产品经理 + 测试,它做工程师。

四、从 1.0 到 1.8.1:八次大迭代,全是踩出来的路
更新日志里,版本从 V1.0 一路走到 V1.8.1,大的版本迭代八次,小的修修补补十几次。挑几条真实的讲。
1.0–1.5:先把"能跑"做出来
第一版就是一个透明圆角的窗口,能拖文件进去。现在看很糙,但当时够我兴奋。
坑是真坑:
引入一个绘图库后,一个叫 Color的词突然编译报错。原因很蠢——有两个同名的类撞了。AI 教我一行using Color = System.Windows.Media.Color;起别名,解决。早期发布是一堆 exe 加 5 个 dll。我盯着屏幕想:"拷到别的电脑能跑吗?"后来改成单文件 exe。但紧接着踩了第二个坑:开了压缩,内存从 143MB 直接飙到 278MB。结论很硬:单文件压缩必须关掉( EnableCompressionInSingleFile=false)。
1.6:工具条之间,别打架
这版加了开机自启、工具条之间的碰撞和磁吸——挨得近就吸在一起,别重叠。
典型错误来了:我用整个窗口算间距,结果两条工具条明明看着很近,实际隔了 32px 透明边距。根因是窗口四周有 16px 透明内缩被算进了间距。改成"基于可见内容边界"计算后才正常。
还有个角落闪烁的 bug:靠近屏幕右下角时,工具条在水平 / 垂直之间反复横跳。加了个"角落保护"——两条边同时进吸附区就锁方向,才稳下来。
1.7:让软件"记得"我
这版我想解决最实用的点:关掉再打开,图标和位置都还在。为此要把桌面上的图标先"收编"进软件,退出时再放回去。
bug 清单很真实:
恢复顺序错了,图标找不回; 关闭时状态没存住,白忙; 快捷方式只给新用户建,老用户升级后永远拿不到。
一个个修过来,我学到一条受用至今的原则:先抓状态,再动文件;顺序错了,全盘皆输。

1.8.0:最酷的功能——磁吸成组
做了"磁吸成组":挨得近的工具条自动成为一组,拖一条,整组跟着走。底层用的是图论的连通分量(BFS),还支持 A-B-C 这种间接相连。这是我当时觉得"哇,这像那么回事了"的功能。
1.8.1:把最后的乱摊子收干净,然后开源
最后这版修了一大堆"堆叠、错位、图标被裁"的毛病。根因是把"推开重叠"和"磁吸拉近"两套逻辑混在一起,恢复布局时磁吸把用户摆好的位置重排了。把两套逻辑拆开,恢复时只分离、不拉近,才干净。
然后,我把它开源了。
📷 插图位置:版本迭代时间轴 1.0→1.8.1

五、老实说:我踩过的坑
不美化,列几个印象深的:
- 把症状当根因
:间距大了就调数字,调了没用;真正是透明边距在作怪。 - 恢复布局乱用磁吸
:把用户辛苦摆的位置打乱,像有人趁你不在挪了你家家具。 - 单文件压缩那个内存坑
:一度让我以为电脑坏了。 - 状态保存时机错
:丢过数据,那种"明明设好了却没了"的无力感。
这些坑没有一个是"AI 自动搞定"的。每一个,都是我描述现象、AI 给方案、我测、不对再来的循环。
六、做对的事:亮点与习惯
也有做漂亮的地方,值得记:
- 碰撞 / 磁吸始终基于"内容矩形"
,不是窗口边框,视觉才准。 - 严格区分"交互拖动"和"恢复布局"两种场景
,逻辑不串味——这是整个项目最重要的架构决定。 - 高频操作防抖保存
(500ms 合并一次写盘),不狂写磁盘。 - 单文件发布 + 开机自启 + 系统主题跟随
,真正做到"下载就能用,不用折腾"。 更重要的是,我学会了 "先读代码再改、找根因而非调数字"。这是 AI 逼我养成的工程习惯,比任何一个功能都值钱。
📷 插图位置:自制工具条让桌面清爽

七、把几个 agent 摆在一起:不只是多了几双手
前面说"多 agent 对照法"帮我避开了单个助手钻牛角尖。这一路最意外的收获,是同一个难题丢给不同 agent,给的路子常不一样——有的先建模、有的先试错;有的套成熟算法,有的靠堆判断。横向比下来,我慢慢看清了它们脑子里那套"结构化思维"长什么样,也悄悄学到了一些。
关于"向 AI 学编程思想"这件事,我单独写了一篇(下篇《智能时代,该换一种学法了》)。这里先说结论:一个人带几个 agent,不只是多了几双手,更是多了几种经过千锤百炼的编程脑子。
八、一个人,就是一个软件公司
📷 插图位置:一人即一家软件公司

回头看,我几乎没亲手写几行代码(最终成品大约 2000 行 C# 加 300 行界面描述,绝大部分是 AI 落地的)。但我做了:
- 产品经理
:定义要什么、优先级是什么; - 测试
:手动一遍遍验; - 发布运维
:打包、写更新日志; 现在,还做开源运营:把代码摊开,等人来一起改。
AI agent 把"写代码"这道最高的门槛,削平了。剩下的,是三件谁都能练的事:
你有没有具体的痛点(而不是"想做个 App"); 你能不能把问题说清楚; 你愿不愿意一次次试错。
这三点,跟会不会写代码关系不大。任何人,只要有具体的烦恼和表达清楚的能力,都能借 AI 做出属于自己的小工具。不必等程序员有空,不必凑开发团队。一个人,带着几个 AI agent,就能是一家软件公司。

九、开源了,来一起改
代码已公开,MIT 许可证,随便用、随便改:
github.com/CharlieTD/CharlieWorkbar
仓库里有完整的更新日志,还有我写的两份总结(项目复盘 + 可复用技术模式)。如果你也想做一个"属于自己的小软件",这份从 0 到开源的记录,或许能给你一点底气——
不是因为我多厉害,而是因为,这条路,普通人也走通了。
📷 插图位置:开源分享

【懂术语】——给想动手的你
文章里蹦出的一些词,怕你看着眼生,挑出来说人话。
- 全栈工程师
:能一个人把软件从界面到后台都做出来的人。本文是反讽用法——我想说的恰恰是不必成为全栈,也能做出产品。 - DLL(动态链接库)
:Windows 上一种"可被多个程序共用"的功能零件包。早期发布"一堆 exe 加 5 个 dll",意思是除了主程序还得带着这几个零件才能跑;换成单文件 exe 后,零件都被塞进一个文件里了。 - 单文件 exe
:把程序本身和所需的运行零件全部打进一个 .exe文件,拷到别的电脑双击就能用,不用先装环境。 - 内容矩形 / 透明内缩
:窗口看着是圆角带阴影,四周其实有一圈透明的留白(本文里共 16px)。算间距时如果连这圈透明也算进去,视觉就会"明明很近却隔很远"。所以代码改用"看得见的那块内容"来算,叫内容矩形。 - 磁吸成组 / 连通分量(BFS)
:把挨得近的工具条自动归为一组。底层用了图论里的"连通分量"算法,靠广度优先搜索(BFS)一圈圈扩出去找邻居;"支持 A-B-C 间接相连"指的是 B 不挨着 A、但挨着 C,三者仍算一组。 - 防抖(Debounce)
:把"短时间内反复发生的事"合并成"只做一次"。本文里是 500 毫秒内的多次位置变化,只写一次磁盘,避免狂写。 - 状态持久化 / state.json
:把软件的布局、图标等"记忆"存进一个文件,下次打开还能还原。 - 幂等
:同一个操作重复做多次,结果和做一次一样。比如"建快捷方式",不管运行几次都只建一个,不会越建越多。 - 0 错误 0 警告
:编译软件时的底线标准——不仅不能有错,连"能跑但不规范"的提示也要清零。 - WPF / .NET 8
:微软的界面框架和运行平台。本文的软件就是 WPF 写的,发布时把 .NET 8 运行时也打进 exe,所以别人不用单独装。 - MIT 许可证
:一种宽松的开源许可,别人可以随便用、改、再发布,只要保留原作者的版权声明。 - Git / GitHub / 开源
:Git 是记录代码每次改动的工具,GitHub 是托管这些代码的网站;"开源"就是把代码公开,谁都能看、能用、能改。
夜雨聆风