Skip to content

Latest commit

 

History

History
232 lines (162 loc) · 6.84 KB

File metadata and controls

232 lines (162 loc) · 6.84 KB

CatSkill 产品需求文档

一、产品定位

一句话描述:基于范畴论的 AI 技能组合引擎,让 AI 理解"技能之间如何协作"而非仅仅"调用什么技能"。

解决的核心问题

当前痛点 CatSkill 方案
技能组合靠硬编码 自动发现可行路径
接口不匹配运行时才发现 编译期类型检查
只能前向执行 支持反向推理
多约束手动处理 自动求解最优方案
新领域需要重新开发 声明式 Schema 接入

二、目标用户

用户类型 需求
Agent 框架开发者 更智能的技能编排能力
技能/工具提供者 技能间的自动协作
AI 应用开发者 减少手动编排,提升可靠性

三、产品形态

核心概念:Skill(技能)

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

MVP 形态

SDK + CLI

  • SDK:嵌入到 Agent 框架,提供编排能力
  • CLI:开发时验证技能配置、调试路径搜索

四、技能模型

什么是一个技能

一个技能包含:

要素 说明 示例
输入类型 技能需要什么 Location(地点)
输出类型 技能产出什么 WeatherInfo(天气信息)
语义标签 技能做什么 查询、转换、约束、推理
关系声明 与其他技能的关系 影响、依赖、冲突、等价

技能来源适配

来源 如何接入
MCP Tool 自动解析 MCP Schema,转换为技能描述
Function Calling 自动解析 OpenAI 函数定义
自定义 手动声明或通过 YAML 配置

核心思想:技能来源是多样的,CatSkill 提供统一的编排层。


五、核心功能

F1:技能注册与路径发现

用户价值:不用手动编排,框架自动找到从 A 到 B 的所有可行技能组合

功能要点

  • 注册技能时声明输入/输出类型
  • 声明技能间的关系(影响、依赖、冲突)
  • 自动搜索可行路径

F2:类型检查与适配建议

用户价值:组合错误在开发时发现,而非用户使用时

功能要点

  • 组合时自动检查类型兼容性
  • 类型不匹配时给出修复建议
  • 推荐合适的适配器

F3:多约束求解

用户价值:同时满足多个条件(预算、时间、偏好等),自动找最优解

功能要点

  • 定义硬约束(必须满足)和软约束(尽量满足)
  • 自动求解满足所有约束的方案
  • 约束冲突时给出说明

F4:双向推理

用户价值:支持"要达到X结果,需要什么输入"的反向查询

功能要点

  • 声明技能的双向关系
  • 支持从结果反推输入条件
  • 返回推理置信度

F5:一致性验证

用户价值:确保重构、优化不破坏系统行为

功能要点

  • 定义"这两条路径应该等价"
  • 自动验证是否满足
  • 不一致时报告具体差异

F6:不完整信息推理

用户价值:信息不全时也能给出合理推断

功能要点

  • 从已知部分推断未知部分
  • 标注推断的置信度
  • 支持最小/最大两种补全策略

F7:领域 Schema 注册

用户价值:新领域接入无需改代码,只需写配置

功能要点

  • 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
极限 多约束求解 同时满足所有条件的最优解
伴随 双向转换 正向执行 + 反向推理
自然变换 保结构替换 版本迁移、重构