Agent 真正理解了你的业务模型、历史决策和架构约定之后,编码就不再是"辅助",而是"服务"。这个想法是怎么形成的,我分享一下思考过程。
过去三年,AI 编码工具走过了三个阶段。
代码补全。早期的 GitHub Copilot 就是这路子。你在写代码,它在旁边猜下一行。本质上是个更强的自动补全引擎,提升的是打字速度。
对话式编程。你用自然语言描述需求,AI 生成一段完整的代码。ChatGPT、各类 Code Assistant 都在这个阶段。它解决了"不会写"的问题,但不解决"写得对不对"的问题。
Coding Agent。Agent 能理解项目上下文、跨文件操作、跑测试、迭代修复。它不再是个对话框,而是一个能干活的开发者。
但到了第三阶段,能力也有限。Agent 能写出语法正确、逻辑自洽的代码,却可能完全不符合你团队的架构约定,不了解历史债务,不知道业务规则背后的故事。
怎么让 Agent 从"会写代码"变成"懂你的业务"?我们尝试用结构化的记忆系统来解决这个问题。做了之后发现,编码从"工具辅助"变成了"可交付的服务"——这个变化比预期的更深远。
先说"服务"这个词。
工具和服务的区别:工具需要人来操作,服务直接交付结果。电钻是工具,"帮你在墙上打三个孔"是服务。
映射到编码领域:
从工具到服务,关键的跨越点在知识注入。
一个不了解你项目的 Agent,生成的代码像实习生写的——语法没问题,你不敢直接用。一个了解你项目所有约定的 Agent,生成的代码像资深同事写的——review 一下就敢合入。
我们做的事情就是把散落在对话、文档、代码仓库中的项目知识沉淀下来,在 Agent 需要的时候精准召回。
看几个具体场景。
需求:"给用户模块加一个修改手机号的接口。"
没有项目知识的 Agent:直接生成
PUT /users/{id}/phone,标准的 RESTful 设计,看着没毛病。
有项目知识的 Agent:知道团队三个月前决定写操作全走 gRPC,知道修改手机号需要短信验证码二次确认(合规要求),知道用户模块的错误码命名规范。生成的代码遵循这些约定。
前者生成后你得改一大堆才能用。后者几乎可以直接合入。这就是工具和服务的差距。
Bug 报告:"订单金额偶尔计算错误。"
没有项目知识的 Agent:在代码里搜金额计算相关逻辑,逐一检查。可能找到问题,也可能找不到。
有项目知识的 Agent:记得上个月有人提过"满减活动和会员折扣叠加有边界条件",知道订单金额经过三个中间件,知道上次类似问题出在精度处理上。直奔问题现场。
问题:"搜索服务用 Elasticsearch 还是 OpenSearch?"
没有项目知识的 Agent:列张对比表,分析功能差异、社区活跃度、许可证区别。通用知识,放哪个团队都一样。
有项目知识的 Agent:知道团队去年从 ES 6.x 升到 7.x 踩了不少坑,知道运维团队对 Java 系中间件能力有限,知道公司合规要求数据不出境。建议基于这些具体约束。
前面介绍过的三层架构——原子事实、实体卡片、记忆图谱——在编码场景中是这样发挥作用的:
原子事实层记录每一次技术决策和约定。"支付回调超时设为 30 秒"、"数据库连接池上限 50"、"日志必须包含 trace_id"——这些细节构成了项目的肌肉记忆。
实体卡片层把细节聚合为完整画像。"订单服务"这张卡片包含了所有技术选型、设计约束、历史改造记录。Agent 拿到它,就像拿到了一份详尽的技术 brief。
记忆图谱层揭示服务之间的依赖关系。改一个接口可能影响下游三个消费方。Agent 编码时能感知这些关联,避免"改了一处炸了三处"。
三层叠加,Agent 编码时有了全局视野和历史纵深。这是从"辅助"到"服务"的技术基础。
Coding as a Service 给企业带来的变化不只是"代码写得更好"。
知识不再随人走。核心开发者离职,他脑子里的项目知识不会消失——已经沉淀在系统中。新人接手时,Agent 继续基于这些知识提供服务。
跨团队协作成本降了。A 团队要了解 B 团队的服务接口,不用约会议写邮件反复沟通。Agent 基于沉淀的知识直接给出对接方案。
编码质量的方差缩小了。资深工程师和初级工程师用同一个"有记忆"的 Agent,产出质量的差距明显收窄。Agent 掌握的项目知识是一样的,不会因为对方是初级就降低标准。
当然,这些都是理想状态。实际效果取决于知识积累的深度和准确度。项目初期知识不够多的时候,Agent 的表现和普通 Agent 差别不大——需要一段时间的"养"才能体现出优势。这也是我们在实际推广中遇到的现实问题。
LOCOMO 基准测试中的表现:
在 FinanceBench、SyllabusQA、Qasper、ClapNQ 四个数据集上都跑了测试,表现相对稳定。不过不同业务领域的差异可能不小,这些数据不一定能直接映射到你的场景。
这套方案目前通过 RDS ContextDB 提供。已经在用 Coding Agent 的话,接入成本比较低:
curl -fsSL 'https://context-database-client.oss-cn-hangzhou.aliyuncs.com/install.sh' | bash -s -- --agent <agent> --api-key <api-key>
支持 Qoder、Claude Code、Codex、OpenClaw、OpenCode、Hermes、QoderWork。一条命令,Agent 开始积累项目知识。
冷启动也不用担心。支持导入已有的设计文档、API 文档、历史会议纪要,Agent 从一开始就有基本的业务认知。
Coding as a Service 不是终态。
Agent 真正理解了业务之后,可以做更复杂的自动化:不只是写一个函数,是完成一个完整需求;不只是修一个 Bug,是做一次系统级优化;不只是写代码,是参与架构决策。
这些都需要一个前提:Agent 拥有足够的、结构化的、可信的项目知识。这也是我们目前在持续推进的方向。
编码能力的服务化,方向已经明确了。但离真正成熟还有不少路要走。
参考链接
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049330/viewspace-3182447/ ,如需转载,请注明出处,否则将追究法律责任。