我从 0 基础一个月用 AI 编程做了 4 个项目,最后把踩过的坑做成了agent项目纪律系统

0 阅读10分钟

我从 0 基础用 AI 编程做了 4 个项目,最后把踩过的坑做成了agent项目纪律系统

不是标题党。文章里的每一个数字,都来自我硬盘上真实能跑起来的代码。 开源项目直通车:**github.com/tianwena/ai… Star ⭐,这对我很重要)

先自报家门

我不是程序员。不是计算机专业,没刷过 LeetCode,在开始这一切之前,我对"编程"的全部理解停留在"改改配置文件"的水平。

今年我接触到了 AI 编程——不是让 AI 帮我补全代码,而是把整个项目交给 AI agent 去做。一个月下来,我的硬盘上多出了四个完整的、能运行的项目:

  1. MindMap Web —— 一个浏览器里可拖拽的思维导图应用
  2. my_rpg —— 一个杀戮尖塔式的 Roguelike 卡牌游戏
  3. 量化交易模拟系统 —— 多智能体协作的 A 股回测与研究平台
  4. 狼人杀 AI 陪玩 —— 局域网真人 + AI 混玩的狼人杀开黑平台

然后,我把这四个项目反复踩过的坑,沉淀成了一套工程方法论文库——ai-eng-system,开源在了 GitHub 上。

这篇文章不讲鸡汤,讲实话:AI 编程到底能做什么、会翻什么车、以及为什么我最后写出来的是一个"不是代码库的代码库"。


第一个项目:思维导图 —— 学会"先把话说清楚"

做它的动机很简单:我想要一个自己的思维导图工具。

当时我对 AI 说"帮我做一个思维导图应用",得到的是一团能跑但没法用的代码——节点会互相穿模,拖拽后连线断裂,刷新页面数据全丢。后来我才明白问题不在 AI,在我:我以为对方懂,看到成品才发现根本不是我要的东西。

这个教训后来被我们总结成一条铁律:软件开发最常见的失败不是写错代码,是"错位"。

重来的版本就顺利多了。最终成品是 Python FastAPI 后端 + 原生前端 + SQLite:

  • 节点的增删改、拖拽重挂、服务端无环检测
  • 导出/导入 JSON 和 Markdown,往返一致
  • 一套冒烟脚本自动验证全流程

项目不大,但它让我第一次体会到:把需求说清楚,比写代码本身难得多,也重要得多。


第二个项目:卡牌 RPG —— AI 也能"攒"出一个游戏

my_rpg-battle.png 这是四个项目里我最有感情的一个:一个杀戮尖塔式的 Roguelike 卡牌游戏。自家 → 城镇 → 地牢三层结构,树状路线图一层层往上爬。

用 AI 做游戏,最大的优势是"堆量"变得很便宜:

内容数量
卡牌(含升级版本)159 张
遗物70 个
药水38 种
伙伴(三等级,各有被动+主动)15 名
敌人20 普通 + 14 精英 + 5 Boss

换成人手写,光是把 159 张卡的数值表敲一遍就要脱层皮。但 AI 带来的第二个效应是熵增也被加速了——它写代码极快,也极快把项目变成一团泥球。

我被迫学会了三件事:

  1. 数据/逻辑/渲染分层data/ 目录放纯数据工厂,业务系统单独成模块,渲染层一个状态一个文件。不分开,AI 改一处崩十处。
  2. 集成测试是安全网:493 项集成测试。AI 每改一轮,测试跑一遍,崩了就修。没有这个安全网,这个游戏活不过第三周。
  3. 委托式重构:把 main.py 的方法体改成一字不差地委托给各个 Manager,调用点零改动。AI 最擅长的就是这种"机械但要求绝对精确"的手术。

现在它能跑通完整的循环:组卡组队 → 地牢选关 → 树状路线推进 → 篝火/商人/事件 → 战斗结算 → 奖励三选一 → 五层通关。像素字体、稀有度菱形、手牌悬停放大,全都有模有样。

这个项目教会我的是:AI 时代个人做游戏不再是幻想,但"能堆出来"和"能维护下去"是两回事。


第三个项目:量化系统 —— 多智能体的正确打开方式

quant-factor-robot.png 做完游戏,我野心大了:做一个 A 股量化交易模拟系统。但这次我不想让 AI 直接写策略,而是想试一个架构——AI Agent 指挥传统量化工具

核心设计原则只有一句话:Agent 只读证据、写结论,算账由引擎完成。

  • 数据层:AKShare 双源下载(新浪主/东财兜底),沪深全 A 5215 只日线入库 SQLite,离线可复现
  • 工具层:Backtrader 回测引擎 + 9 个注册策略 + 完整 A 股成本模型(佣金/印花税/滑点/T+1/涨跌停)
  • 因子层:因子表达式引擎(AST 白名单,注入 __import__('os') 实测被拒)+ 挖因子机器人/回测机器人/组合机器人
  • 调度层:LangGraph 多智能体——主管/研究员/策略/风控,契约驱动(Pydantic 字段校验),每节点故障降级
  • 交互层:Streamlit 8 页界面 + 38 个插件的插件中心 + 30 项冒烟测试全绿

这个项目里我最想分享的不是功能,而是两个被数据教育出来的教训:

教训一:小样本高 IC 是噪声。 早期用 10 只股票评估因子,挖出的"高分因子" |IC|=0.134,看着很美。换成 120 只全市场抽样重评,34 个表达式只剩 6 个达标(淘汰 82%),代表性 IC 从 0.128 掉到 0.085。现在这是系统里的铁律:大样本检验是因子可信度的底线。

