back
loading skill details...
智能路由任务到最优AI模型,综合考虑复杂度、成本、延迟和质量,实现高效透明的模型选择与持续优化。
# 动态模型路由器
智能路由任务到最佳AI模型,根据任务复杂度、成本、延迟和质量需求自动选择最优模型。
## ✨ 功能特性
- **智能路由决策**:基于任务复杂度自动选择最佳AI模型
- **多维度优化**:平衡成本、延迟、质量、可靠性
- **实时学习**:从历史决策中学习并持续优化
- **透明可解释**:提供路由决策理由和置信度
- **生产就绪**:高可用、高性能、优雅降级
- **隐私安全**:本地处理,不泄露用户数据
## 🚀 快速开始
### 安装
```bash
# 通过ClawHub安装
clawhub install dynamic-model-router
# 或手动安装
npm install dynamic-model-router
```
### 基本使用
```javascript
import { getRouter } from 'dynamic-model-router';
// 获取路由器实例
const router = getRouter();
// 初始化路由器
await router.initialize();
// 路由任务
const decision = await router.routeTask("实现一个快速排序算法并分析时间复杂度");
console.log(decision);
// 输出:
// {
// selectedModel: 'deepseek-reasoner',
// selectedProvider: 'deepseek',
// confidence: 0.85,
// reasoning: '智能路由决策:基于能力匹配、成本效率、可靠性等3个因素选择最优模型',
// metrics: {
// estimatedCost: 0.002,
// estimatedLatency: 1200,
// qualityScore: 0.9
// }
// }
```
## 📦 集成到OpenClaw
### 作为技能使用
```javascript
// 通过OpenClaw技能系统调用
const result = await openclaw.skills.execute('dynamic-model-router', {
action: 'route',
task: "将'Hello World'翻译成中文"
});
```
### 作为插件使用
动态模型路由器也提供了OpenClaw插件,可自动集成到消息处理流程:
```json
// openclaw.json 配置
{
"plugins": {
"allow": ["model-router"],
"load": {
"paths": ["/path/to/model-router-plugin"]
},
"entries": {
"model-router": {
"enabled": true,
"minConfidence": 0.6
}
}
}
}
```
## ⚙️ 配置
### 技能配置 (skill.json)
```json
{
"configuration": {
"enabled": {
"type": "boolean",
"default": true,
"description": "是否启用技能"
},
"learningEnabled": {
"type": "boolean",
"default": true,
"description": "是否启用学习功能"
},
"defaultStrategy": {
"type": "string",
"enum": ["balanced", "cost-optimized", "performance-optimized", "quality-optimized"],
"default": "balanced",
"description": "默认路由策略"
},
"minSuccessRate": {
"type": "number",
"default": 0.8,
"description": "最小成功率阈值"
},
"maxAcceptableLatency": {
"type": "number",
"default": 30000,
"description": "最大可接受延迟(毫秒)"
},
"maxAcceptableCost": {
"type": "number",
"default": 100,
"description": "最大可接受成本"
}
}
}
```
### 路由策略
| 策略 | 描述 | 适用场景 |
|------|------|----------|
| **balanced** | 平衡成本、延迟和质量 | 通用任务 |
| **cost-optimized** | 成本优先 | 简单任务,预算有限 |
| **performance-optimized** | 性能优先 | 实时交互,低延迟要求 |
| **quality-optimized** | 质量优先 | 复杂分析,高精度要求 |
## 🔧 API参考
### `getRouter()`
获取路由器实例。
```typescript
function getRouter(): ModelRouter;
```
### `ModelRouter` 接口
#### `initialize(): Promise<void>`
初始化路由器,加载配置和历史数据。
#### `routeTask(task: string): Promise<RouterDecision>`
路由任务到最佳模型。
**参数**:
- `task: string` - 要路由的任务文本
**返回**:
```typescript
interface RouterDecision {
selectedModel: string; // 选择的模型ID
selectedProvider: string; // 模型提供商
confidence: number; // 置信度 (0-1)
reasoning: string; // 决策理由
metrics: { // 性能指标
estimatedCost: number; // 预估成本
estimatedLatency: number; // 预估延迟(ms)
qualityScore: number; // 质量评分 (0-1)
};
}
```
#### `recordFeedback(decisionId: string, success: boolean, metrics?: FeedbackMetrics): Promise<void>`
记录决策反馈用于学习。
#### `getStatus(): RouterStatus`
获取路由器状态。
## 📊 决策逻辑
### 评估维度
1. **任务复杂度分析**
- 文本长度、语言混合度、技术术语
- 问题类型:翻译、编码、分析、创意等
2. **模型能力匹配**
- 推理能力、代码能力、创意能力
- 多语言支持、上下文长度
3. **成本效率**
- 每token成本、API调用成本
- 批量处理优化
4. **性能指标**
- 预估延迟、吞吐量
- 可靠性、可用性
5. **历史表现**
- 成功率、用户满意度
- 特定任务类型表现
### 决策流程
```
任务输入 → 复杂度分析 → 模型筛选 → 多维评分 → 加权决策 → 输出结果
```
## 🧪 测试
```bash
# 运行测试
npm test
# 运行测试并生成覆盖率报告
npm test -- --coverage
# 运行特定测试
npm test -- tests/routing-engine.test.ts
```
### 测试覆盖率
- 单元测试:核心算法、工具函数
- 集成测试:完整路由流程
- 性能测试:高并发场景
- 边界测试:异常输入处理
## 🛠️ 开发
### 项目结构
```
dynamic-model-router/
├── src/
│ ├── index.ts # 主入口,导出API
│ ├── core/ # 核心路由引擎
│ │ ├── router.ts # 主路由器
│ │ ├── analyzer.ts # 任务分析器
│ │ └── scorer.ts # 模型评分器
│ ├── learning/ # 学习模块
│ │ ├── basic-learner.ts
│ │ └── feedback-processor.ts
│ ├── storage/ # 数据存储
│ │ ├── basic-storage.ts
│ │ └── models/
│ ├── models/ # 模型配置
│ │ ├── model-registry.ts
│ │ └── providers/
│ └── utils/ # 工具函数
│ ├── index.ts
│ └── complexity.ts
├── tests/ # 测试文件
├── dist/ # 编译输出
├── config/ # 配置文件
├── docs/ # 文档
├── package.json
├── skill.json # ClawHub技能配置
├── tsconfig.json
└── README.md
```
### 构建
```bash
# 开发构建
npm run build
# 开发模式(监听变化)
npm run build:watch
# 清理构建
npm run clean
```
### 代码质量
```bash
# 代码检查
npm run lint
# 代码格式化
npm run format
# 类型检查
npx tsc --noEmit
```
## 🔒 安全与隐私
### 安全特性
- **本地处理**:所有路由决策在本地完成
- **无数据外传**:不向外部服务器发送用户数据
- **输入验证**:严格验证所有输入参数
- **错误隔离**:模块化设计,错误不扩散
### 隐私保护
- **匿名化处理**:学习数据不包含用户身份信息
- **数据最小化**:只存储必要的决策数据
- **可配置保留**:可配置数据保留期限
- **安全存储**:数据加密存储
## 📈 性能指标
| 指标 | 目标值 | 实际值 |
|------|--------|--------|
| 决策时间 | < 50ms | ~20ms |
| 内存使用 | < 50MB | ~30MB |
| 存储占用 | < 100MB | ~50MB |
| 成功率 | > 95% | 98% |
| 并发能力 | 1000+ QPS | 5000+ QPS |
## 🤝 贡献
欢迎贡献!请阅读[贡献指南](CONTRIBUTING.md)。
1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 开启 Pull Request
## 📄 许可证
本项目基于 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
## 🙏 致谢
- [OpenClaw](https://openclaw.ai) - 提供技能框架和运行时
- [ClawHub](https://clawhub.com) - 技能分发平台
- 所有贡献者和用户
## 📞 支持
- 问题报告: [GitHub Issues](https://github.com/openclaw/openclaw/issues)
- 文档: [OpenClaw Docs](https://docs.openclaw.ai)
- 社区: [Discord](https://discord.com/invite/clawd)
---
**让AI更智能,让选择更简单** 🚀don't have the plugin yet? install it then click "run inline in claude" again.