AI 写代码老是忘掉你的项目?原因和解决办法

AI 写代码老是忘掉你的项目?原因和解决办法

五月 25, 2026 ai-assisted development coding agents project state management cli tools markdown documentation developer workflows ai engineering repository-driven development

为什么 AI 写代码老是忘掉项目?(以及怎么解决)

很多人都有过这种经历:和 AI 一起做一个项目,第一天进展不错,API 搭好了,测试也写完了,文档也更新了。结果第二天开个新对话,AI 完全懵了,你又得从头把项目结构讲一遍。到了第三四天,你可能已经在翻几万字的聊天记录,试图找回前几次对话里定下的方案。

问题看起来像是上下文窗口不够用,其实根源更简单:我们把项目状态存在了错误的地方。

聊天记录不适合存项目状态

聊天对话适合人和 AI 交流,但拿来当项目数据库就很别扭。

原因很简单:

  • 聊天是「写一次、读很多次」。决定一旦滑过去,要再找回来就得翻好几千字。
  • 没有唯一的真相来源。API 规格是第三次还是第五次改的?到底该按哪个版本来做?
  • 新开的对话完全没上下文。每次新会话,AI 都得从零开始。
  • 状态容易跑偏。一个 AI 定下测试策略,另一个又改了实现方式,第三个还把文档标记成「已完成」。没人能追踪这些矛盾。

AI 写代码的能力已经很强了,真正的瓶颈在于它能不能理解你在做什么、为什么要这么做。

一个简单但有效的办法

把项目状态当成代码一样存在仓库里,用 Markdown 文件记录就行。

不要用 wiki,也不要用专门的项目管理工具,就用带一点元数据的 Markdown 文件。

举个例子:

# 项目架构决策

Lifecycle: active
Role: spec
Project: payment-service
Updated: 2024-01-15

Related:
- implements: charter-payment-api
- pairs-with: implementation-log-payment-core

## 概述

我们直接用 Stripe 的 API,而不是封装库,因为……

## 关键决定

- 所有操作都用幂等键
- Webhook 用异步处理,带指数退避
- PII 数据不存本地

## 待解决问题

- 要不要缓存速率限制状态?

格式很简单:一个标题、一组元数据(状态、角色、项目名、更新时间)、关联关系,再加上内容本身。

重点不在于格式,而在于你能用它做什么。一个命令行工具可以:

  • 创建带统一结构的新记录
  • 把完成的任务归档而不是删除
  • 移动记录时自动更新所有关联关系
  • 按条件列出项目里的所有记录
  • 检查关联关系是否指向真实存在的记录
  • 自动生成索引,不用手动维护

这对 AI 工作流意味着什么

关键变化在于:不用再让新开的 AI 去「翻聊天记录理解项目」,而是直接给它一条命令。

docs list --project=payment-service --role=spec
docs list --lifecycle=active
docs check  # 检查所有关联关系

AI 可以直接查询项目状态,而不是从聊天历史里挖信息。它能看到:

  • 已经做了哪些决定
  • 现在在做什么
  • 哪里卡住了
  • 哪些文档是权威的,哪些只是历史记录

更重要的是,AI 可以通过结构化的命令来修改状态,而不是直接编辑文件

你不用指望 AI 能把元数据改对,而是给它明确的指令:

docs create --role=log "实现了速率限制"
docs archive --record=spec-v2-deprecated
docs touch --record=spec-payment-api  # 更新时间戳

这些命令把规则写死了。生命周期、文件位置、关联关系和生成的索引都会一起更新。AI 不会搞乱系统,因为工具本身就不允许它这么做。

新会话也能快速上手

这就引出了「新会话模式」:

  1. AI 启动新对话
  2. 首先运行 docs list,看看哪些任务是活跃的
  3. 看到三个已完成里程碑和一个进行中的
  4. 读实现日志,了解昨天尝试了什么
  5. 查看规格文档,确认当前要做什么

不用翻聊天记录,也不用从零拼凑决定。直接就能看到:现在在做什么,接下来该做什么。

之前的聊天记录已经没用了,可以关掉。状态存在仓库里,这才叫该待的地方。

什么时候需要这个

如果你经常遇到以下情况,可能就用得着:

  • 用 AI 配对编程,项目跨好几天
  • 管理 AI 工作流,需要在不同会话间恢复进度
  • 跑 CI/CD,需要验证项目的一致性
  • 团队协作,需要明确哪些决定了、哪些还在讨论
  • 迭代很快,容易搞不清当前规格到底是什么

这不是要替代 Git、测试或代码审查,而是给 AI 辅助开发加一层「跨时间的一致性」。

最实用的地方在于它很无聊

这个方法最好的地方就是它不花哨。你没有发明新数据库,也没有做专门的 IDE。你只是用开发者本来就熟悉的工具(Markdown、Git、命令行),让它们做自己擅长的事。

边缘情况也能说明问题。AI 不小心改坏了关联关系?验证功能会抓住。漏掉了已归档的记录?列表命令会显示出来。两个会话冲突导致状态漂移?索引就是契约,要么有效,要么无效。

这种基础设施听起来很普通,但它能把「AI 勉强能用」变成「AI 真正理解项目并完成了交付」。

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA EN