专注于 Infra 层的 AI Agent 技能平台——龙蜥社区 SkillHub 已收到数百个技能,当前陆续上线中。我们每周也会收到一些技能的最佳实践分享,本期给大家推荐的是李勇贡献的 Anolis KDev 工程记忆机制(kdev-memory)、标准化开发流程编排(kdev-standardized-dev-flow)Skill 实践文章。以下是他的实战经验分享:
初涉 Agent 编码:从“Vibe Coding”到“构建 Skill”
刚接触 Agent 编码那会儿,我和大多数人一样,是被它的能力震住的:一句话发过去,它能自己查代码、改文件、跑测试,一气呵成把整个活干完。那种感觉就像带了个不用睡觉的实习生——什么都肯干,就是需要你手把手教。
一开始还行。但用得久了,一个别扭的感受越来越强烈:同样的项目约定、同样的编码规范、同样的坑,每开一个新会话都要从头交代一遍。昨天刚踩过的坑,今天会话一关,Agent 忘得干干净净,第二天在同一个地方再摔一跤。你花半小时帮它回忆上下文,比你自己重新写还累。
有一次我连续开了三个会话,每次都要重新解释“这个项目用 TDD(测试驱动开发)”、“测试文件放这个目录”、“commit message 要遵循这个格式”——第三遍说完的时候我突然意识到:我不是在用 Agent 提效,我是在给 Agent 当复读机。
当时我就想:如果有个东西能让 Agent 自己记住这些规矩,该多好。
6 月,我开始参与龙蜥社区 SkillHub 建设。我一看方向正好对口——把反复交代的工程经验封装成 Agent 能自动调用的 Skill。于是,我开始把那些“每次都要说一遍”的东西整理成 Skill,用 markdown 写下工程约定和操作步骤,让 Agent 在对的时机自己调出来执行。
当第一个 Skill 被正确触发、不用我再多说一句就走完整个开发闭环时,我才真正意识到一件事:模型再聪明,也替代不了我们把工程经验沉淀成它能执行的知识。
Agent 编码的两大痛点,你可能也踩过
如果你也在用 Agent 做中大型项目的开发,大概率遇到过这两个问题:
一. Agent 的“失忆症”。 会话一关、上下文一压缩,Agent 就忘了昨天踩过的坑、做过的决策、选定的技术方案。第二天打开,它一脸无辜地看着你——“请问我们要做什么?” 你不是在跟 Agent 协作,你是在每天带一个全新入职的实习生。
二. 能力强,但没规矩。 模型能力很强,但缺乏约束:需求还没对齐就开始写代码,测试还没通过就宣布完成,改动很小就跳过测试——这些毛病,跟人一样,甚至更严重,因为你甚至无法通过反馈纠正它。
这两个问题,一个靠“记忆”解决,一个靠“流程”解决。我先后做了两个 Skill,思路就是:把经验变成可落盘的记忆,把规矩变成可执行的门禁。
kdev-memory:治好 Agent 的“失忆症”
kdev-memory Skill 解决的是 Agent 编码最大的痛点——失忆。
kdev-memory 的思路是给 Agent 建立持久工程记忆:每完成一步、踩一次坑、做一次决策,实时落盘到对应文件,支持跨会话续航、每日汇总、按期归档,还能把记忆蒸馏导出为训练语料。
说白了,就是给 Agent 配了一本“工程日记”——每次干完活,自动把今天做了什么、踩了什么坑、下一步该干嘛写下来。第二天新会话一开,Agent 先翻日记,几秒钟就能接上昨天的进度。
用起来什么感觉
以前是这样:
新会话开启 → "我们上次在做什么?" → Agent 一脸茫然 → 你花 20 分钟复述背景 → "对,上次决定用方案 B,因为……" → "好,我们继续"复制
现在是:
新会话开启 → Agent 自动读取 memory/ → "上次我们完成了 XX 模块,遗留了两个问题:1. …… 2. …… 建议先处理问题 1,因为……" → 直接开干复制
同事最认可的就是这一点:新开会话只问一句“上次做到哪了”,Agent 就能把进度和遗留的尾巴一条不落地报出来,而不是需要你亲自给它喂背景信息。
开发过程中的三个坑
这个 Skill 本身就是 Agent 编码开发出来的,一路踩了不少坑,有几条经验值得展开说说。
第一条:“实时落盘”不能靠 Agent 自觉。早期版本只在 SKILL.md 里写“每步完成后立刻记录”,实测一个连续讨论的长会话里,6 个工作单元只落盘了 2 个,落盘率仅 33%。不是模型能力不行,是长会话里没有“自然停顿”的信号,Agent 的注意力一直被对话拽着走。后来改用 hook 兜底:SessionStart 注入进度摘要、SessionStop 检查漏记、SessionEnd 写警告文件,漏记才真正收敛。凡是要求 Agent“持续记得做某事”的设计,就得默认它会忘,用确定性的外部信号兜底。
第二条:测试通过不等于规约正确。有个 hook 脚本上线后从没真正工作过,数周后才发现——它读取字段用了驼峰命名 toolInput,而真实传入的是 tool_input。配套测试竟然还全是通过的,因为测试是模型按照被测代码反推导写的。因此,我们定了条规约:测试必须照官方文档写,不许照自己的代码反推。
第三条是“先核代码,再看文档”。Agent 特别容易把设计文档里的表述当成事实,我们在同一个会话里连续两次栽在这上面。后来把它固化成铁规:标记任何"已完成"之前,先排查实现代码确认东西真的存在。
正是靠这套机制自举,kdev-memory 全程以 TDD方式开发,在开发仓库里累计沉淀了 51 个测试文件、600 多个自动化测试用例,每一个版本的 CHANGELOG 都记录着“哪个坑、怎么修、多少测试”。
这不是刻意为之,而是当你有了可靠的记忆机制,TDD 就变成了自然而然的事——每一步改进都有测试兜底,每一次修复都被记住。
kdev-standardized-dev-flow:给 Agent 编码装上流程管控机制
kdev-standardized-dev-flow Skill 解决的是另一个痛点——模型能力很强,但缺乏约束:需求还没对齐就开始写代码,测试还没通过就宣布完成。
kdev-standardized-dev-flow 把三层需求分解与 TDD 七步执行编排成一个带状态机的双阶段流程,设计上有几点心得。
这个 Skill 只负责流程状态追踪、在正确节点强制调用外部专项技能(比如 brainstorming、writing-plans、test-driven-development、requesting-code-review,它们是 Agent 客户端生态里的通用技能,不随本 Skill 一起分发)、文档产出门禁和中断恢复,不去重复实现专项技能的内容。实际用下来,职责单一的 Skill 更容易被组合复用。
用硬门禁对抗“合理化跳过”
这是我觉得最值得分享的设计。Agent 有个很让人头疼的习惯——它会给自己跳步找理由。
“这个功能改动很小,不用写测试了吧?”、“需求已经很清楚了,跳过分解直接写代码吧?”、 “测试刚才跑过了,这次不用重复了。” 听起来都很有道理,对吧?但每一步跳过都在积累风险。
我们在 Skill 里内置了硬门禁规则和常见跳过理由的驳斥表:状态转换前必须用户确认、交付物未落盘不得推进、测试必须先失败后通过。不管 Agent 找出什么理由,门禁就是门禁,过不去就是过不去。
把这层约束做进流程框架本身,比事后 review 更省事得多。
状态落盘,支持中断恢复
所有流程状态写入 state.md,会话中断后新会话能读盘恢复到断点,和 kdev-memory 的 memory/ 同处一个命名空间。
今天分享的两个 Skill 是同一个思路:可靠性要建立在落盘的状态上,别依赖上下文里的记忆。
Skill 进化:来自用户的真实反馈
Skill 做出来只是开始,真正让它进化的是别人用完之后的真实反馈。
kdev-memory 在内部推广后,除了“新会话秒接进度”这个最被认可的能力之外,也收到了一些尖锐的反馈。最严重的一条是:自评分有讨好倾向——让 Agent 给自己完成的步骤打分,它倾向给满分。“你好我好大家好”,分数虚高没有参考价值。
针对这个反馈,我们现在改成双轨制:自评仍保留,但每次必须写出一条扣分项;最终得分由一个独立的 Agent 复核后给出。避免 Agent 既当运动员又当裁判员。
这个改进也是社区协作的价值所在——你自己用的时候习以为常的问题,别人一用就暴露了。
从私有仓库到 SkillHub:让经验真正帮助大家
6 月,龙蜥社区 SkillHub 发布上线,当时社区刚刚建立起 Skill 托管与评审机制,我把在长周期项目中打磨的两个 Skill 按社区规范适配后投稿到 anolis-skills 仓库。
适配比想象中花功夫:按照社区评审意见补齐前置要求自检、可运行示例、子技能缺失时的降级路径,还要跑通验证。6 月下旬 kdev-memory 完成第一轮合入、7 月初在 SkillHub 上架,kdev-standardized-dev-flow 的合入请求在 7 月下旬合并。这套“投稿→评审→适配→合入”走下来,个人经验才算真正变成了社区可复用的资产。
当一条踩坑记录不再只是个人备忘,而是变成社区里每个 Agent 都会自动规避的规则时,开源协作的意义就显现出来了:能贡献的不只是代码,还有经验本身——Skill 把经验变成了可以直接执行、直接分发的东西。
从 Agent 的使用者到 Skill 的贡献者,这一路最深的体会是:教 Agent 干活,其实是逼着你自己把工程约束想明白、写清楚。“凭感觉”的判断要写成可检查的规约,“我记得”的经验要写成可落盘的记忆,“应该行”的直觉要写成可验证的门禁。被淬炼的不只是 Agent,还有写 Skill 的人。
也欢迎更多对 Agent 编码感兴趣的小伙伴加入龙蜥社区、共建 SkillHub。把你踩过的坑、跑过的工作流写成 Skill 贡献到社区,每一次“从问题到贡献“的循环,都是推动 Agent 编码生态进步的微小却坚定的力量。
相关链接:
Anolis KDev 工程记忆机制 Skill 链接:
https://skillhub.openanolis.cn/skill/kdev-memory
标准化开发流程编排 Skill 链接:
https://skillhub.openanolis.cn/skill/kdev-standardized-dev-flow
Skillhub 官网链接:
https://skillhub.openanolis.cn
相关文章推荐:
敲了十年 vmstat,我把排查经验塞进了一个 AI Skill | 龙蜥 Skillhub 精选
一句话搞定 PG 集群部署和管理 | 龙蜥 Skillhub 精选
龙蜥社区 Skill 征集活动——「Skill 创造营」上线以来响应热烈。截至目前,龙蜥 SkillHub 已收到覆盖安全、系统运维、AI 推理、数据库等多个领域,一个面向 Infra 的 AI 技能生态正在加速成型。「Skill 创造营」持续征集中,诚挚欢迎每一位开发者提交你的 Skill 与最佳实践。如果你有感兴趣的方向或者关于 SkillHub 的问题,欢迎通过下方链接反馈给我们。
SkillHub 用户需求收集链接:
https://alidocs.dingtalk.com/notable/share/form/v014jKqm0b74KdjLnw1_f22ghuX_M7AJs3D