每个团队都有存在于人们脑海中的机构知识。只有 Sarah 知道的部署清单。存在于一个没人能找到的 Google Doc 中的数据分类体系。每个季度都会变化的事件响应程序。
RAG 系统试图通过将文档切分成小片段并检索最相关的片段来解决这个问题。这对于事实性查找有效——但当 AI 需要完整的、结构化的指令来正确执行任务时,它就失败了。
今天我们推出技能——一种为您的 AI agent 提供完整的、权威性文档的新方式,可以按需加载。
技能与 RAG:不同的工具解决不同的问题
| RAG(知识库) | 技能 | |
|---|---|---|
| 文档大小 | 切分为 500 token 的片段 | 完整加载(最大 50KB) |
| 检索方式 | 语义相似性搜索 | 按名称显式调用 |
| 最适合 | 跨多个文档的事实性问题 | 分步操作流程 |
| 调用方式 | 自动(上下文注入) | 按需(/skill:name) |
| 范围 | 账户或部门 | 账户或部门 |
将 RAG 想象成搜索引擎,将技能想象成书架。当您不知道去哪里找时就搜索。当您确切知道需要哪本书时就直接拿。
技能如何工作
创建技能
技能是一个带有名称、标题、部门范围和标签的 markdown 文档。从技能页面或通过 API 创建:
# 部署流水线
## 前提条件
- 确保所有测试在 `main` 分支上通过
- 检查暂存环境是否健康
## 步骤
1. 创建发布分支:`git checkout -b release/v{version}`
2. 运行构建:`npm run build`
3. 部署到暂存环境:`make deploy-staging`
4. 运行冒烟测试:`npm run e2e:smoke`
5. 如果冒烟测试通过,部署到生产环境:`make deploy-prod`
6. 标记发布:`git tag v{version}`
## 回滚
如果生产部署后出现任何问题:
1. 恢复到之前的版本:`make rollback`
2. 在 Slack 的 #engineering 频道通知
3. 创建事件报告
在对话中使用技能
在聊天中按名称调用技能:
您:/skill:deployment-pipeline 将版本 2.4.1 部署到生产环境
Agent 将完整的部署流水线文档加载到其上下文中,并逐步执行。它不会猜测或即兴发挥——它拥有完整的、权威性的指令。
Agent 主动发现技能
对话式 agent 还有两个内置工具用于主动使用技能:
list_skills—— 发现当前部门可用的技能load_skill—— 当 agent 判断需要专业知识时,按名称加载技能
这意味着您可以说”部署最新版本”,agent 将会:
- 识别这是一个部署任务
- 调用
list_skills检查可用的技能 - 找到并加载
deployment-pipeline - 按照文档化的流程执行
部门范围限定
技能按部门限定范围,与配方和工作流一样。工程团队的部署手册不会干扰营销团队的技能列表。管理员可以创建对所有部门可见的全账户范围技能。
实际使用场景
工程:
- 各环境的部署流程
- 事件响应运行手册
- 代码审查清单
- 架构决策记录
运营:
- 标准操作程序
- 供应商入职清单
- 会议主持指南
销售:
- 发现性通话框架
- 异议处理手册
- 竞争定位指南
合规:
- 审计准备清单
- 数据分类程序
- 监管报告工作流
限制和缓存
技能是注入对话上下文的完整文档,因此我们实施了合理的限制:
- 每个技能最大 50KB(约 12,000 个 token)
- 每个账户 100 个技能,每个部门 50 个
- 一个对话轮次中同时加载 3 个技能
- 技能名称在 Redis 中缓存(5 分钟 TTL),以避免每条消息都进行 Firestore 读取
如果加载技能会使对话超过模型的上下文限制,agent 会警告您并建议开始新对话或使用具有更大上下文窗口的模型。
开始使用
- 导航到侧边栏中的技能
- 点击创建技能
- 编写您的 markdown 内容
- 设置部门范围和标签
- 在任何对话中使用
/skill:name
技能在 Pro 计划及以上可用。创建您的第一个技能。