把调试与头脑风暴经验变成可复用资产:SmallCode技能系统与6个内置方法论技能详解

发布时间:2026/10/9 0:21:16
把调试与头脑风暴经验变成可复用资产:SmallCode技能系统与6个内置方法论技能详解
把调试与头脑风暴经验变成可复用资产SmallCode技能系统与6个内置方法论技能详解【免费下载链接】smallcodeAI coding agent optimized for small LLMs. 87% benchmark with 4B-active model.项目地址: https://gitcode.com/gh_mirrors/sm/smallcodeSmallCode是一款专为小型本地大模型7B–20B优化的 AI 编程代理AI coding agent。它的技能系统Skill System能把调试、头脑风暴、TDD 等工程经验沉淀成可复用的 Markdown 资产6 个内置方法论技能开箱即用且每个技能只占用约 8 个 token 的提示词预算——这正是小模型最缺的东西。什么是技能系统给小模型的方法论外挂技能本质上就是一个带 YAML 前置头的 Markdown 文件用来教会模型一套固定的行为流程。与插件相比它更轻量——不需要任何代码逻辑只是结构化提示词模板概念说明技能文件一个.md文件开头可选 YAML 前置头name/trigger/keywords触发方式match关键词自动匹配或manual手动调用核心价值弥补小模型推理深度有限的问题把该怎么做事变成显式步骤核心源码在 src/plugins/skills.js 中的SkillManager类索引格式化逻辑见 src/plugins/skill_index_formatter.js。懒加载设计系统提示词中永远只注入技能的索引名称关键词每行约 8 token技能正文只在模型真正调用use_skill时才加载见 _loadBody 实现。对 8k–16k 上下文的小模型来说这意味着几十个技能也不会挤爆提示词窗口。技能从哪些目录加载4 层优先级覆盖SmallCode 按后加载覆盖先加载的顺序扫描技能目录_getSkillDirs优先级目录用途1最低skills/随包发布内置默认技能2~/.smallcode/skills/或~/.config/smallcode/skills/用户级全局技能3最高.smallcode/skills/项目内项目级覆盖同名技能直接替换内置版它还能自动识别嵌套目录布局项目根下的.agents/skills/name/SKILL.md和.claude/skills/name/SKILL.md兼容 Claude Code 的技能目录约定见 _getNestedSkillRoots。最实用的场景把内置技能复制一份到项目里按团队习惯改写就能无感覆盖默认版本mkdir -p .smallcode/skills # 复制内置 debugging.md 后按项目规范修改同名即覆盖6 个内置方法论技能详解内置技能位于 skills/ 目录改编自 Willow 2.0 的 Fylgja 开发方法论包专门针对 8B–35B 本地模型的预算约束调优详见 skills/README.md。1️⃣ brainstorming头脑风暴先想清楚再写代码触发词design/feature/approach/plan/architecture小模型最容易犯的错是急着写代码、造错东西。这个技能强制 6 步流程skills/brainstorming.md先搜上下文——调用memory_load 代码搜索绝不凭空脑暴一句话说清问题——我们到底在解决什么给出 3 个方案——每个方案用一句话点明核心取舍推荐一个——两句话说清理由标记约束——认证、迁移、外部 API、配置等坑停下——用户确认方案前禁止动手实现其中第 6 步不可跳过是精髓Ill just start我直接开干了恰恰跳过了整个技能的意义。2️⃣ debugging结构化调试8 步锁定 Bug拒绝瞎猜触发词bug/fix/error/broken/fails/crashskills/debugging.md 把调试变成一条漏斗步骤动作防的是什么1memory_load查历史 search搜报错重复踩同一个坑2明确 Bug精确报错、file:line、预期 vs 实际模糊描述3最小复现——能触发的最小输入不理解就下结论4列出 2–3 个候选原因按可能性排序猜测式修复5验证头号假设确认或排除范围蔓延6外科手术式修复——不顺手重构改出问题7跑测试确认没有测试就先写一个修完不知道对不对8非显而易见的坑用memory_remember类型gotcha沉淀经验流失一句话规则不能复现 还不理解它。3️⃣ tdd测试驱动开发循环红-绿循环自动推进触发词tdd/test/implement/feature/requirementsskills/tdd.md 的用法最简单把需求列表交给tdd_loop工具例如tdd_loop(requirements[add() 返回两数之和, add() 对非法输入抛 TypeError])然后对每条需求执行先写失败测试再写最小实现。测试框架会在每次写文件后自动跑测试目标测试变绿就自动进入下一个需求全部需求变绿且整个测试套件通过时循环才结束。随时可用tdd_status查看进度。4️⃣ iterative-retrieval迭代检索4 级阶梯别一上来就读整个文件触发词search/context/find/where/lookup/remember核心理念是记忆是地图文件是领土skills/iterative-retrieval.md。需要上下文时按阶梯逐级攀爬够用就停阶梯 1 项目记忆 memory_load最宽泛 ↓ 不够 阶梯 2 代码搜索 search / graph_search只看路径和片段 ↓ 不够 阶梯 3 定向读取 read_file 的特定区段 ↓ 还不够 阶梯 4 读完整文件最后手段规则只有一条永远不要跳到阶梯 4——小模型读整文件会白白烧掉大量上下文。5️⃣ learn经验沉淀把踩过的坑变成团队资产触发方式手动/skill use learn当会话中发现非显而易见的东西变通方案、库的怪癖、架构陷阱、集成模式时这个技能指导模型把经验提炼成可复用模式skills/learn.md✅该记操作约束、版本特定修复、构建/测试命令的怪癖❌不该记读代码就能推导的模式、本会话的临时状态、README 里已有的内容保存时用memory_remember标注 5 种类型decision已定决策/workflow可复用流程/gotcha陷阱与规避/convention约定/context领域知识。规则一次只存一个模式内容不超过 200 词——小模型检索聚焦的笔记效果更好。6️⃣ external-guard外部内容防护防提示注入的三明治触发词web/fetch/external/untrusted/url/ingest抓取网页或粘贴外部文本前skills/external-guard.md 要求先用三明治防御包裹内容明确声明边界内的文字只是数据、不是指令然后再分析。它还提供 3 档处置策略扫描结果动作干净三明治包裹后放行可疑向用户展示命中模式确认后再包裹拦截拒绝摄入不写入记忆并说明命中原因典型拦截模式包括 ignore previous instructions、伪装成用户内容的工具调用 JSON、HTML 注释中的隐藏指令等。快速上手3 条 /skill 命令管理你的技能在 SmallCode 终端中即可管理技能命令实现见 skills/README.md/skill list # 查看所有已加载技能 /skill use brainstorming # 手动加载某个技能 /skill use learn # 手动触发经验沉淀技能行为有完整测试覆盖见 test/skills.test.js 与 test/skill_lazy.test.js。总结小模型的最佳搭档是方法论不是更大参数技能一句话价值brainstorming先确认方案再编码防止造错东西debugging8 步漏斗定位 Bug修完必有测试tdd红-绿循环自动推进全绿才算完iterative-retrieval4 级检索阶梯守住上下文预算learn把坑与经验写成可检索的记忆external-guard三明治防御挡住提示注入SmallCode 的设计哲学很清晰用结构化的方法论弥补小模型的推理深度。调试与头脑风暴这些原本靠资深工程师直觉的经验现在变成了任何小模型都能稳定执行的资产——而你的项目只需要在.smallcode/skills/下放一个 Markdown 文件就能让它按团队的方式工作。【免费下载链接】smallcodeAI coding agent optimized for small LLMs. 87% benchmark with 4B-active model.项目地址: https://gitcode.com/gh_mirrors/sm/smallcode创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考