- tags:: Context Engineering
在软件工程中,想要使用 AI 辅助编程或者更进一步让 AI 自主完成功能开发时,都会遇到一个问题,就是 AI 生成的代码质量很差,在反复的功能迭代中,代码架构会不断劣化直至变成一座屎山。
代码质量原因分析
缺乏架构规划及对项目的全局视角,没有在合适的时机进行代码架构治理和改进。
当前 AI 不具备记忆能力,无法回忆过去做出的技术设计决定与定下的原则,所以在每次代码开发中,都可能做出错误的设计决策导致架构的劣化。
如何改进
针对以上原因,有多个核心方向:
- 记忆机制:构建一个外部记忆系统,帮助 Agent 记录和加载关键历史信息
- 架构约束:Agent 进行代码开发时需要遵循一个最低约束,兜住代码质量的下限;同时未来进行代码重构改进时,可以调整代码架构及对应的约束
如何实现
如何做 Context Engineering
两个核心指标原则:
- 稳定性:不同查询需要能够比较稳定地读取相关的上下文内容
- 最短路径原则:每次 Agent 获取补充上下文时,应当尽可能读取少的内容,但是也需要读取必要的信息,比如对于项目全局功能的理解
目前想到的是按照抽象层级先总再分的方式,构建一棵树状结构的文档层次能最符合这两个原则。
每次阅读上下文时,从根节点出发了解最概要的信息,然后 Agent 可以沿着树干不断深入下去了解需要补充的细节上下文。
在这个搜索路径上,同时满足了上述的两个指标:
- 每次 Agent 寻找某个概念时,都会沿着树走相同的路径来找到对应的信息
- 在这条路径上,信息由总到分,Agent 读取了所需的必要信息,又避免读取了其他不相关的信息
为什么不用 RAG
两个指标都无法满足