教训二:单 seed 的结论会被噪声骗。 调优 Agent 的"技能卡"时,单次训练曾显示"基线配置胜出",后来扩到 36 点/臂 × 多 seed,结论反转。现在系统里所有 A/B 判定都必须看 Δ 分布,不看单次结果。

还有个挺有说服力的对照实验:在公平对照下,系统挖掘的因子在时序 IC 上显著优于 Qlib Alpha158 的代表性因子(实测系统组 |IC| 是 Alpha158 的 2~2.5 倍)。

这个项目让我真正理解了多智能体协作的分寸感:不是让 AI 什么都会,而是把 AI 关进确定性引擎的笼子里,让它只做它擅长的决策与解释。


第四个项目:狼人杀 AI 陪玩 —— 最好玩的一个

周六晚上,局域网里 1~6 个真人随时开一桌 6 人局狼人杀,空位由 AI 自动补位。AI 有独立人设卡和克隆音色,会撒谎、会悍跳、会在夜里刀完人白天装无辜。房主可以投屏"上帝视角"看 AI 的内心独白,一局结束 AI 裁判点评 + 评 MVP。

技术上它是五层架构:FastAPI WebSocket 房间服务 → 规则引擎(昼夜/技能/投票/平票 PK,信息隔离做到"私密情报永不进公共历史")→ LLM 选手与裁判 → TTS → JSON 对局存档。

werewolf-bigscreen.jpg 这个项目是 ai-eng-system 工作流的第一次完整实战:CONTEXT.md 意图契约 + 三张图 + 接口契约没写完不许开工,开工前先跑结构校验器。


四个项目做完,我发现真正的问题是什么

回头看,四个项目,四类完全不同的领域(Web 工具、游戏、金融、实时对战),但翻车的方式惊人地一致:

失败模式真实经历过
AI 没做我要的东西思维导图第一版,全中
AI 话太多、太啰嗦每个项目初期都有,后来靠一份 CONTEXT.md 统一语言解决
代码跑不起来 / 回归没有测试安全网的项目都死过一次
造出一团泥球RPG 如果不分层早就重写了

而现有资料要么教你怎么写 prompt,要么直接给你一个 agent 框架,中间"一个人 + AI 团队怎么把一个真实项目从想法做到落地"这段路,几乎没人系统讲过。

所以我做了这件事:

ai-eng-system:一套"不是代码库"的开源项目

👉 github.com/tianwena/ai…

github-ai-eng-system.png 它是一套由 SKILL.md(YAML frontmatter + 指令正文)组成的行为规范集,一共 36 个技能,外加配套的自动化检查器和质量闸门。设计目标是:让一个人 + AI 编码 agent 团队,具备从想法到商业落地的完整能力。

里面有什么

10 个自研的编排与商业落地技能,补上"单 agent + 人"模型没覆盖的四段链路:

  • product-validation —— 写代码之前先验证有没有人要(G1 没过不许写产品代码)
  • multi-agent-squad —— 组队规则:文件是唯一共享内存、审查者必须独立、阶段边界换窗口
  • production-readiness —— 上线前逐项闭环,没验证过的不许标"已完成"
  • payment-and-billing / launch-and-ops / growth-and-analytics —— 收款、上线、增长
  • 等等

26 个工程纪律技能(部分衍生自优秀开源方法论,许可与致谢都注明了):逼问式访谈、TDD 红绿重构、双轴代码审查、难 bug 诊断环路、深模块设计……

比技能更硬的是机制。 这套体系的核心理念是"能自动化的闸门,就不要靠纪律":

  • quality-gate.ps1 —— 15 项质量检查(密钥泄漏/硬编码凭证/依赖漏洞/SAST/危险模式…),零依赖可跑,退出码可直接进 CI。它的"不撒谎"设计我很得意:工具没装就记 SKIP,装了但没跑成就记 NOTRUN——既不算通过也不算失败,绝不让"没查"伪装成"查过了"
  • self-test.mjs —— 检查器自检:用种入缺陷的假仓库做负向测试,硬编码密钥、eval()shell=True 全部抓到并定位到行号
  • 提交前钩子 —— git commit 自动跑体检,不过不让提交
  • verify-structure.mjs —— 项目开工前的结构校验

为什么它值得你 Star

我可以在 README 里吹"经过实战检验",但更有说服力的是这个事实:这套体系自己的检查器就抓出过自己的三次 bug——两次靠独立上下文的 reviewer 拿真实项目跑才暴露,一次靠负向测试自己发现。所以它的维护纪律里写着一条很诚实的规矩:

改了检查器/闸门,必须起一个独立上下文的 reviewer 复审。改的人看不出自己的错,需要另一双眼睛,或一个会失败的测试。

一个开源项目承认"自改自判不可靠",并把这件事写进纪律、配上工具——这在 AI 辅助开发的时代,可能是比任何技能都值钱的一条经验。

如果你正在用 Claude Code / Cursor / 或者任何 AI agent 工具做项目,被"AI 做出来的东西不是我想要的""改一处崩十处"折磨过,这套体系里的方法论和闸门,就是我拿四个真实项目换来的答案。

最后

从"改配置文件都费劲"到四个能跑的项目 + 一个开源工程体系,中间没有魔法,只有反复的:说清楚 → 验证 → 翻车 → 复盘 → 把复盘变成机制。

四个项目里,RPG 的 493 项测试、量化系统的稳健性三查、狼人杀的信息隔离、导图的服务端无环检测,各有各的看家本领——但把它们串起来的那条线,就是 ai-eng-system。

GitHub:github.com/tianwena/ai…

觉得有用就点个 Star,也欢迎交流你的 AI 编程踩坑经历——这套体系还会继续进化,你的坑就是我下一篇文章的素材。


如果这篇文章对你有启发,点赞 + 收藏是对我最好的支持,感兴趣的可以关注我,我会实时分享我的项目经历。