我是音乐人,不会写代码,用 4 个月搭了个几万行的 AI Agent 平台

一、先说结论

我是个做音乐的,编曲、制作。不会写代码。

昨天我把自己造了 4 个月的东西开源了:Real ------ 一个本地优先的 AI Agent 工作台。Rust 后端 + Tauri 2 桌面壳,几万行代码。

这几万行,我一个字都没有手写。

不是"我口述让 AI 敲"那种 ------ 我用的是另一套东西。下面我会讲清楚那套东西是什么,以及我在过程中想明白的几个技术判断。我觉得技术判断比代码本身更值得看。


二、为什么会有这个东西

起点很具体:我想给编曲加个 AI 助手。

我说「给这段吉他加一段鼓」,它就去加;说「照这个旋律补一条贝斯」,它就去补。说得出,就做得到。

但真动手才发现,难的不是"让它听懂",而是让它可靠:

  • 改错了要能退回去
  • 每一轮干了什么要留得下痕迹
  • 上下文会爆,爆之前得能归档而不是丢掉
  • 它不能随便删我的东西

这些都不是"模型能力"问题,是平台能力 问题。我缺的不是一个更聪明的助手,是一个自己的、可控的、不裸奔的 Agent 平台。

于是先去造平台。这一造 4 个月。先造工具,再造产品。


三、它长什么样

【此处插入截图:主界面】

一次真实任务进行中的状态(旁白、工具调用、注入的工作规范):

【此处插入截图:运行中】


四、几个我自己最满意的技术判断

1. 工具面只留四个,是按前缀成本算的

我给模型的工具只有四个:read / write / modify / run。

为什么?因为工具定义住在每次请求的最前段,是前缀里最贵的一块 ------ 而且工具越多,模型每轮还要多做一次"我该用哪个"的选择,这也是钱。

所以按能力 收敛到四条:读写改 + 万能命令通道。被砍掉的 search / ask / web_search 实现全都保留着,只是不挂进工具面。search 的能力并进 run(grep -rn 走原生壳),web_search 并进 run + curl。

2. 模型说"我改好了"不算数 ------ 后端自己扫

这条是我最坚持的。

模型很会讲故事。"我已经修复了这个问题""改动已完成"------ 但它可能只是写了句话。

Real 的做法:每轮结束,后端按文件 mtime 自己扫一遍工作区,找出"自某个标记以来被写过的源文件",这个清单不由模型计算、也不由模型解释。然后喂给三处:触发自动验证、卡壳反射(轮数 ≥ 8 且本轮没有任何写入证据,就注入对账事实)、以及给模型看的"这轮改了哪些文件"。

配合一条人格纪律:要求模型每轮跑 git status --porcelain 和 git diff --stat,把实数原样 贴进回复;连续两轮该数字为空 → 判定为亏,不管叙事多漂亮。

3. 收敛循环:不是"问一句答一句"

任务不是一次问答,是一轮一轮收敛:

markdown 复制代码
一轮 = 决策相(上下文 → 模型表态,1 次 LLM 调用)
         ├─ 有工具调用 → 执行相:执行 + 回执进流 → 下一轮
         └─ 纯文本回答 → 收敛相:这就是答案,循环结束

配一套停滞止损:连续零进展到 4 轮注入唤醒提示、8 轮进入只读收窄(只能交总结或提问)、12 轮收束交付。另外还有两个兜底 ------ 全程没改过文件的按纯诊断 30 轮收口,轮数不足 20 不判停机。

判断"有没有进展"的口径是:改文件成功 = 实体进展;首读新文件 / 换新命令成功 = 探索进展;复读旧文件与重跑同一命令不算进展。

4. 提示词当代码管

提示词不是散落一地的字符串,是按部门编制的:每个文件一个职责、一个注入点、一个时机。

排在最前的四份(人格 / 输出纪律 / 旁白 / 留痕)拼成固定的系统前缀 ------ 顺序即缓存,永不重排。剩下的"怎么干活"(检索策略、判结束信号、编码坑)住 specs/,按关键词命中才注入,不占固定前缀。

三条铁律:改话术不改逻辑、改逻辑不改话术;话术变更视同代码变更;一条契约只住一个文件。


五、我到底是怎么"不写代码"造出来的

这才是可能对你有用的部分。

我没有把 AI 当"代码生成器"用,我把它当一个需要被管理的部门。

具体讲三件事:

① 我写的是边界,不是代码。 "这个改动归哪个部门?现有部门能不能承载?这是架构缺口还是实现 bug?" ------ 我在动手前只回答这三个问题。答案决定的东西,比任何一行代码都多。

② 我给每个东西定"归属",而不是"步骤"。 工具归 tools/,规范归 specs/,话术按文件分管各自的时机。定完了,改哪一处、谁会被影响,是自然推出来的 ------ 我不需要记住流程。

③ 判断"它对不对"靠证据,不靠感觉。 每轮结束我去看那些不由模型自己算的数字:改了哪些文件(后端扫的)、测试跑没跑过、连续多少轮没进展。模型的自述我一个都不信。

所以那句话可以这么理解:我不是在写代码,我是在设计一个能约束 AI 把代码写对的系统。


六、现在的状态

  • Windows 上双击 .msi 就能装,不需要 Node、不需要 Rust,WebView2 也打包进去了
  • 没有 API Key 也能跑 ------ 内置模拟模型,全流程能走通
  • 或者用便携版 zip,解压双击就能开,数据跟着文件夹走
  • macOS / Linux 能编译但没验证过,我在 README 里如实标了

说句实话:设置面板里有一部分功能还没完全对接上,是我确实没精力做完了,先摆在那儿。后面会补,也欢迎你基于这个版本自己往下做,不用等我。

GitHub: github.com/Azzrenz/Rea...


它不是终点,是手段。我要做的是那个音乐软件,而它需要一个安全、自主、能长期演化的开发底座。

一个人做不完。多一双眼睛,就少一个坑。

相关推荐
中科智旅x景游宝1 小时前
景区票务系统的消息队列架构演进:从订单到对账的异步化改造实录|中科智旅景游宝
人工智能·ai编程
Eric72592 小时前
职场人学 AI 的正确顺序:先学什么、后学什么
ai编程
张伽蓝ErosJane2 小时前
AI Agent 平台搭建必读:Anthropic 多智能体实验的三个工程警示
ai编程
blackappleD2 小时前
REA 30 万 Star 背后:让 AI Agent 无源码读懂软件的 MCP 逆向工具链
aigc·ai编程
猛犸象限2 小时前
【CJMP】用仓颉跨端做游戏(下):94 关能过、6 关卡住,问题最后出在我们自己这边
ai编程
柯南46682 小时前
【AI工程师精讲】13:微调排查:训练损失很好看,效果却不行
人工智能·ai编程
9i编程2 小时前
4. 带 AI 从零搭低代码平台·踩坑实录:回头补 change-2,欠的账一条条还
人工智能·openai·ai编程
张伽蓝ErosJane2 小时前
AI 软件开发维护期:Claude 388 PR 拆解与适用边界
ai编程
编程火箭车2 小时前
MySQL 拥抱 AI:向量、RAG、AutoML 全进了数据库
数据库·mysql·ai编程·向量数据库·rag·automl·mysql9