资料库
17 篇短文。前 16 篇每篇 5-10 分钟,不需要按顺序读;最后一篇《把工作流做成 Skill》是动手手册,要 1-3 小时。
这些是基础概念铺垫,不是 FDE 专属内容;已经会的直接跳过。
速通 · 命令行:和电脑说话的第二种方式
为什么绕不开它
很多 AI 编程工具(比如 Claude Code)就活在命令行里:你在一个黑(或白)底的窗口里跟它对话,它替你敲命令、跑程序。命令行对你不是"要精通的技能",是"要不害怕的环境"——90% 的命令是 AI 敲的,你要做的是看懂它在干什么、偶尔自己敲一两条。
打开它
- Mac:启动台搜「终端」(Terminal),回车打开
- Windows:开始菜单搜「PowerShell」,回车打开
打开后是一个等你输入的窗口,光标前面那串字是"提示符"(显示你是谁、在哪个文件夹)。输入命令 → 回车执行 → 看输出,就这一个循环。
你只需要会这 6 条
| 命令 |
干嘛的 |
例子 |
pwd |
我现在在哪个文件夹(Windows 也能用) |
pwd |
ls(Win: dir 也行) |
列出当前文件夹里有什么 |
ls |
cd 文件夹名 |
进入某个文件夹 |
cd Desktop |
cd .. |
退回上一层文件夹 |
cd .. |
mkdir 名字 |
新建文件夹 |
mkdir fde-test |
↑ 方向键 |
调出上一条命令(不用重敲) |
— |
心智模型:命令行里永远"站在某个文件夹里"。pwd 看自己站在哪,ls 看脚下有什么,cd 走来走去——跟访达/资源管理器是同一棵目录树,只是从点图标变成打字。
5 分钟跟做
一条条敲,每条回车后看输出:
pwd # 我在哪
ls # 这里有什么(Windows 用 dir 也行)
cd Desktop # 进桌面(Mac/Win 通用;若提示不存在,先 ls 看真实名字)
mkdir fde-test # 建一个文件夹——现在看你的桌面,是不是多了一个?
cd fde-test # 进去
pwd # 确认自己进来了
cd .. # 退出来
做完你可以把 fde-test 文件夹右键删掉,练习结束。
常见坑(卡住先查这里)
| 现象 |
原因与处理 |
command not found / 无法识别 |
命令拼错了(多打/少打字母),或该软件没装。照原样再敲一遍 |
No such file or directory |
文件夹名不对——ls 看一眼真实名字再 cd;名字带空格要加引号:cd "My Files" |
| 敲了命令没反应,光标一直闪 |
它可能在等你输入或正在干活;想中断按 Ctrl + C |
| 粘贴不了 |
Mac 正常 Cmd+V;Windows PowerShell 右键=粘贴 |
你只需要会这些
到此为止。不需要学管道、grep、vim、shell 脚本——真实工作里复杂命令基本都是 AI 生成的,你看不懂时让它解释("这条命令是干嘛的?逐段解释")就是标准做法。别在命令行教程的兔子洞里花时间。
速通 · Git:代码的存档/读档系统
为什么绕不开它
让 AI 大改代码之前先存档,改崩了一键回滚——这是和 AI 协作的安全带,几乎天天用。另外作品集放到 GitHub/Gitee 上给面试官看,推上去(push)也是 Git 的活。
和命令行一样:大部分 Git 命令会是 AI 帮你敲的,你要懂的是"存档点"这个概念和一条基本流。
四个词,四个动作
| 词 |
白话 |
命令 |
| 仓库 repo |
被 Git 管理的项目文件夹(存档都记在里面) |
git init 把当前文件夹变成仓库 |
| 提交 commit |
打一个存档点(带一句说明) |
git add -A + git commit -m "说明" |
| 克隆 clone |
把网上的仓库下载成本地文件夹 |
git clone 网址 |
| 推送 push |
把本地存档上传到网上(GitHub/Gitee) |
git push |
心智模型:add 是"选中要存档的改动",commit 是"确认存档",log 是"查看存档列表"。一条基本流:改代码 → add → commit(→ 需要给别人看时 push)。
5 分钟跟做(纯本地,不需要注册任何账号)
接着上一篇的命令行,一条条敲:
cd Desktop
mkdir git-test && cd git-test # 建个练习文件夹并进入
git init # 变成 Git 仓库(出现 Initialized empty...)
echo "第一行" > notes.txt # 造一个文件
git add -A # 选中所有改动
git commit -m "第一个存档" # 打存档点
echo "第二行" >> notes.txt # 再改一下文件
git add -A
git commit -m "第二个存档" # 又一个存档点
git log --oneline # 看:两个存档点,各带说明
看到两行存档记录,练习完成(文件夹可删)。这就是全部核心——"让 AI 改崩了怎么办"的答案,就是回到某个存档点。
若 commit 报错让你先设置身份,执行环境线里讲过的 git config --global user.name/email 两条后重试。
GitHub 是什么?现在要注册吗
GitHub 是世界最大的代码托管网站(仓库放在云上+给别人看),国内访问偶尔不稳,国内同类是 Gitee。不用急着注册——真要用的时候再弄,push 的账号/密钥配置 AI 能一步步带你做。
你只需要会这些
到此为止。不需要学分支 branch、合并 merge、rebase、解决冲突——那是多人协作的内容,真用到时 AI 能代劳,你只要在它动手前说一句"先 commit 一下"。看到网上教程里花哨的分支图,跳过,不是你现在的事。
速通 · Web / API / JSON:网页背后发生了什么
前端和后端:餐厅模型
把任何一个网站/App 想成一家餐厅:
- 前端 = 大堂:你看到的界面(菜单、桌椅、装修),跑在你的手机/浏览器里
- 后端 = 后厨:真正干活的程序(算账、查库存、存数据),跑在别人的服务器上
- 你点一道菜(点按钮),服务员把单子递进后厨,后厨做好端出来——这一来一回,就是一次"请求/响应"
一个单文件的小工具,是前端后端挤在一个文件里的极简版;真实企业系统前后端分开,中间靠 API 说话。
API:后厨的点菜窗口
API 就是后厨对外开的窗口+菜单:规定好"你这样点,我这样回"。例如:
请求:GET /api/orders/SW1003 (给我看订单 SW1003)
响应:{"status": "运输中", "amount": 129}
GET 是"要数据",POST 是"提交数据"——先知道这两个动词就够
- 响应开头有个状态码:
200=成功,404=没找到,500=后厨炸了。排障时天天看它
FDE 的日常:把 AI 系统通过 API 接进客户的老系统——所以这个词后面三周会反复出现。
JSON:双方约定的单据格式
前后端传数据用的通用格式,长这样:
{
"order_id": "SW1003",
"status": "运输中",
"items": ["蓝牙耳机", "充电线"],
"amount": 129.0
}
读法就三条:{} 包一组"字段: 值";值可以是文字(带引号)、数字(不带)、列表([]);可以层层嵌套。能读懂就行,永远不需要手写——AI 写,你看。
5 分钟跟做:亲眼看一次请求
- 用 Chrome/Edge 打开预习资料站(或任意网站)
- 按
F12(Mac: Cmd+Option+I)打开开发者工具,切到 Network(网络) 标签
- 刷新页面——看,刚才"打开一个网页"这个动作,背后是一串请求逐条飞出去
- 随便点开一条,看右侧:Status(状态码,多半是 200)、Response(响应内容)
- 关掉。你已经看过网页的"后厨小票"了,排障就是这么看的
你只需要会这些
到此为止,四个词能对上号就合格:前端(你看到的)/ 后端(服务器上干活的)/ API(它们之间的窗口)/ JSON(窗口里递的单据)。不需要学 HTML/CSS/JavaScript 语法,不需要背 HTTP 协议细节——真要读的每一段,AI 都能给你翻译成白话。
速通 · 数据库:比 Excel 靠谱一万倍的表格
数据库就是一堆"严格的 Excel 表"
你肯定用过 Excel。数据库(MySQL 这类"关系型数据库")可以先理解成:
| Excel 的概念 |
数据库的叫法 |
| 一个 .xlsx 文件 |
一个数据库 database |
| 一个工作表 Sheet |
一张表 table |
| 表头的一列 |
一个字段 field / 列 column |
| 一行数据 |
一条记录 row |
比 Excel 严格在哪:每列必须声明类型(数字/文字/日期,存错就报错);每行有个身份证号(主键 id),别的表靠它精确指到这一行;能被程序同时、安全地读写成千上万次。
一个订单表长这样:
| id |
order_no |
product |
amount |
status |
| 1 |
SW1001 |
蓝牙耳机 |
129.00 |
已签收 |
| 2 |
SW1002 |
充电线 |
19.90 |
运输中 |
眼熟吗?一个"查订单"的小功能,真实系统里查的就是这样一张表。
SQL:对表格说的话
SQL 是查/改数据库的语言,一句顶你在 Excel 里点十下:
SELECT * FROM orders WHERE status = '运输中';
-- 从 orders 表里,把 status 是"运输中"的行全拿出来
SELECT product, amount FROM orders WHERE amount > 100;
-- 只要 product 和 amount 两列,条件是金额大于 100
INSERT INTO orders (order_no, product, amount) VALUES ('SW1011', '键盘', 199);
-- 插入一条新记录
读法:SELECT 拿什么列 / FROM 从哪张表 / WHERE 满足什么条件。就这一个骨架。
5 分钟跟做(纸面练习)
不装软件,看着上面那张 orders 表,口头回答:
SELECT * FROM orders WHERE amount < 50; 会拿到哪几行?(答:id=2 那行)
- "把所有已签收的订单的商品名列出来"——SQL 骨架怎么写?(答:
SELECT product FROM orders WHERE status = '已签收';)
- 为什么每行要有 id?(答:两条订单可能商品金额全一样,id 保证能精确指到某一行)
三题都能答上,这篇过关。
你只需要会这些
到此为止。不需要装 MySQL、不需要学 JOIN/索引/事务、不需要会设计表结构——真实项目里库表通常是现成的、SQL 是 AI 写的;你的活是看懂它在查哪张表、什么条件,以及在需求沟通时能问客户一句"这些数据现在存在哪、几张表"。想深了解的以后再说,现在别陷进去。
速通 · 部署:从"我电脑上能跑"到"别人都能用"
一个应用是怎么到你手机上的
你现在正在看的这个预习资料站,链接是 http://203.0.113.10/prep/。拆开看:
- 203.0.113.10 = 一台云服务器的 IP 地址(服务器就是别人机房里 24 小时不关机的电脑,按月租)
- /prep/ = 那台电脑上的一个目录,里面放着这些网页文件
- 你手机输入网址 → 请求飞到那台电脑 → 它把文件发回来 → 手机浏览器画出页面
部署,就是把你电脑上跑通的程序,搬到那台不关机的电脑上跑起来,让所有人随时访问。 没部署之前,你的程序只活在 localhost(本机)——关机就没,别人也够不着。
五个词,凑齐地图
| 词 |
白话 |
| localhost |
"我自己这台电脑"。开发时程序都先跑在这,地址长得像 localhost:3000 |
| 服务器 |
租来的不关机电脑。把程序搬上去=部署 |
| 端口 |
一台电脑同时跑多个服务,各占一个门牌号(:3000/:8080);80 是网页默认门牌,可省略不写 |
| 域名 |
IP 地址的好记外号(baidu.com ↔ 一串数字),要花钱注册+国内要备案 |
| HTTPS |
加密版 HTTP(网址前的小锁)。给企业交付上线基本是必选项 |
Docker:装箱发货
一个会反复出现的词,先给白话版:程序在你电脑能跑、搬到服务器就报错,多半是环境不一样(差个依赖/版本不对)。Docker 把"程序+它需要的全部环境"打成一个标准集装箱,在哪台机器上开箱都一样跑。企业私有化交付(把 AI 系统装进客户自己的机房)几乎离不开它。
5 分钟跟做(梳理链路)
不动手装任何东西,回答三个问题(答案就在上文):
- 你在自己电脑上做出来的一个 .html,算部署了吗?(答:没有——它只在你电脑上,发给别人要传文件;放到服务器上才叫部署)
localhost:3000 和 203.0.113.10/prep/ 本质区别是什么?(答:前者只有你自己访问得到,后者全网可达)
- 客户说"这个系统必须装在我们自己机房里,数据不能出去"——这叫什么交付?(答:私有化部署,FDE 的高频场景)
你只需要会这些
到此为止,能看懂"把它部署到服务器的 8080 端口,配个域名上 HTTPS"这句话在说什么,就合格。不需要现在买服务器、学 Linux 运维、背 Docker 命令——真正要推上线时,AI 能一步步带你走完,不必提前背。
AI 认知 · LLM 白话原理:它到底是怎么"想"的
机制一:它在玩超大规模的文字接龙
大语言模型(LLM,ChatGPT/Claude 这类的统称)干的事,本质是预测下一个词:读了海量文本后,它对"什么词后面通常接什么词"有极强的手感,于是一个词一个词地把回答"接龙"出来。
- 它处理文字的单位叫 token(词元),约等于一个词或半个词;API 按 token 计费——算"这个客服系统一个月成本多少"就是在数 token
- 接龙≠检索:它不是在数据库里查答案,而是在生成"看起来最合理的下一句"。这个区别是理解下面两条的钥匙
机制二:上下文窗口 = 它的工作记忆
模型每次能"看在眼里"的内容是有限的(几万到几十万 token),这个范围叫上下文窗口。窗口里有什么,它就基于什么接龙;窗口里没有的,它一概不知道。
三个直接推论,天天用得上:
- 它不知道你没告诉它的事:你公司的业务规则、昨天开会的决定——不喂给它就等于不存在。"怎么把对的信息喂进窗口"有个专门的名字叫上下文工程,是腾讯 JD 里点名的技能
- 长对话它会"忘"前面:窗口滚满了,早期内容被挤出去。重要约定别指望它一直记得,该重申就重申
- 它的知识有截止日期:训练数据停在某个时间点,之后的新闻它靠猜。要新信息就得联网搜或你贴给它
机制三:幻觉——为什么它会一本正经地胡说
模型没有"我不知道"的本能:接龙机制要求它永远接下去,于是知识缺口处它会编一个最像真的——编造的参考文献、不存在的函数、错误的数字,语气还特别自信。这叫幻觉,是机制的副产品,不是 bug,不会被彻底修好。
怎么跟它安全共处?记瑞士奶酪模型:每片奶酪都有洞(每道防线都有漏洞),但多片叠起来,洞就对不齐了。对 AI 的输出:
- 第一片:给足上下文(资料贴给它,让它"有据可接")
- 第二片:让它引用来源("基于我给的文档回答,注明出处")
- 第三片:关键处人工验证(数字、代码、事实——跑一遍、查一遍)
"信任但验证"这句话,就是这三片奶酪的缩写。哪天你逮住一个客服机器人"自作主张处理退款",干的就是这个活。
5 分钟跟做
打开 WorkBuddy(或任意 AI 对话工具),把下面这句发给它:
用 100 字解释你为什么会产生幻觉,并给我一个"我该怎么验证你输出"的建议。
看它的回答和这篇讲的能不能对上——让 AI 解释 AI,这招很常用。
你只需要会这些
三句话能复述就合格:它靠接龙生成,不是查库;窗口里没有的它不知道;它会自信地编,所以关键处必须验证。 Transformer 架构、注意力机制、训练原理——统统不需要,那是造模型的人的事,你是用模型交付价值的人。
AI 认知 · Prompt 基础十条:把话说明白的手艺
十条(前五条管"说清楚",后五条管"管得住")
1. 说目标,别说过程:先讲你最终要什么,而不是一步步指挥它怎么做。
差:"帮我写个循环遍历订单" → 好:"我要统计这批订单里金额大于 100 的有几单,数据长这样:…"
2. 给背景(上下文):它不知道你没说的事。你是谁、给谁用、什么场景、有什么约束,前置交代。
"我给一家连锁电商做客服工具,用户是不懂技术的客服主管…"——一个像样的开场白就是这么写的。
3. 给例子:一个好例子顶三段描述。要什么格式/风格,贴一个样例:"参照这个格式输出:…"
4. 定输出形态:要表格说表格,要 100 字说 100 字,要 JSON 给字段名。不说,它就自由发挥。
5. 划边界(明确不做什么):"先别写代码""不要引入外部依赖""只改这一个文件"。"先别写代码,先给我 PRD"就是这条——边界往往比目标更能防跑偏。
6. 大活拆小步:别一句话要一个完整系统。先要方案,确认了再要实现,再验收再下一步——"PRD → 生成 → 修改"这样的三步走,就是拆步的节奏。
7. 拿不准就让它先复述:"开工前,先用三句话复述你对这个任务的理解,列出你打算怎么做。"理解偏了当场纠正,比返工便宜十倍。
8. 让它自查:"改完列出你改了哪几处""检查一遍有没有漏掉退款场景"。AI 检查 AI,能兜住不少低级错。
9. 加一句"别做多余的事":AI 有热心过头的毛病——你要改一个按钮,它顺手把配色全换了。护栏句:"只做我要求的,别做任何额外改动。"(讲师在国产工具上实测踩过的坑,这句是特效药)
10. 不满意就迭代,别推倒重来:输出不对,指着具体问题让它改("第二段太啰嗦,压到一半"),而不是换个说法从头再问。对话是有上下文的,迭代比重开便宜。
5 分钟跟做
从你工作里挑一个真实小任务(写通知/整理表格/回复邮件),用这个骨架写一条 Prompt 发给 AI:
【背景】我是…,要给…做…
【目标】帮我…
【要求】输出格式为…;不要…
【自查】完成后检查…
对比一下你平时"一句话甩给它"的效果——差距就是这十条的价值。
你只需要会这些
十条不用背,记三个动作:说人话交代清楚(1-4)、划边界拆步子(5-7)、让它自查+别做多余的事(8-10)。市面上的"神级咒语大全""万能模板"不用收藏——那些花活的底层就是这十条。而且用久了会发现:跟 AI 把话说明白的能力,和跟客户把需求聊明白的能力,是同一块肌肉。
选修 · AI 编程范式简史:五年走完的四级台阶
台阶一:补全时代(2021-2022)——AI 是输入法
GitHub Copilot 上线,AI 第一次进了程序员的编辑器:你写一半,它猜下一半,按 Tab 接受。本质是超强代码输入法——快,但主意全是你的,它只负责把你想好的敲得更快。
台阶二:对话时代(2022-2023)——AI 是搜索引擎升级版
ChatGPT 出现,写代码变成"问答":把报错贴进去、让它写个函数、解释一段正则。程序员的日常从"查 Stack Overflow"变成"问 AI"。但代码还是要你自己复制回项目、自己改、自己拼——AI 在项目外面,你在项目里面。
台阶三:结对时代(2023-2025)——AI 进了项目
Cursor、Trae 这类 AI IDE 出现:AI 能看到你整个项目,能直接改多个文件,能跑命令看报错。你说"给列表加个分页",它自己找到该改哪三个文件。这时一个新词开始流行——Vibe Coding:你用自然语言描述意图,AI 负责实现,你负责判断对不对。
台阶四:代理时代(2025-)——AI 成了干活的人
Claude Code 这类 Agentic 工具把台阶再抬高一级:你交代一个目标("按 PRD 实现这个应用"),它自己拆任务、写代码、跑起来、看报错、修复、再验证——一个循环能自主跑几分钟到几十分钟,你在关键节点把关。"交代一个目标,回来验收"——这就是这一级的体感。
这段历史对你意味着什么
- 人的角色一路上移:从"敲代码的"→"问问题的"→"描述需求的"→"管 AI 干活的"。每上一个台阶,拼的越来越不是手速,是把需求说清楚 + 判断产出对不对的能力——这正是这个岗位最核心的能力
- JD 已经追认了这件事:字节 FDE 岗硬性要求"熟练掌握 Vibe coding";DeepSeek JD 写"重度使用 Claude Code、Cursor 优先"(2026-03,量子位)。工具使用方式本身成了岗位技能
- 台阶越高,验证越重要:AI 自主性每升一级,它"自信地做错"的半径也大一级——所以这个系列的下一篇《信任但验证》,是代理时代的安全带
你只需要会这些
记住四个台阶(补全→对话→结对→代理)和一句话:工具每进化一步,人的价值就往"定义问题、验证结果"移一步。 不需要背年份和产品名——每一级自己亲手摸一遍,比记住谁先谁后有用得多。
选修 · 上下文工程入门:AI 做的为什么跟你想的不一样
好需求三标准
| 标准 |
意思 |
反面 → 正面 |
| 具体 |
有颜色、尺寸、数量、风格 |
"做个好看的页面" → "蓝白配色,卡片式布局,圆角 8px,顶部固定导航" |
| 有边界 |
做什么 + 不做什么 |
"做个电商" → "二手书平台 MVP,只做发布/搜索/下单,不做支付和物流" |
| 可验证 |
能用数字或条件衡量达标 |
"要快" → "页面加载不超过 3 秒" |
教练不会说"开好一点",会说"方向盘左打半圈,速度 30 码"——数字比感受词有效。"现代感"三个字对 AI 没有意义,"渐变背景+圆角按钮+卡片阴影"它就知道怎么做了。
需求不必一次完美:迭代金字塔
- 第一层(开始对话时):说清核心——谁用、干什么、技术栈。三行就够,先让 AI 动起来
- 第二层(动手前):定好边界——做什么、不做什么、MVP 范围
- 第三层(做的时候):补充细节——颜色值、异常处理("加载失败显示重试按钮,不是空白页")
大部分人的问题不是"不会写好需求",而是"以为要一次写完美所以干脆不写"。需求是迭代出来的,不是一次憋出来的。
连第一层都写不出来?反向提问法
让 AI 当产品经理,反过来问你。万能话术:
我想做一个[你的模糊想法],但我还没想清楚具体要什么。
请你像产品经理一样,问我 5-8 个关键问题,帮我梳理清楚需求。
每次只问一个问题,等我回答后再问下一个。
这招在预习第③步"想好你的项目"时就能用——把你行业的模糊想法喂给它,让它帮你把选题问清楚。
上下文的四种失败模式(自查表)
| 模式 |
生活类比 |
典型现场 |
| 🔴 不足 |
跟设计师说"帮我装修",没说风格预算户型 |
你说"做个登录页",AI 用了 React,你的项目是 Vue |
| 🔴 过载 |
给装修队一本书,"按这本书装修" |
把所有文档全贴给 AI,它抓不住重点做偏了 |
| 🔴 矛盾 |
一张图纸客厅朝南,另一张朝北 |
规范里写蓝色主题,对话里又说改绿色 |
| 🔴 过期 |
用去年的图纸施工,今年墙已拆 |
数据库改了结构,项目说明没更新,AI 按旧的生成 |
信息量多少算刚好:一个新手项目的说明文档 200-500 字最合适。判断标准——发给一个没参与过项目的同事,他能看懂你要做什么就够,看着累就删。
AI 输出不对时的五步排查口诀
① 技术对不对? → 有没有说技术栈
② 范围对不对? → 有没有画边界
③ 风格对不对? → 有没有说视觉要求
④ 有没有冲突? → 规范和对话有没有矛盾
⑤ 信息过期吗? → 说明文档跟当前代码是否一致
前三步解决 80% 的问题。
别一上来就说"AI 太笨了"——按这五步查,通常前三步就找到原因。
你只需要会这些
三标准(具体/有边界/可验证)+ 迭代金字塔(先三行启动再补)+ 四种失败模式自查。这些东西看懂不难,难在有意识地用。下次让 AI 做事之前,照着这三条把要求写一遍,差别立刻看得出来。
选修 · Agent 是什么:从"会说"到"会做"
一个任务看懂本质分岔
任务:"帮我规划周六的约会,预算 500。"
普通问答 AI:"好的,你们喜欢什么类型的活动?"……一问一答,真正干活的还是你自己。
Agent:
[思考] 拆成三段:下午茶 → 晚餐 → 晚间活动
[行动] 调用搜索工具找安静的咖啡馆 → 拿到 3 家,选评分最高的
[行动] 再搜适合约会的餐厅、再搜有氛围的酒馆
[思考] 合计 480,在预算内 → 输出一张完整行程卡
核心差异:普通 AI 只能"说",Agent 能"做"。 一个能查订单、能转人工的客服机器人,就是最迷你的 Agent 雏形。
定义一句话 + 四大能力
Agent = LLM(大脑)+ 工具(手脚)+ 记忆(笔记本)+ 自主循环(自己决定下一步)
四个缺一不可:没工具=空谈,没 LLM=传统脚本,没记忆=失忆症,没自主循环=遥控玩具。
| 能力 |
干什么 |
体现 |
| 规划 Planning |
把大任务拆成小步骤 |
用户说"规划约会",它自己决定先咖啡再晚餐 |
| 记忆 Memory |
记住偏好与上下文 |
你说过"不喝酒",后续自动把酒吧换成剧场 |
| 工具调用 Tool Use |
按需选工具、传参、解释结果 |
要天气调天气接口;不该调的时候不瞎调(这是关键) |
| 反思 Reflection |
判断结果够不够好,决定重试/放弃 |
搜索没结果就换关键词再试,而不是直接答"查无" |
反思是 Agent 和脚本最大的差异:脚本错了就崩,Agent 错了会自己调整。
最好用的隐喻:Agent 是实习生
会拆任务、记得主管偏好、会用办公软件、做完自己检查——一个好实习生 = 一个好 Agent。你怎么培训实习生,就怎么"培训"Agent:给背景、画范围、定期同步、必要时干预。
关键视角转变:你不是在写 Agent,你是在管 Agent
写代码的 Agent 已经存在了(Claude Code 就是)。你要学的不是"怎么造 Claude Code",是"怎么让它帮你造产品"。类比:不用学开出租车,要学的是告诉司机去哪、走哪条路、什么时候让他做主。
自主级别 L1-L5(不用背,有感觉即可):L1 问答(ChatGPT 网页)→ L2 建议(代码补全)→ L3 半自主(关键节点确认)→ L4 全自主(交代目标看结果,Claude Code)→ L5 多 Agent 协作。
级别不是越高越好——什么时候放手、什么时候干预,有一张黄金清单:
- 🟢 放手:重复性任务 / 有明确规范 / 可回退 / 低风险读操作
- 🔴 干预:碰钱、碰隐私、碰生产数据 / 影响真实用户(发邮件/支付/删数据)/ 不可逆操作
眼熟吗?某演示项目第③步你拦下"机器人自己处理退款",就是在执行这张清单——配得合适是能力,一律放手是不懂管理。字节 JD 里"识别 AI 可介入 vs 人工兜底的边界",说的就是这件事。
你只需要会这些
能给外行讲清三句话:Agent 是能自己拆任务、用工具、会自查的 AI;把它当实习生管;越碰钱和权限越要人把关。 ReAct 循环、多 Agent 编排、MCP 这些工程细节,真动手时再查不迟,现在不用背。
选修 · 信任但验证:AI 写的代码,哪些能直接收,哪些必须查
为什么不能"全都人工看一遍"
有人说:"AI 写的代码我全部人工 review 不就安全了?"——不可能。1,000 行的项目人工审要 4 小时,10 个项目就是 40 小时。人工全量 review 在 AI 时代不可持续,必须分级:越接近"钱、隐私、权限"的代码,越不能盲信 AI。
信任度金字塔:记住 5 / 15 / 40 / 40
| 层 |
代码类型 |
占比 |
怎么对待 |
| ⛔ 必须人工 |
支付/加密/风控核心逻辑 |
~5% |
AI 写完人工逐行审 + 测试覆盖 |
| 🔴 低信任 |
认证/权限/数据加密 |
~15% |
AI 写完必须换另一个 AI 审,且要有测试 |
| 🟡 中信任 |
增删改查/表单/列表 |
~40% |
跑一下 + 测边界(0/-1/超大数/空值全打一遍) |
| 🟢 高信任 |
样式/文案/静态页面 |
~40% |
瞄一眼直接收,错了顶多"丑",不会"挂" |
本质就一句:80% 的代码(UI+CRUD)不值得花审查时间,把精力全部集中到那 20% 的命脉上。 高信任层不要浪费时间审;中信任层只做边界审查不做安全审查;低信任以上才动真格。
一个中信任 bug 的典型长相(AI 写的分页接口):没限制 pageSize 上限(前端传 10000 数据库卡死)、没处理 page=0 或负数——测边界一打就现形。
交叉审查:写代码的 AI,不能是审代码的 AI
单个 AI 审自己的代码,命中率约 30%——它"觉得自己写的就是对的",看不见自己的盲点。换一个不同的 AI 来审,命中率能到约 75%:训练数据不同、评判标准不同,一个看不见的洞另一个能看见。
三种用法(由轻到重):
- 写完即审:A 工具写完提交 → 换 B 工具"审一下这个提交有没有安全问题" → 回到 A 修 → 循环
- 阶段审查:每个里程碑让另一个 AI 全项目扫一遍,输出一份 Markdown 审计报告,逐项修完再复审
- 交付前审查:上线前深度审 + 快速扫双管齐下,报告合并去重——这份报告本身就是交付物
三个反模式(新手全踩过):
- ❌ 同一个 AI 既写又审(自带偏见)
- ❌ 只审单个文件不审全项目("漏鉴权"这种问题单文件根本看不出来)
- ❌ 审完只留一段对话不留报告(没有 Markdown 报告等于没审——交付不是审查的副产物,是审查的目的)
你只需要会这些
两个数字一句话:5/15/40/40 分级审查;写和审必须是两个 AI;审查的产出是报告不是对话。 OWASP 十大漏洞的具体条目用到时再查,现在不用背。
选修 · Agent PRD 初见:写给 AI 看的项目说明书
包工头的比喻
想象你是包工头,雇了很多工人。每个工人来,你不可能从头解释整个项目——你会给他一份施工说明书:"项目是这样的,统一用这些材料,风格要这样……"
Agent PRD 就是这份说明书,只不过读者是 AI。 它不是写给人看的产品文档,是写给 AI 看的项目约束。Claude Code 的 CLAUDE.md、Trae 的 Rules,本质都是它的载体——AI 每次干活前先读它,你就不用每次重新解释。
一份合格的 Agent PRD 长什么样
# 二手书交易平台 — Agent PRD
## 项目概述
是什么:在线二手书交易平台 MVP;给谁用:大学生卖买闲置教材
## 技术选型(严格遵守)
前端 Vue3 / 后端 Node.js / 数据库 SQLite;不使用 React、Spring Boot
## 界面风格
主色 #1890ff,圆角 8px 统一,卡片式白底轻阴影
## 编码规范
注释用中文;变量驼峰命名;API 走 RESTful
## 已实现功能(勿重复实现)
书籍列表(GET /api/books)、书籍发布(POST /api/books)
## 当前版本范围(MVP)
包含:发布/浏览/搜索/登录;不包含:支付、物流、评价
注意两个容易被忽视的段落:"已实现功能(勿重复实现)"防 AI 把做过的再做一遍;"不包含"防它热心过头把项目做成三个月的工程。
三种最常见的写错
- 太模糊:"技术选型:随便,什么都行" → AI 每次用不同技术,项目风格分裂
- 互相矛盾:选型写 Vue3,界面风格又写"用 React 的 Material UI" → AI 不知道听谁的
- 过期信息:PRD 写"用 user 表",你上周已改名 account 表 → AI 按旧的生成(上下文四种失败模式里的"过期",最隐蔽)
最重要的一条:PRD 是活文档
- 第一天 200 字就够:技术选型 + 风格 + MVP 范围 + 不做什么
- 做了两天 补一段:已实现功能、已有组件(防重复)
- 一周后 再补:API 返回格式约定、数据库表结构
项目每向前走一步,PRD 就该更新一行。 最怕的不是写得不好,而是做了三天还停在第一天的 200 字版本——省的不是写文档的时间,是 AI 重复劳动和你排查的时间。
和 FDE 的关系(为什么预习就讲它)
腾讯 FDE JD 技术栈第一组词是"上下文、RAG、MCP、SDD"——SDD(规范驱动开发)的核心思想就是"规范是新的源代码":把项目约束写成 AI 可执行的规范,是 2026 年 JD 里的正式技能词。实际动手时,给一个项目写的第一份文档往往就是 Agent PRD —— 它会跟着项目一路长大,最后长成交付文档的底稿。
你只需要会这些
记住结构(概述/选型/风格/规范/已实现/范围)+ 三种写错 + "活文档"心法。模板不用背——让 AI 替你生成即可,你的活是看懂它、维护它、别让它过期。
做 Agent 应用,怎么测它的效果
常被问到的一个问题:「做一个 Agent 应用,怎么去测试它的效果,是自己做一个测试集吗?」
一句话先回答:是,要自己做测试集,而且要分两层来测。
一、为什么 Agent 应用不能只用老办法测
传统系统输入一样输出就一样,写断言就行。Agent 应用有一段是模型在判断,同一句话十次里可能有一次判错,你没法用"等于"去测它。所以要分两层:确定的部分用断言,不确定的部分用评分。 两层都要有,少一层都不算测过。
二、第一层:确定的部分,照老办法测
路由规则、工具契约、数据读写、三态、权限,这些是确定的。一个客服 Agent 示例里的自测命令就是这一层:十五条用例,输入「查订单 YX1003」断言状态等于已签收、金额等于 499;输入「我要退款」断言必转人工。
这一层的要求只有一条:断言内容,不只断言有输出。 "返回了一张卡"不算,"卡上金额等于 499"才算。
三、第二层:不确定的部分,用评估集打分
模型参与判断的环节(意图分类、答案生成、检索命中),要准备一组带期望答案的题,行业里叫评估集,也叫 golden set。看这几样:
| 看什么 |
怎么量 |
| 意图判得对不对 |
准确率和召回率,按类别分开看,重点看漏判 |
| 答案对不对 |
四种办法由便宜到贵:精确匹配、相似度、让大模型当裁判打分、人工抽评 |
| 该不该答 |
兜底率和编造率:知识库外的问题必须不编造 |
| 工具用得对不对 |
该调的调了没、参数对不对、有没有多调 |
| 任务完成率 |
一条链路从头走通的比例,这个数最接近客户的感受 |
评估集的题从哪来?三个地方:PRD 的验收标准、真实用户的措辞、上线后答错的记录。不能从代码里抄。 我们 2026-08 实测过一次,AI 自测十条全绿,上线还是漏,原因就是用例是从它自己的规则表里抄关键词,规则表里没有的话它永远测不到。这叫测试和实现同源,等于拿答案当考题。
四、第三层:回归
三件事发生任何一件,评估集全部重跑一遍:换模型或模型升版本、改提示词哪怕一行、知识库加了内容。条数不减、分数不降,才算没改坏。"切回 mock 数据后自测仍然全绿",就是最小的回归。
五、上线以后
每一轮对话记一条追踪:意图、工具、耗时、有没有兜底。定期看兜底率和各类意图的分布,答错的回流进评估集。再加红队测试:越权查单、诱导退款、提示注入。成本和延迟也是指标。
六、一句话版
确定的用断言,不确定的用评分,题不能从代码里抄,改一次跑一遍。
2026-09 我们在自己抓的大厂 JD 里第一次看到「Agent Benchmark」「自动评测」这样的词进了岗位要求,见观察 #005。
一个 AI 需求来了,怎么判它能不能做
做交付的人常遇到这种开头:「我们数据攒了好几年,让 AI 帮我们做点事。」
一句话先回答:先对七类失败模式,再让 AI 列风险、你逐条判真伪,最后把「不做」说成「换个交法」。
一、AI 项目死得多,但多数不是死在模型上
这几年讲 AI 试点失败率高的报告不少,数字各家不一样,这里不引。做过几次就知道,失败的头号原因不是模型不行,是三件事没人说清:该不该做、做什么、怎么算成功。所以接到需求先别谈方案,先判。
二、七类失败模式,拿着对号
拿到任何一个 AI 需求,先过一遍这七问。答不上来的那一类,就是这个项目最先会死的地方。
| 类别 |
自查问题 |
判死的迹象 |
| 数据 |
数据在哪、有多少、谁管、能不能拿 100 条真实样本出来看 |
拿不出 100 条样本 |
| 指标 |
只能盯一个数字的话盯哪个?现在的基线是多少 |
客户只说「效果要好」 |
| 干系人 |
谁掏钱、谁用、谁怕?三个人的目标一样吗 |
三方各说一套 |
| 集成 |
要接哪几个老系统,有没有接口,谁有权限开 |
接口的答案是「导 Excel」 |
| 合规 |
数据能不能出、用途有没有授权、行业有没有准入 |
没人说得出审批的人是谁 |
| 采纳 |
上线后谁每天打开?不用有什么后果?替代了谁 |
一线不在干系人名单里 |
| 阶段 |
客户今天怎么看数据、员工自己用 AI 到什么程度 |
客户还在个人提效阶段,要的是陪跑不是改造 |
这张表的用法不是打分,是找出「答不上来」的那一两格。答不上来的,结论只能是「待确认」,这也是一种合格的答案,比硬给一个「能做」强。
三、同一个需求,行业不同,先问的那一问不一样
同样是「上个 AI 客服」,四个行业卡的地方各不相同:制造先看进不进得去,客服要答的数据在哪个系统,给不给接口,产线数据出不出厂区;零售先看用不用得起来,机器人答错一句谁改知识库,多久改一次,这一条问出来多半是没人;金融先看谁签字,AI 答错一句投诉进来谁负责,合规部知不知道这个项目;医疗先看有没有资质,涉及诊疗建议的回答有准入门槛,不是技术做得好就能上。
举一条通用的:「公司文档太乱,做个什么都能答的问答。」先问三问:「什么都能答」里最常被问的 20 个问题能列出来吗,列不出来成功指标就定不出来;同一项制度有几个版本、哪个现行、谁说了算;上线后文档更新了谁负责同步进系统,没有这个人,三个月后它答的就是旧版。三问里有一问答不上来,先别接。
四、让 AI 列风险,真伪要自己判
用 AI 起草风险清单很快,一条提示词几分钟就出 5 到 8 条,每条带类别和「向客户确认的一问」。但它会编。判真伪只用三个动作:①和需求原话对得上吗 ②这一版的范围里会发生吗 ③它有没有替客户编了事实。三个里有一个答「否」,那条划掉或改成「待确认」。
一个零售客户的例子:「会员数据攒了五年,让 AI 帮我们做精准营销。」AI 起草、人工判过之后,表里留下的几条是这样的:
| 风险 |
类别 |
真伪(人工判) |
向客户确认的一问 |
| 会员数是注册数不是可运营数,打通率 × 活跃率 × 字段可用率三层漏斗乘下来可能只剩零头 |
数据 |
真;但它顺手写的「门店识别率行业经验值 30%-60%」没有出处,划掉数字留问题 |
能否先导出三套系统各一万条样本做打通率与字段完整度体检? |
| 「精准营销」四个字没有一个数字,没有基线,无法验收 |
指标 |
真 |
一年后谁签字、看哪个数、跟什么基线比? |
| 响应模型不等于增量模型:模型会精准挑出本来就会买的老客,券是白送的利润,账面还很好看 |
指标 |
真,而且是最贵的一条 |
能否每波留 5%-10% 随机人群不发券做对照? |
| 三套系统三个老板,打通卡在授权和排期,不是技术 |
干系人 |
待确认 |
能否一次性批下三个系统的数据权限和接口资源? |
| 客户期待「五年数据直接变现」,但前几周只有数据治理,没有可见产出 |
阶段 |
真 |
客户对第一版的期待到底是什么? |
第一条那个「30%-60%」就是 AI 编的行业数,风险本身是真的,数字要划掉。一张表里一条「编的」都没标出来,大概率是没有逐条判过。另外两条针对 AI 产出的自查:它列的风险里有没有这个行业根本不会发生的,有就划掉;它给的建议里有没有「加个 AI 就行」这种没有代价的,有就退回。
五、不做清单:不做什么、为什么、换成什么
判完风险,接着写不做清单,三行写法,每条都要有「换成什么」。还是上面那个零售例子:
| 不做什么 |
为什么 |
换成什么 |
| 不做实时千人千面 |
要实时特征平台、埋点、在线推理,另一个量级的工程 |
离线人群包 |
| 不做全量数据治理 / 中台 |
那是基建项目不是 AI 项目,做成是中台的功劳,做砸是 AI 的锅 |
只治理这一版用到的字段 |
| 不做动态定价 / 个性化券面额 |
碰价格合规和门店定价权 |
这版只决定「发给谁」,不决定「给多少」 |
| 不做多场景多区域并行试点 |
稀释样本、混淆归因 |
只做 1 品类 × 1 区域 × 1 类人群 |
不做清单写的是「不做无关功能」这种话,等于没写。判据是砍范围不是砍功能:缩到一个人群、一个部门、一个流程。这个例子最后选的方案是「从多赚改成少浪费」,预算、券种、节奏都不动,只把发券名单换成模型排序后的头部人群,验收看单位券成本的核销额,基线用客户自己过去六个月的数据。前提是券成本算在客户头上,否则退回更保守的那一版。
还有一句话要在动工前落下来:范围怎么换都解决不了「指标没定义」这个根,第一份交付物应该是一页纸的验收指标定义,看哪个数、基线是什么、谁签字、什么算不达标。指标定下来之后怎么测,见怎么测 Agent 应用的效果。
六、不做的时候怎么说
不说「做不了」,说「这样做我交不出你要的结果,换成 X 我能交」。一段话照四个要素说:承认原需求合理的一句 / 「这样做我交不出你要的结果」的原因 / 换成什么我能交 / 请对方拍板的一件事。
对着 IT 负责人,这个零售例子是这样说的:「老系统撑着全部门店,稳定第一,我认同。原路子要打通三套库、让模型直接写回券系统,一旦写错或外泄,责任在您,产出没法回滚。这版不碰写入:模型只离线出名单,导入仍走你们现有流程。请拍板:这版只读数据、不改系统。」里面没有数字承诺,没有「不可能」,给出的是一个对方能签字的范围。对老板和一线的说法结构一样,只是先回应各自最怕的那件事:老板怕拖,IT 怕出事,一线怕丢活。
什么时候说,分三个时机:干系人之间没对齐的,你在下面说服谁都没用,请客户自己先开一次会;数据、集成、采纳这三类风险占多数的,方向对但范围太大,换范围;数据在不在、质量够不够、接口开不开,不进场看一周谁都答不了的,这一周的工作本身就该收费,当 Discovery 收。
反过来卡自己的一条:客户要一个能出报告的 Agent,你按字面做了个工具交差,不判断该不该做、不证明它可靠,那就是把活接坏了。判断该不该做,本来就是这个岗位的一部分。
七、一句话版
先对七类找出答不上来的那一格,AI 列的风险逐条判真伪,不做清单每条都写换成什么,开口说「换成 X 我能交」而不是「做不了」。
Agent 应用上线以后,怎么看得见它在干什么
评估集回答的是「改好了吗」。上线以后问题变了,变成「今天还好吗」。评估集是考试,看板是体检。这篇只讲体检这一半,考试那一半见怎么测效果。
一、先有追踪,每一轮对话记一条
上线以后能看见什么,取决于每一轮对话你记了什么。我们现在的做法是每轮记一条,五列,不多不少:
| 列 |
记什么 |
少了它会怎样 |
| 意图 |
这轮判成了哪一类:faq、查订单、开工单、转人工、unknown |
算不出兜底率 |
| 工具 |
调了哪个,ok 是不是 true;失败的把原因原文留下 |
分不清是模型判错还是工具挂了 |
| 耗时 |
毫秒 |
时延报不出来,成本也算不了 |
| 兜底 |
走没走 unknown 或转人工 |
不知道它是在答还是在编 |
| provider |
这轮是 mock 跑的还是哪家模型、哪个版本 |
模型换了、key 挂了,你都不知道 |
五列里常被省掉的是后两列,偏偏不能省。一个连锁零售客服 Agent 的示例里出过这样的事:模型请求失败了,页面上显示的却是「意图未识别」,失败被记成了一个正常分类。所以可观测的第一条不是看板,是失败要明确失败,不吞。追踪里没有 provider 和 ok 这两列,先补这两列,再谈别的。
二、从追踪里算五个数
有了追踪,第一版看板就五个数,每个数写清楚怎么算、基线从哪来。多了没人看。
| 数 |
怎么算 |
基线 |
怎么看 |
| 总轮次 |
追踪条数 |
无 |
它是下面几个数的分母 |
| 兜底率 |
unknown 或转人工的轮次 ÷ 总轮次 |
上线第一周 |
高了是它没在答,低了可能是它在编,两头都要看 |
| 各意图平均耗时 |
按意图分组求平均,分 provider 各一列 |
评估集跑出来的数是第一版基线,上线第一周再校 |
看分布不看平均;示例项目里超时线定的是 15 秒 |
| 工具报错次数 |
ok 为 false 的条数 |
上线第一周 |
一条就要看 |
| provider 分布 |
按 provider 计数 |
无 |
模型改名、版本换了,先在这里露出来 |
兜底率单说一句,它容易看反。转人工不算失败,不转还答错才算,所以兜底率不是越低越好。它突然高,先看 provider 那列,是不是模型换了,或者请求失败被算成了 unknown;它突然低,抽几条兜底之外的回答,看库外的问题是不是开始答了。示例里那条 30% 的线只是占位,拿到第一周的真实数就换掉。
另一个坑是分母。让 AI 写看板,它爱把兜底率的分母写成「有回复的轮次」,分母错了整页都错,验收时把它写的每一个「怎么算」逐个对一遍。
采纳率(一线真的用了它答案的比例,不是它答了多少)、每轮成本、漂移这几个数也要盯,不过它们要么要接业务侧的数据,要么要定期重跑评估集,第一版看板可以先不放。
三、看板第一行是版本号
看板页顶两行不能少:版本号,当前 provider。我们自己一个工具翻过车:新版发出去,页面能开,功能是旧的,一句报错都没有,用的人只能问一句「我看的是不是新版」。他问出这句,是因为你没给他判断手段。看板同理,别人看见一个数,得先知道这是哪一版、谁跑出来的。
第二条,数要全量算,不看首屏。凡是说「变了」,先确认上次那个基线是不是全量。你说兜底率涨了,先问一句上周的数是全量算的还是前一百条。
四、告警:先跑一周,再定线
这一段我们在自己的工具上做过,在客户的生产环境里没有搭过一整套,说的是行业里的做法和我们的建议。
上线第一天就拍一个兜底率阈值,第一周基线比它高,天天报,一周后没人看,告警从此是噪音。所以先跑一周不设阈值,拿到每个数的日常范围,阈值等于基线加减一个幅度,幅度怎么来的写明白。
告警第一版只留三条:兜底率越线、工具报错次数越线、时延超时次数越线。成本按天看,不告警。告警发给一个人,就是项目里签字兜底的那个人,发给一个群等于没发。渠道先用群消息不用短信,看一周误报多少再收紧。到了客户现场,先问他们现有告警走什么渠道,别另起一套。
五、答错回流,把环闭上
上线以后一定会漂,来源就三个:模型升版或改名,一家厂商把模型名改了,老名字直接调不通,不改一行代码分数从有到无;知识库加了内容,原来命中的条款被新加的条款挤掉;用户措辞变了,开始问上线时没人问过的东西。
三种漂移各有发现手段。第一种看 provider 分布,加上评估集定期重跑;第二种改完知识库全量重跑;第三种看兜底率上升,然后把答错的原句捞出来。
捞出来之后就是回流:兜底率越线的那些轮次,或者客户挑出来的刺,原句进评估集的异常集,期望和客户对好,全量重跑,分数不降才再上线。这个环转起来,评估集就跟着项目长,因为它装的全是真的问过的话。
六、最小可观测清单
照这个顺序做,前一步没有,后一步是空的。
| # |
做什么 |
过线标准 |
| 1 |
每轮一条追踪,五列:意图 / 工具+ok / 耗时 / 兜底 / provider |
模型请求失败时追踪里看得出是失败,不是「意图未识别」 |
| 2 |
五个数从追踪里算,每个数旁边写怎么算 |
分母是总轮次,不是「有回复的轮次」 |
| 3 |
看板页顶显示版本号和当前 provider |
别人不用问「这是新版吗」 |
| 4 |
数全量算,不看首屏 |
说「变了」之前基线是全量 |
| 5 |
阈值先占位,跑一周拿基线再换 |
阈值旁边写着它怎么来的 |
| 6 |
告警只三条,发给一个人 |
一周后还有人在看 |
| 7 |
答错原句回流评估集,重跑,不降才发 |
评估集条数只增不减 |
这份清单不需要 Grafana,也不需要新系统。示例项目里它就是同一个页面上加的一页看板,数据源只有那份追踪记录。
七、一句话版
先有追踪再有数,数旁边写怎么算,看板第一行是版本号,阈值跑一周再定,答错的回流评估集。
做 AI 应用,这笔账怎么算
客户第一句问的往往不是「准不准」,是「这东西一个月要花我多少钱」。
一句话先回答:钱 = 调用次数 × token × 单价。前两个数是你自己的,追踪记录里就有;第三个数是厂商的,按当天官方定价代入。三个数都拿得到,这笔账就算得出来。
一、一次调用花什么
一次调用花的是三个数,前两个在模型返回体的 usage 字段里,第三个从追踪记录里数。
| 数 |
从哪拿 |
谁定的 |
| 输入 token |
返回体 usage.prompt_tokens |
你。系统提示词多长、知识库塞几条、历史带几轮 |
| 输出 token |
返回体 usage.completion_tokens |
一半是你(让它回几句),一半是模型 |
| 调用次数 |
追踪记录里数:一轮对话调了几次模型 |
你。两跳还是一跳,是你设计的路线 |
| 单价 |
厂商当天的价目页 |
厂商。名字和价格它们随时能改,所以不写进源码 |
一轮的钱 = Σ(每次调用的 输入 token × 输入单价 + 输出 token × 输出单价)。走规则或走 mock 的那一轮,三个数都记 0。
调用次数比 token 更值钱,它决定量级。我们自己一个客服助手示例里,faq 类问题走「意图判定 → 检索后作答 → 裁判打分」三次调用,真模型平均 7.0 秒;unknown 类一跳判掉,一次调用,1.6 秒。耗时表和钱账是同一个形状:多一跳,就多一次调用的 token,时间和钱一起涨。 数调用次数要打开追踪记录数 provider 不是 mock 的有几条,别按设计图数。
二、上线以后,钱花在哪
一张月账表,单价栏空着,公式写在数旁边。
| 日均咨询条数 |
平均每条轮次 |
每轮平均 token(输入 / 输出) |
单价(输入 / 输出) |
每轮成本 |
月成本 |
| 客户给,没有就问 |
追踪里数,上线第一周拿基线 |
灌一遍评估集读出来 |
上线前按当天官方定价填 |
输入 token × 输入单价 + 输出 token × 输出单价 |
日均 × 轮次 × 每轮成本 × 30 |
单价栏为什么空着:价目是厂商定的,今天填的数下个月可能就不对,换厂商改一个数整张表跟着动。没填单价的地方显示「待填单价」,不显示 0,0 会被当成免费。
月账之外有两笔容易漏的。一笔是超时和重试:超时了没等到回复,输入 token 已经花了,厂商按它收到的算;自动重试一次就是两次的钱,而重试那一次和正常那一次在账单上长得一模一样。先去追踪里数一天重试了几次,这个数不看,月账能差一倍。
另一笔是机器。要不要买卡,估法是:日均条数 ÷ 营业秒数得到均值每秒请求数,乘 3 到 5 倍当峰值(倍数看行业,写明为什么),再乘每轮耗时(按最慢的那类或你的 P99),就是同时在处理的轮数。算出来很小也要算,数小说明这个项目的钱在 token 不在机器。
三、怎么省
四个办法,按我们建议的顺序。
缓存。 客服场景重复问题多,同问同答就是缓存。精确缓存:同一句原文再问,直接给上次的答案,一次调用都不花。语义缓存:意思相近的问法命中同一个答案,靠向量相似度判「相近」,判错会答错人,而且它本身也要一次小调用。先做精确的,看一周命中率,上不去再考虑语义。
截断。 输入 token 是你自己写出来的,也是你自己能砍的:系统提示词能不能短、知识库每次塞几条、历史带几轮。少塞选段,时延和成本一起降。取舍见 上下文工程。
模型分级。 简单意图(unknown、转人工、短 faq)交给便宜档,复杂的交给贵档。再往前一步是规则先行:规则命中且置信度够(示例里用 ≥ 0.9)直接用规则结果,不调模型,省的是一整次调用。
批处理。 离线打标、评估集重跑这类不着急的任务,攒着走批量接口而不是一条条实时调。厂商对批量有没有折扣、折多少,按当天价目页看。
四个办法有一条共同的规矩:降级必须显式,追踪里每一轮都写「走了谁」,留空的轮次算它没做。
| 降级 |
显式的样子 |
静默的样子(反例) |
| 规则先行 |
「走了谁」= rule;看板按 rule / llm / hybrid 分开显示成本 |
规则答了,追踪里 provider 还写着模型名 |
| 便宜模型路由 |
provider 写真实模型名;两档评估分开跑 |
两档共用一个标签,分数掉了不知道是哪档掉的 |
| 超时降级 |
追踪写「llm 超时 → rule」 |
超时后悄悄切回兜底,页面显示「意图未识别」 |
| 缓存命中 |
「走了谁」= cache,成本记 0 |
命中和没命中混在一起,省了多少说不清 |
省了没人知道,等于没省。客户问「今天为什么便宜了」,你要能拿「走了谁」那一列给他看,三成走了规则,一条一条能对。
还有一条:省的是钱,不是分。同一张评估集,开省钱模式前后并排跑,掉一分就是掉一分,掉了不许上;是规则抢答答错了,就抬高那类意图的置信度门槛,不是删题。兜底率也要看,规则把该给模型的判成 unknown,兜底率会变差。评估集怎么跑见 怎么测效果。
四、什么时候该说「这个不划算」
ROI 三行,同一张表客户和你各看一半。
| 行 |
算什么 |
谁定 |
| 省的 |
重复问题占几成,能替掉多少人时 |
客户。写「待与客户定」,别替他拍 |
| 花的 |
模型月账 + 服务费 |
月账是上面那张表,服务费是你的报价 |
| 不出事的钱 |
越权 / 投诉 / 编造 各算一次损失 |
和客户一起估 |
第一行明显小于后两行之和,就该直说不划算。这话在方案阶段说,比上线以后再说便宜得多。
自托管还是 API,也是一条式子。API 花的是月 token 量 × 厂商单价,量小、峰值高、还在试的时候便宜;自托管花的是卡 + 人 + 电 + 机房,不用也在花,量大、稳定、数据不能出网的时候便宜。盈亏点是 月 token 量 × 单价 = 卡月成本 + 运维人月 + 电,月账表就是式子左边。
后一半是给自己的。按人天计价的项目,常见的错是只算清了客户省多少,没算清自己该收多少,复盘时才发现两者差着量级。同一张 ROI 表,客户看省了多少,你看该收多少。真按订阅收,还要写得出 SLA 三个数:可用性、响应时延、故障恢复时间,写不出的订阅别签。
五、一句话版
钱 = 调用次数 × token × 单价,单价按当天定价代入不写死;省钱先缓存后截断再分级,每一轮写「走了谁」,掉分不许上;省的、花的、不出事的三行并排,第一行小就直说不划算。
把重复的工作流做成 Skill:一份 2 到 3 小时的动手手册
起因:常有人问「相同的工作流能不能抽成 skill,有没有工业级的做法和资料」。答案是有,而且已经是开放标准。这份手册按一门小课的顺序写,你照着走一遍,大约 2 到 3 小时,结束时手里有一个能跑的 skill。
例子用「需求可行性体检」四步 —— 接到一句需求后先列风险、判真伪、换范围、写话术。如果你手上有自己跑过三遍以上的流程,直接换成你的。
实测声明:第三节十步在 2026-09-09 用 Claude Code 2.1.259 从空目录完整走了一遍,校验命令、手动触发、自动触发、脚本检查均按下文记录的结果执行过;未实测的两项(/skills 交互菜单、skill-creator 插件)在文中标了「未实测」。实测记录见第八节。
〇、读前须知
你需要什么
- 一个支持 Agent Skills 的工具。本手册以 Claude Code 为例,它是目前对这套标准支持最完整的。Codex、Cursor、Copilot 等也支持同一格式,SKILL.md 通用,只是放置路径和部分扩展字段看各家文档。
- 截至本手册核实时,没有看到 WorkBuddy 支持这套 skill 目录格式的说明,以它的官方文档为准。课上用它没问题,做 skill 这件事请用 Claude Code 或其它明确支持开放标准的工具。
- 一个你已经手工跑过至少三遍的流程。没跑过三遍的流程不要抽,理由见第一节。
这份手册怎么用
- 第一节和第二节是原理,20 分钟读完。
- 第三节是动手,十步,每步有检查点,做完一步再往下。
- 第四节是企业级要多做的事,做完第三节再看。
一、先想清楚:什么值得做成 skill
1.1 一句话定义
skill 就是一个文件夹,里面一个 SKILL.md,写清楚「这件事怎么做」。AI 工具启动时只读它的名字和一句描述;你提出的任务和描述对上了,它才把正文读进来照着做。文件夹里还可以放脚本、模板、参考资料,用到哪个读哪个。
它解决的问题只有一个:同一段话你不用每次再说一遍。
1.2 四个判据,满足三个再抽
| 判据 |
说明 |
以「可行性体检」为例 |
| 跑过三遍以上 |
没跑稳的流程抽出来就是把毛病固化 |
自己至少手工走过三遍 |
| 步骤稳定 |
每次顺序一样,分几步一样 |
四步固定:风险清单 → 人工判真伪 → 换范围 → 三版话术 |
| 输出形状固定 |
每次产出的东西长得一样,能验收 |
风险表三列、不做清单三格、话术四要素 |
| 有反复解释的上下文 |
每次都要把七类失败模式、不做清单怎么写重讲一遍 |
是,提示词里那段规则每次都贴 |
四条都不满足的,先当提示词用;满足一两条的,写进 CLAUDE.md 或项目规范;满足三条以上,抽成 skill。
1.3 和另外三样东西的分工
| 东西 |
什么时候读 |
适合放什么 |
不适合放什么 |
| 一次性提示词 |
你发它就读 |
这一次的具体任务 |
每次都一样的规则 |
| CLAUDE.md / 项目规范 |
每次会话都读 |
全项目通用的约束(技术栈、禁止事项) |
只有某类任务才用的长流程,会一直占上下文 |
| Skill |
任务对上描述才读 |
某一类任务的完整流程、模板、脚本 |
全局约束、一次性任务 |
| MCP / 工具 |
模型调用时执行 |
对外部系统的能力(查库、开浏览器) |
流程说明 |
记住一条:确定性的事交给脚本,判断性的事留给模型。 一个好 skill 里两者都有,而且分得清。
二、一个 skill 长什么样
2.1 目录
feasibility-check/
├── SKILL.md 必须:元数据 + 步骤
├── scripts/ 可选:脚本,模型运行它,只拿输出
├── references/ 可选:参考资料,用到才读
└── assets/ 可选:模板、样例文件
规则:文件夹名必须和 SKILL.md 里的 name 一致;引用文件用相对路径,只引一层,不要 A 引 B 引 C。
2.2 SKILL.md 的头部(frontmatter)
开放标准定了六个字段,前两个必填:
| 字段 |
必填 |
规则 |
name |
是 |
最多 64 字符;只能小写字母、数字、连字符;不能以连字符开头结尾,不能连续两个连字符;和文件夹同名 |
description |
是 |
最多 1024 字符;必须同时说「做什么」和「什么时候用」,并带上任务里会出现的关键词 |
license |
否 |
许可证名或许可证文件名 |
compatibility |
否 |
最多 500 字符;只在有环境要求时写(需要 git、需要联网、需要某个版本的 Python) |
metadata |
否 |
键值对,放作者、版本这类自定义信息 |
allowed-tools |
否 |
预先批准的工具列表,实验性字段,各家支持程度不同 |
Claude Code 在这六个之外还认一些自己的字段(第三节第七步会用到两个),那些在别的工具里不生效。
2.3 正文
正文没有格式限制,写 AI 照着做能把事做对的内容。推荐三块:
- 分步说明
- 输入和输出的例子
- 边界情况怎么处理
正文全文在触发时一次性读入,所以控制在 500 行、约 5000 token 以内。长的东西拆到 references/。
2.4 三层加载,这是它省上下文的原因
| 层 |
什么时候读 |
占多少 |
| 名字和描述 |
启动时,所有 skill 都读 |
每个约 100 token |
| SKILL.md 正文 |
任务和描述对上时 |
建议 5000 token 以内 |
| scripts / references / assets |
正文里提到、用到时 |
不读不占;脚本只回传输出,脚本代码本身不进上下文 |
所以一个 skill 可以带很多资料而不拖慢启动。也所以,description 写不好,后面写得再好也不会被触发。
2.5 在 Claude Code 里放哪
| 位置 |
路径 |
谁能用 |
| 个人 |
~/.claude/skills/<name>/SKILL.md |
这台电脑上所有项目 |
| 项目 |
<项目>/.claude/skills/<name>/SKILL.md |
这个仓库,提交进 git 就是团队共用 |
| 插件 |
<plugin>/skills/<name>/SKILL.md |
装了插件的人,以 /插件名:skill名 调用 |
团队共用的,放项目目录。
三、动手:把「可行性体检」做成 skill
目标:做出 feasibility-check,输入一句需求原话,它带你走完可行性体检的四步,并在「人工判真伪」那一步停下来等你。
第 1 步:先把 SOP 手写成一页
打开一个空白文件,按这四栏写,不写 skill,先写人话:
输入:一句需求原话(可带背景一句)
步骤:
1 列风险清单 5-8 条(风险 / 七类之一 / 要向客户确认的一个问题)+ 不做清单 3-5 条
2 【人工】逐条判真伪:标出没出处的数字、"大概率/通常/常见"这类替客户编的断言
3 假设人工判为真的两条成立,给 2-3 个换范围方案
4 把选定方案写成对老板 / IT / 一线三段话,每段四要素,无"做不了",无数字承诺
输出:风险判据表、不做清单、方案表、三段话
验收:输出里必须有 风险清单 / 不做清单 / 换范围方案 / 三段话术 四样
检查点:这一页你自己照着能手工跑通吗。跑不通,skill 也跑不通。
第 2 步:建目录
mkdir -p .claude/skills/feasibility-check/{scripts,references,assets}
名字用连字符、全小写。不要叫 skill1,不要叫 check,名字要能让三个月后的你一眼知道它干什么。
第 3 步:写 description,这是最重要的一行
三段式:做什么 + 什么时候用 + 关键词。
差的写法:
description: 帮助做可行性判断。
好的写法:
description: 对一条 AI 需求做可行性体检:按七类失败模式列风险清单和不做清单,停下来让人逐条判真伪,再给换范围方案和对客户的三段话术。当用户拿到一条新需求、问"这个能不能做"、要写不做清单、要准备跟客户谈范围时使用。
写完自己问一句:如果我是模型,看到「客户要做个 AI 客服,能不能接」这句话,凭这一行描述会不会想到用它。会,就对了。
第 4 步:写正文
下面是一份完整的 SKILL.md,直接抄,再按你的口径改:
---
name: feasibility-check
description: 对一条 AI 需求做可行性体检:按七类失败模式列风险清单和不做清单,停下来让人逐条判真伪,再给换范围方案和对客户的三段话术。当用户拿到一条新需求、问"这个能不能做"、要写不做清单、要准备跟客户谈范围时使用。
metadata:
author: your-name
version: "0.1"
---
# 可行性体检
输入是一句需求原话。四步走,第 2 步必须停下来等人。
## 第 1 步:风险清单 + 不做清单
扮演做过很多 AI 交付的老手,不写方案,只做两件事:
1. 列出这条需求最可能做不成的 5-8 条风险。每条三列:风险是什么 / 属于哪一类 / 需要向客户确认的一个问题。七类见 references/seven-failure-modes.md。
2. 列不做清单:这一版明确不做的 3-5 件事,每件一句为什么。
规则:拿不准的写「待确认」;不许替客户编事实;不许给"加个 AI 就行"这类没有代价的建议。
产出后运行 `scripts/check_step1.py` 检查产物格式,把检查结果一起给用户看。
## 第 2 步:人工判真伪(停下来)
把第 1 步产物里下面三类东西列出来,然后停止,等用户逐条确认:
- 带数字但没有出处的(例:"行业经验值 30%-60%")
- 用"大概率 / 通常 / 常见 / 一般"替客户定的事实
- 客户没说过、AI 替客户补的背景
用户没有确认之前,不进入第 3 步。
## 第 3 步:换范围方案
用户指定第 N 条和第 M 条风险为真后:给 2-3 个换个做法的方案,每个写清:改成做什么 / 砍掉了什么 / 客户仍然拿到的核心价值一句话 / 需要客户拍板的一件事。不写技术方案。
## 第 4 步:三段话术
把用户选定的方案写成三段对客户说的话,每段 80-120 字:对老板(要结果和时间)/ 对 IT 负责人(怕出事、守着老系统)/ 对一线(怕被替代)。每段四要素:承认原需求合理之处一句 / "这样做我交不出你要的结果"的原因一句 / 换成什么我能交 / 请对方拍板的一件事。不出现"做不了""不可能",不承诺任何数字。
## 输出
按 assets/discovery-draft.md 的格式把四样产物写成一份文件,文件名带日期。
## 边界
- 需求原话少于 10 个字:先追问背景,不开工。
- 用户想跳过第 2 步:提醒一次风险,用户坚持则记录"未判真伪"后继续。
- 涉及医疗诊疗、金融投资建议:第 1 步的合规类风险必须列出准入或担责问题。
检查点:正文有没有超过 500 行;每一步有没有写清输入、动作、输出;停下来等人的那一步有没有写死。
第 5 步:把每次都一样的东西拆出去
正文里不该塞长表。两样东西拆出去:
references/seven-failure-modes.md:七类失败模式表(模式 / 怎么识别 / 先问哪一句),自己整理一份,每行一个模式。
assets/discovery-draft.md:产物模板,四个标题、表格骨架。
正文里只留一句「七类见 references/seven-failure-modes.md」。模型用到才读,平时不占上下文。
第 6 步:把脆弱的步骤写成脚本
哪一步最容易走样?第 1 步的产物格式。模型有时少一列、有时把类别写成自造的词。这种检查不该靠模型自觉,写成脚本:
#!/usr/bin/env python3
# scripts/check_step1.py 用法: python3 check_step1.py 产物.md
# 检查第 1 步产物:风险 5-8 条、每条有七类之一、每条有待确认问题;并把要人核的数字和断言点出来
import re, sys
text = open(sys.argv[1], encoding="utf-8").read()
kinds = ["数据", "指标", "干系人", "集成", "合规", "采纳", "阶段"]
problems = []
# 只看「风险清单」这一节(到「不做清单」为止),不同模型产物格式不同,标题式和表格式都认
sec = re.split(r"\n#+ .*不做清单", text)[0]
risks = re.findall(r"^### 风险\s*\d+.*$", sec, re.M) # 标题式:### 风险 1|标题 `类别`
if not risks:
risks = [l for l in sec.splitlines() if re.match(r"^\|\s*\d+\s*\|", l)] # 表格式:| 1 | 风险 | 类别 | 问题 |
if not 5 <= len(risks) <= 8:
problems.append(f"风险条数 {len(risks)},要求 5-8")
# 每条风险的正文 = 从这条标题到下一条标题
chunks = re.split(r"^### 风险\s*\d+", sec, flags=re.M)[1:] if risks and risks[0].startswith("###") else risks
for head, body in zip(risks, chunks):
if not any(k in head for k in kinds):
problems.append("类别不在七类内: " + head[:40])
if not any(q in body for q in ("?", "?", "确认")):
problems.append("没有待确认问题: " + head[:40])
# 要人核的:替客户编的断言词、带区间的数字(连字符 / 长横 / 波浪线都算)
for w in ["大概率", "通常", "常见", "一般"]:
n = text.count(w)
if n:
problems.append(f"出现「{w}」{n} 次,可能是替客户编的事实,第 2 步逐条核")
for m in re.finditer(r"\d+%?\s*[-–~]\s*\d+%", text):
problems.append("出现区间数字,核出处: " + m.group())
print("通过" if not problems else "\n".join("✗ " + p for p in problems))
sys.exit(0 if not problems else 1)
脚本的三条要求:自包含、报错说人话、边界情况不崩。模型运行它,只拿到「通过」或那几行「✗」,脚本代码本身不进上下文。
检查点:拿你第 1 步手写的那份风险清单跑一下脚本,它应该把里面的区间数(如「30%–60%」)和程度词(如「大概率」)都报出来。报不出来,脚本没写对。
顺带说一件真事:这个脚本第一版是按表格写的,对着预跑产物一跑,全报错。因为模型那次把风险写成了八个小标题,不是表;数字里的横线是长横「–」不是「-」。产物长什么样,要看真产物,不能凭想象写脚本。 上面这版已经两种格式都认,这就是第 9 步「测试」存在的理由。
第 7 步:手动触发、参数、副作用控制
在 Claude Code 里,skill 有两种触发方式:模型看描述自动用,或你输入 /feasibility-check 手动用。手动触发时可以带参数:
argument-hint: "[需求原话]"
/feasibility-check 会员数据攒了五年,让 AI 帮我们做精准营销,斜杠后面的话会一起交给模型。实测里正文没写 $ARGUMENTS,模型也把这句话当成了需求原话;如果你想把它固定放在正文某个位置(比如「需求原话:$ARGUMENTS」),再用 $ARGUMENTS 占位。
两个只在 Claude Code 生效的字段,做企业用的 skill 一定要知道:
| 字段 |
作用 |
什么时候用 |
disable-model-invocation: true |
只允许人手动触发,模型不能自己用 |
有副作用的:部署、提交代码、发消息 |
allowed-tools: Bash(git status *) Read |
预先批准这个 skill 可以用的工具,当轮有效 |
最小化,只批它真需要的 |
可行性体检没有副作用,两个都不用加。
第 8 步:校验
三条命令,依次跑:
# 1 按开放标准校验(不用安装,npx 直接跑;实测最严,先跑它)
npx --yes skills-ref validate .claude/skills/feasibility-check
# 2 Claude Code 自带校验(v2.1.233 起)
claude plugin validate .claude/skills
# 3 看 skill 有没有被加载(在 Claude Code 交互界面里输入;未实测)
/skills
实测里的一个坑,一定要记:把 name 故意改成 Feasibility-Check(大写),第 2 条 claude plugin validate 照样报「Validation passed」,它只检查 YAML 能不能解析;第 1 条 skills-ref 当场抓出两条:「name 必须小写」「目录名和 name 不一致」。所以命名规则靠 skills-ref 把关,别信第 2 条的绿。
第 9 步:测试,先改 description
准备 5 条测试需求:四条你见过的真实需求原话,加你自己项目那条。每条做三件事,记在一张表里:
| 需求 |
触发了吗 |
输出形状对吗 |
第 2 步停下来了吗 |
要改什么 |
| 老师傅经验问答 |
|
|
|
|
| 研报 AI 摘要 |
|
|
|
|
| 什么都能答的问答 |
|
|
|
|
| 医院导诊 |
|
|
|
|
| 我自己的项目 |
|
|
|
|
改的顺序:触发不了先改 description;形状不对再改正文;某一步老走样就把那步写成脚本。 一次只改一处,改完五条重跑。这张表就是你的回归测试集,以后每次改 skill 都重跑一遍。
不想在交互界面里一条条试,可以用命令行批量跑(每条约 1 到 2 分钟):
claude -p "客户是一家连锁药店,想做个 AI 客服替一线答会员问题。你帮我判断一下这个能不能接。" \
--output-format text --max-turns 12 --allowedTools "Read" "Bash(python3 *)" "Write" > run2.txt
这条没有带 /feasibility-check,是在测「模型凭描述会不会自己用它」。
第 10 步:版本与分享
metadata.version 从 "0.1" 开始,每次改动加一位,并在 SKILL.md 末尾留三行变更记录。
- 提交进项目仓库的
.claude/skills/,团队拉代码就有。
- 想跨项目、跨团队分发,打成插件。
四、企业级要多做的四件事
个人用到第三节就够。给团队、给客户用,再加四件:
1. 来源与审核。 skill 能指挥模型运行代码,一个恶意的 skill 就是一段能执行的攻击。只用自己写的和可信来源的;拿到外来的 skill,先读完所有文件再装,重点看有没有意外的网络访问、文件读写、和描述不符的操作。会联网取内容的 skill 风险最高,取回来的内容可能藏着指令。
2. 权限最小化。 有副作用的 skill 一律 disable-model-invocation: true;allowed-tools 只批必要的;不在 skill 里全局安装软件包。
3. 评估集。 第 9 步那张表就是雏形。企业级要求:每个 skill 有一份固定的测试集,改动前后都跑,记分。Claude Code 官方的 skill-creator 插件可以自动生成评估用例并出对比报告:
/plugin install skill-creator@claude-plugins-official
装完后对它说「evaluate my feasibility-check skill」。(本手册未实测这个插件,用法以官方文档为准。)
4. 分发与治理。 项目级放仓库;组织级通过企业 managed settings 统一下发;定期用 /skill-doctor 看每个 skill 的上下文开销和使用频率,没人用的下线。
五、常见错误清单
- description 只写「做什么」不写「什么时候用」,结果永远不触发。
- 文件夹名和 name 不一致。
- 正文塞进七八张长表,一触发就吃掉几千 token。
- 该停下来等人的步骤没写死,模型一路跑到底,把编的风险当真的往下用。
- 格式检查靠模型自觉,不写脚本,十次里有三次少一列。
- 一个 skill 干五件不相干的事,描述写不清,触发全靠运气。
- 没有测试集,改一处坏三处不知道。
- 有副作用的 skill 允许模型自动触发。
- 引用文件套三层,模型读到第二层就迷路。
- 把别人的 skill 直接装进带生产权限的环境。
六、实测记录(2026-09-09,Claude Code 2.1.259)
| 步 |
做了什么 |
结果 |
| 2 建目录 |
空目录 git init,建 .claude/skills/feasibility-check/{scripts,references,assets} |
四个文件:SKILL.md(第 4 步全文原样)/ check_step1.py / seven-failure-modes.md(课4 手册第七节)/ discovery-draft.md |
| 8 校验 |
npx --yes skills-ref validate |
Valid skill |
| 8 校验 |
claude plugin validate .claude/skills |
Validation passed |
| 8 反向 |
name 改成大写再跑两条 |
skills-ref 报两条错;claude plugin validate 仍 passed(见第 8 步) |
| 7 手动触发 |
claude -p "/feasibility-check 会员数据攒了五年…" |
第 1 步产出 8 条风险 + 5 条不做,自己跑了 check_step1.py 报「通过」,产物写成 可行性体检-会员精准营销-2026-09-09.md;在第 2 步停下,列出 4 条「替客户推断的事实」和 4 条「替客户补的背景」等人确认 |
| 9 自动触发 |
claude -p "客户是一家连锁药店,想做个 AI 客服…能不能接"(不带斜杠命令) |
模型凭描述自己用了 skill:8 条风险(第 1、2 条直接落在合规:用药咨询担责、购药记录是敏感个人信息)、脚本通过、停在第 2 步,并主动标注「处方药审核是执业药师法定职责这条是我凭记忆写的法律断言,建议核原文」 |
| 6 脚本 |
对第 1 步手写的风险清单跑 check_step1.py |
报「大概率 ×5」「通常 ×1」「常见 ×2」「30%–60%」「5%–10% ×2」,8 条风险格式全过 |
两次真跑里模型都在第 2 步停下来了,这是正文里那句「用户没有确认之前,不进入第 3 步」在起作用。没写死这句的版本我没测,别省。
七、资料清单(全部核实过,2026-09-09)
| 资料 |
用途 |
地址 |
| Agent Skills 开放标准 |
规范原文,字段定义以它为准 |
https://agentskills.io/specification |
| 标准仓库 |
规范、校验工具 skills-ref |
https://github.com/agentskills/agentskills |
| 官方概览 |
三层加载原理,各产品支持情况 |
https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview |
| 官方最佳实践 |
description 怎么写、正文怎么控、怎么测 |
https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices |
| 企业治理 |
组织级审核、分发、扫描 |
https://platform.claude.com/docs/en/agents-and-tools/agent-skills/enterprise |
| 开源样板 |
docx / pptx / xlsx / pdf 四个工业级 skill,学脚本和 references 怎么组织 |
https://github.com/anthropics/skills |
| Claude Code 里的 Skill |
放置路径、扩展字段、参数、调试命令 |
https://code.claude.com/docs/en/skills |
| 工程博客 |
设计动机与真实应用 |
https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills |