news 2026/10/4 1:18:51

如何写出一个职业级Skill?解构Paperasse 6个AI Agent技能的纯Markdown设计哲学

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何写出一个职业级Skill?解构Paperasse 6个AI Agent技能的纯Markdown设计哲学

如何写出一个职业级Skill?解构Paperasse 6个AI Agent技能的纯Markdown设计哲学

【免费下载链接】paperasse🇫🇷 Skills pour agents IA spécialisés dans la bureaucratie française : Comptable, Notaire, ...项目地址: https://gitcode.com/gh_mirrors/pa/paperasse

想让 AI Agent 从"会聊天的助手"进化为"能上岗的专业人士",关键不是写更多 Prompt,而是写一个职业级 Skill。Paperasse 是一个开源项目,它用纯 Markdown 定义了 6 个专精法国行政事务的 AI Agent 技能:会计师(comptable)、公证人(notaire)、税务顾问(fiscaliste)、审计师、税务稽查员和公寓管理员。没有一行框架代码,没有复杂插件机制——但它的 evals 测试显示,加载 Skill 后 Agent 综合得分从 75% 提升到 88%。本文带你解构这套纯 Markdown 的设计哲学,照着做,你也能写出职业级 Skill。

一、先看成果:6 个 Skill 如何覆盖 6 个职业

Paperasse 仓库里每个目录就是一个职业:

Skill 目录职业角色核心能力
comptable/会计师800+ 会计科目、增值税、年报、2026 电子发票
fiscaliste/个人税务顾问个税税率表、家庭商数、IFI、PEA、加密货币
notaire/公证人房产交易费用、遗产、赠与、家庭协议
commissaire-aux-comptes/审计师7 阶段审计、资产负债交叉验证
controleur-fiscal/税务稽查员模拟 8 个维度的税务稽查
syndic/公寓管理员业主大会、账目、拖欠追缴

它们的评分对比(来自项目 README 的 evals 结果):

Skill带 Skill不带 Skill提升
审计师100%75%+25%
税务顾问84%64%+20%
公寓管理员83%68%+16%
会计师89%77%+12%

这 +13% 的聚合提升,就是"纯 Markdown 的价值"。

二、解剖一个 Skill:目录结构比你想的简单

以会计师技能为例,一个职业级 Skill 的骨架是:

comptable/ ├── SKILL.md # 给 Agent 的"岗位说明书"(核心) ├── references/ # 法律法规、税率表等参考资料(按需查阅) ├── data/ # 结构化数据(PCG 科目表 JSON 等) ├── scripts/ # 确定性计算脚本 ├── templates/ # 文档模板(发票、年报) └── evals/ # 自动化测试用例

SKILL.md 是灵魂文件,它由两部分组成:YAML frontmatter(元数据)+ Markdown 正文(行为指令)。整个文件约 300 行,但信息密度极高——这就是"渐进式披露"设计:Agent 启动时只读这一个文件,需要细节时再跳转去查 references/ 下的分主题文档。

三、职业级 Skill 的 5 个设计原则

1. Skill = 职业,而不是工具

项目贡献指南 CONTRIBUTING.md 里有一条"判职业"法则,堪称点睛之笔:

判断标准:"在现实职场中,会有人以这个头衔求职吗?" 是 → 建一个 Skill;否 → 只做一个共享模块。

所以 Paperasse 有comptable(会计师)、notaire(公证人),却没有"发票生成器"这种碎片。每个 Skill 必须self-contained:用户召唤comptable,期待它覆盖会计师的全部工作,而不是要求他自己拼装三个技能。

2. Frontmatter:让 Agent 自己判断"该不该上岗"

看 notaire/SKILL.md 的开头:

  • description:不只是描述功能,还列了一串Triggers 触发词("notaire、遗产、赠与、PACS、SCI……"),让 Agent 在用户模糊提问时也能正确路由到该技能;
  • last_updated:数据新鲜度戳。所有 Skill 都内置同一条守则——超过 6 个月没更新就自我警告:"⚠️ SKILL 可能已过期,回答前请在线核对税率表";
  • includes:声明共享数据文件,保证技能被单独分发时不丢资源。

这个"自我保质期"设计,是大多数 Skill 作者忽略的——法律条文是会变的,Markdown 不会自动过期,所以必须在元数据里写入"过期自检"逻辑。

3. 行为指令写成"工作流",而非"能力描述"

