一句话描述:基于范畴论的 AI 技能组合引擎,让 AI 理解"技能之间如何协作"而非仅仅"调用什么技能"。
解决的核心问题:
| 当前痛点 | CatSkill 方案 |
|---|---|
| 技能组合靠硬编码 | 自动发现可行路径 |
| 接口不匹配运行时才发现 | 编译期类型检查 |
| 只能前向执行 | 支持反向推理 |
| 多约束手动处理 | 自动求解最优方案 |
| 新领域需要重新开发 | 声明式 Schema 接入 |
| 用户类型 | 需求 |
|---|---|
| Agent 框架开发者 | 更智能的技能编排能力 |
| 技能/工具提供者 | 技能间的自动协作 |
| AI 应用开发者 | 减少手动编排,提升可靠性 |
Skill 是什么:任何可被 AI 调用的能力单元,包括但不限于:
- MCP 工具(MCP Server 提供的 Tool)
- OpenAI Function Calling 的函数
- LangChain 的 Tool
- 自定义的 API 调用
- 本地函数
CatSkill 的定位:不替代这些技能来源,而是作为上层编排引擎,让这些技能能够智能协作。
┌─────────────────────────────────────────┐
│ CatSkill 编排引擎 │ ← 我们做的
│ (路径发现、类型检查、约束求解、推理) │
└─────────────────────────────────────────┘
↓ 调度
┌─────────┬─────────┬─────────┬───────────┐
│MCP Tool │ OpenAI │LangChain│ 自定义 │ ← 技能来源
│ │Function │ Tool │ API │
└─────────┴─────────┴─────────┴───────────┘
| 形态 | 是什么 | 给谁用 | 优先级 |
|---|---|---|---|
| SDK | 可嵌入的代码库,集成到现有框架中 | Agent 框架开发者 | P0 |
| CLI 工具 | 命令行工具,用于调试和验证 | 所有开发者 | P0 |
| 独立服务 | 独立运行的推理服务,通过 API 调用 | 需要解耦部署的团队 | P1 |
| 可视化工具 | 图形界面,展示技能关系和调试信息 | 所有开发者 | P2 |
SDK + CLI:
- SDK:嵌入到 Agent 框架,提供编排能力
- CLI:开发时验证技能配置、调试路径搜索
一个技能包含:
| 要素 | 说明 | 示例 |
|---|---|---|
| 输入类型 | 技能需要什么 | Location(地点) |
| 输出类型 | 技能产出什么 | WeatherInfo(天气信息) |
| 语义标签 | 技能做什么 | 查询、转换、约束、推理 |
| 关系声明 | 与其他技能的关系 | 影响、依赖、冲突、等价 |
| 来源 | 如何接入 |
|---|---|
| MCP Tool | 自动解析 MCP Schema,转换为技能描述 |
| Function Calling | 自动解析 OpenAI 函数定义 |
| 自定义 | 手动声明或通过 YAML 配置 |
核心思想:技能来源是多样的,CatSkill 提供统一的编排层。
用户价值:不用手动编排,框架自动找到从 A 到 B 的所有可行技能组合
功能要点:
- 注册技能时声明输入/输出类型
- 声明技能间的关系(影响、依赖、冲突)
- 自动搜索可行路径
用户价值:组合错误在开发时发现,而非用户使用时
功能要点:
- 组合时自动检查类型兼容性
- 类型不匹配时给出修复建议
- 推荐合适的适配器
用户价值:同时满足多个条件(预算、时间、偏好等),自动找最优解
功能要点:
- 定义硬约束(必须满足)和软约束(尽量满足)
- 自动求解满足所有约束的方案
- 约束冲突时给出说明
用户价值:支持"要达到X结果,需要什么输入"的反向查询
功能要点:
- 声明技能的双向关系
- 支持从结果反推输入条件
- 返回推理置信度
用户价值:确保重构、优化不破坏系统行为
功能要点:
- 定义"这两条路径应该等价"
- 自动验证是否满足
- 不一致时报告具体差异
用户价值:信息不全时也能给出合理推断
功能要点:
- 从已知部分推断未知部分
- 标注推断的置信度
- 支持最小/最大两种补全策略
用户价值:新领域接入无需改代码,只需写配置
功能要点:
- YAML/JSON 格式定义领域
- 声明对象、技能、关系
- 注册后自动获得所有框架能力
| 类别 | 要求 |
|---|---|
| 性能 | 1000 技能规模下路径搜索 < 100ms |
| 兼容性 | 可接入 MCP Tool、OpenAI Function、LangChain Tool 等主流技能来源 |
| 可扩展 | 支持 10000+ 技能 |
| 易用性 | 完整 API 文档和示例 |
| 阶段 | 内容 | 周期 |
|---|---|---|
| M1 | 核心引擎:技能注册、复合、路径搜索 | |
| M2 | 高阶能力:约束求解、双向推理 | |
| M3 | 验证能力:一致性检查、信息补全 | |
| M4 | 技能来源适配器(MCP/Function Calling/自定义) | |
| M5 | 工具链:CLI、可视化 | |
| M6 | 文档与示例 |
总计约 20 周
| 指标 | 当前 | 目标 |
|---|---|---|
| 技能组合方式 | 手动编排 | 80% 自动发现 |
| 错误发现时机 | 运行时 | 100% 编译期 |
| 新领域接入 | 2 周开发 | 1 天配置 |
| 反向推理 | 不支持 | 核心场景支持 |
| 问题 | 方向 |
|---|---|
| 如何自动发现技能间的隐含关系? | 范畴学习 |
| 大规模技能图的高效求解? | 分布式算法 |
| 如何从自然语言生成领域 Schema? | LLM + 范畴论 |
| 跨领域的技能复用? | 迁移学习 |
| 概念 | 含义 | 对应功能 |
|---|---|---|
| 对象 | 数据类型 | 技能的输入/输出类型 |
| 态射 | 技能/转换 | 从 A 类型到 B 类型的操作 |
| 复合 | 技能串联 | A→B + B→C = A→C |
| 极限 | 多约束求解 | 同时满足所有条件的最优解 |
| 伴随 | 双向转换 | 正向执行 + 反向推理 |
| 自然变换 | 保结构替换 | 版本迁移、重构 |