# 第十六章:扩展性设计
> 🔧 本章介绍 MiniClaw 的扩展机制,包括技能、工具和提示词的扩展方式。
---
## 16.1 技能扩展
### 16.1.1 新技能创建流程
```
┌─────────────────────────────────────────────────────────────────────┐
│ 技能创建流程 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 步骤 1:创建技能目录 │
│ $ mkdir -p ~/.miniclaw/skills/my-skill │
│ │
│ 步骤 2:创建 SKILL.md 文件 │
│ --- │
│ name: my-skill │
│ description: "我的自定义技能" │
│ prompts: │
│ - name: help │
│ description: "显示帮助信息" │
│ tools: │
│ - name: do_something │
│ description: "执行某个操作" │
│ --- │
│ │
│ # My Skill │
│ 这是一个自定义技能的详细说明... │
│ │
│ 步骤 3:验证技能加载 │
│ # 重启 MCP 客户端或等待缓存过期 │
│ # 使用 miniclaw_status 检查技能是否加载 │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
### 16.1.2 技能元数据定义
```yaml
---
name: git-helper
description: "Git 操作辅助技能"
version: "1.0.0"
author: "user"
tags: [git, workflow, version-control]
prompts:
- name: commit_guide
description: "提交信息编写指南"
- name: branch_strategy
description: "分支策略建议"
tools:
- name: analyze_diff
description: "分析代码差异"
resources:
- uri: git-helper://conventions
name: "Git 规范"
description: "团队 Git 使用规范"
---
# Git Helper Skill
提供Git操作的辅助功能...
```
---
## 16.2 工具扩展
### 16.2.1 自定义工具开发
```typescript
// 在 index.ts 中添加自定义工具
server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [
// ... 现有工具
{
name: "my_custom_tool",
description: "我的自定义工具",
inputSchema: {
type: "object",
properties: {
param1: { type: "string" },
param2: { type: "number" },
},
required: ["param1"],
},
},
],
};
});
// 处理工具调用
server.setRequestHandler(CallToolRequestSchema, async (request) => {
const { name, arguments: args } = request.params;
switch (name) {
// ... 现有工具处理
case "my_custom_tool":
return await handleMyCustomTool(args);
}
});
```
---
## 16.3 提示词扩展
### 16.3.1 自定义提示词
```yaml
---
name: my-skill
description: "自定义技能"
prompts:
- name: code_review
description: "代码审查模板"
- name: doc_generate
description: "文档生成模板"
---
# 提示词文件:prompts/code_review.md
## 代码审查检查清单
- [ ] 代码风格是否符合规范
- [ ] 是否有足够的注释
- [ ] 是否存在潜在的性能问题
- [ ] 是否有安全风险
- [ ] 测试是否充分
## 审查输出格式
1. **总体评价**:代码质量概述
2. **具体问题**:逐行评论
3. **改进建议**:可执行的建议
4. **评分**:1-5 星
```
---
## 本章小结
```
┌─────────────────────────────────────────────────────────────────────┐
│ 第十六章 核心要点 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 🔧 技能扩展 │
│ • 创建技能目录 │
│ • 编写 SKILL.md │
│ • 定义 prompts/tools/resources │
│ │
│ 🛠️ 工具扩展 │
│ • 自定义工具开发 │
│ • inputSchema 定义 │
│ • 工具处理函数 │
│ │
│ 📝 提示词扩展 │
│ • prompts/ 目录 │
│ • Markdown 模板 │
│ • 参数化内容 │
│ │
│ 🔄 扩展原则 │
│ • 松耦合 │
│ • 可插拔 │
│ • 热更新 │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
*本文档是《MiniClaw 深度解析》系列的第十六章,下一章将详细介绍与 OpenClaw 的关系。*
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!