翻遍 SKILL.md 正文,你会发现它几乎不写"我很擅长会计"这类空话,全是可执行动作:

  • 前置检查:每次对话先确认company.json是否存在,不存在则启动引导式初始化——"没有验证过的上下文,绝不给建议";
  • 固定回答结构:所有分析必须按「事实 → 假设 → 分析 → 风险 → 行动 → 边界」六段式输出;
  • 路由表:一张 Markdown 表格把"用户问什么"映射到"该读哪个 reference 文件",Agent 照着表跳转即可;
  • 计算纪律:"凡涉及金额计算,一律调用 scripts/calc.js,禁止心算"——用确定性脚本堵住大模型最容易翻车的算术题。

4. 数据与指令分离:Markdown 指路,JSON 存数

税率表、会计科目这类会变动的数据,不在 Markdown 里硬编码,而是放进 data/pcg_2026.json 这类结构化文件,SKILL.md 只写"去哪个文件、按哪个字段查"。好处有三:

  • 单一事实源:data/sources.json 记录每条数据的来源和日期,update_data.py一键校验更新;
  • 省 Token:800 个会计科目不会被整个塞进上下文,Agent 按需检索;
  • 可测试:数据是机器格式,evals 脚本可以直接断言。

fiscaliste/SKILL.md 更进一步,把 2025 年度税率表"内联快照"进 Markdown,并注明"仅 2025 年度有效,其他年份一律导向官方网站"——用最小的篇幅换取最高频问题的零检索成本。

5. Evals:用数字给 Skill 定级

职业级和业余级的分水岭,是 evals/ 目录。每个测试用例是一个 JSON 对象:真实用户提问 + 期望行为 + 逐条断言。例如"配置 company.json"用例要求 Agent 从"SASU 公司形态"自动推断出应适用公司所得税制——这种细粒度断言,正是拉开分数差距的地方。

配合 evals/config.yaml 中为每个 Skill 设定的"无技能基线提示词",CI 会自动对比"裸模型"与"带 Skill"两组得分,防止你写一堆没有实际增益的 Markdown。

四、动手模板:10 分钟写出你的第一个职业级 Skill

按 CONTRIBUTING.md 的结构,照抄这个清单即可:

  1. 建目录:用"职业名"命名(小写+连字符,如avocat、drh);
  2. 写 SKILL.md:frontmatter 里给足 description 和 Triggers 触发词,正文写「前置检查 → 工作流 → 路由表 → 边界警告」;
  3. 建 references/:把法律条文、税率表按主题拆成多个 md,SKILL.md 里用表格链接过去;
  4. 数据外置:易变数字进 JSON,标注来源和last_updated;
  5. 算钱走脚本:涉及计算的逻辑写成确定性脚本,SKILL.md 中明令"禁止心算";
  6. 写 evals/:至少 5 个真实场景 + 可断言的预期输出,跑通"带/不带 Skill"对比测试;
  7. 写免责声明:职业级 Skill 必须明确"什么情况下该请真人"——Paperasse 的每个 Skill 结尾都有这一节,这也是它"职业级"而非"玩具级"的标志。

五、总结:纯 Markdown,为什么反而更强?

回看 Paperasse 的设计,可以提炼成一句话:把 Agent 当成新入职员工,用岗位说明书(SKILL.md)+ 操作手册(references/)+ 工具柜(data/ + scripts/)+ 考核题(evals/)来武装它。

纯 Markdown 的优势恰恰在这里:零依赖、任何能读文件的 Agent 都能加载、diff 一目了然、法律条文更新只需改一行字。职业级 Skill 的门槛不在技术,而在你有多理解那个职业——这正是 Paperasse 给所有 Skill 作者上的第一课。

【免费下载链接】paperasse🇫🇷 Skills pour agents IA spécialisés dans la bureaucratie française : Comptable, Notaire, ...项目地址: https://gitcode.com/gh_mirrors/pa/paperasse

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 1:18:32

MNE-python源定位环境配置全指南:从零搭建EEG/MEG分析环境

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:17:53

NeRF三维重建实战:从手机拍摄到模型导出的全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:16:11

FDTD Solutions自学笔记:网格、边界、光源与材料拟合的避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:15:18

Python+OpenCV车牌识别实战:从图像处理到GUI界面完整链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:14:18

STM32串口不定长接收:空闲中断+DMA实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:13:59

点云欧式聚类实战:KDTree调优与PCL工业级参数配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华