技能系统
PicoAide 技能开发与管理
技能(Skills)是 PicoAide 扩展 AI 能力的核心机制。通过技能系统,管理员可以为不同用户组部署定制化的工具和能力。
什么是技能
技能是对内部网站和工具的 CLI 包装,让 PicoClaw AI 能够调用企业内部的 Web 服务。每个技能本质上是一个目录,包含可被 AI 代理调用的工具文件。
技能可以包括:
- 内部系统接口:如 OA 系统、CRM、ERP 的 API 封装
- 数据处理工具:如报表生成、数据查询
- 自动化脚本:如批量操作、定时任务触发
- 文档检索:如知识库查询、内部 Wiki 搜索
技能目录结构
每个技能是一个独立目录,存放在 skills/ 下:
skills/
├── skill-a/
│ ├── manifest.json # 技能元数据
│ ├── tools/
│ │ ├── query.sh # 工具脚本
│ │ └── report.py # 工具脚本
│ └── config/
│ └── defaults.json # 默认配置
├── skill-b/
│ ├── manifest.json
│ └── ...
技能开发流程
1. 创建技能仓库
管理员在 Git 仓库中管理技能代码:
# 技能仓库结构示例
my-skills-repo/
├── internal-tools/
│ ├── manifest.json
│ └── tools/
│ └── search.sh
├── report-generator/
│ ├── manifest.json
│ └── tools/
│ └── generate.py
└── README.md
2. 添加技能仓库
通过 API 或管理后台添加 Git 仓库:
# 添加技能仓库
curl -X POST http://localhost/api/admin/skills/repos/add \
-H "Content-Type: application/json" \
-b "picoaide-session=your-session-cookie" \
-d '{"name": "company-skills", "url": "https://git.example.com/skills/company-skills.git"}'
3. 拉取技能
从 Git 仓库拉取最新技能到本地:
# 拉取指定仓库的技能
curl -X POST http://localhost/api/admin/skills/repos/pull \
-H "Content-Type: application/json" \
-b "picoaide-session=your-session-cookie" \
-d '{"name": "company-skills"}'
4. 测试环境验证
在部署到生产环境之前,先在测试用户容器中验证技能:
# 部署技能到单个测试用户
curl -X POST http://localhost/api/admin/skills/deploy \
-H "Content-Type: application/json" \
-b "picoaide-session=your-session-cookie" \
-d '{"skill_name": "internal-tools", "username": "test-user"}'
5. 部署到生产环境
验证通过后,通过组部署将技能批量部署给目标用户:
# 部署技能到整个组
curl -X POST http://localhost/api/admin/skills/deploy \
-H "Content-Type: application/json" \
-b "picoaide-session=your-session-cookie" \
-d '{"skill_name": "internal-tools", "group_name": "engineering"}'
Git 仓库管理
查看仓库列表
curl http://localhost/api/admin/skills/repos/list \
-b "picoaide-session=your-session-cookie"
删除仓库
curl -X POST http://localhost/api/admin/skills/repos/remove \
-H "Content-Type: application/json" \
-b "picoaide-session=your-session-cookie" \
-d '{"name": "old-skills"}'
基于组的部署
PicoAide 支持基于用户组的技能绑定,实现差异化能力分配:
绑定技能到组
curl -X POST http://localhost/api/admin/groups/skills/bind \
-H "Content-Type: application/json" \
-b "picoaide-session=your-session-cookie" \
-d '{"group_name": "finance", "skill_name": "financial-report"}'
解绑技能
curl -X POST http://localhost/api/admin/groups/skills/unbind \
-H "Content-Type: application/json" \
-b "picoaide-session=your-session-cookie" \
-d '{"group_name": "finance", "skill_name": "financial-report"}'
组层级
组支持父子层级关系,部署到父组时递归包含所有子组的成员。这使得技能管理可以按照组织架构进行:
公司
├── 技术部
│ ├── 前端组
│ └── 后端组
└── 财务部
├── 会计组
└── 审计组
部署技能到「技术部」组时,前端组和后端组的成员都会获得该技能。
技能生命周期
开发 → Git 提交 → 添加仓库 → 拉取技能 → 测试验证 → 绑定组 → 部署 → 更新迭代
每次技能更新后,重新拉取并部署即可将新版本推送到用户容器。