Files
proxycast/docs/prd/skills-platform-mvp.md
T
coso 2166fe2841 feat: v0.24.0 - 重构应用布局,添加启动画面和全局图标侧边栏
主要更新:
- 添加启动画面 (SplashScreen) 显示 Logo
- 添加全局图标侧边栏 (AppSidebar) 类似 cherry-studio
- 更新窗口默认尺寸为 1280x800,最小尺寸 960x600
- 更新应用图标为新 Logo
- 重构 Agent 页面布局,简化组件结构
- 修复技能安装/卸载功能
- 修复 Claude 图片识别问题
- Skills 自动注入到 Agent System Prompt
2025-12-31 13:22:19 +08:00

58 KiB
Raw Blame History

ProxyCast Skills Platform MVP

产品需求文档 (PRD) 版本: 1.2.0 日期: 2025-12-31 状态: 草案


目录

  1. 概述
  2. 产品定位
  3. 核心功能
  4. 技术方案
  5. MVP 范围
  6. UI 设计
  7. 里程碑
  8. 成功指标
  9. 风险与缓解
  10. 附录

1. 概述

1.1 背景

市场现状

AI Agent 和 Skills 生态正在快速发展:

  • Claude Code 等 AI 编码工具普及,催生了大量的 Skills 开发者
  • Agent Skills 已成为开放标准(agentskills.io),由 AAIF 基金会维护
  • 市场上出现了大量付费 Skills 的卖家

核心痛点

┌─────────────────────────────────────────────────────────────┐
│                      当前市场断层                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Skills 供应商                    普通用户                   │
│  ┌─────────┐                    ┌─────────┐                │
│  │ 写 Skills│  ───── 卖 ────►   │ 买了但  │                │
│  │ 很专业   │                    │ 不会用  │                │
│  └─────────┘                    └─────────┘                │
│                                     │                       │
│                                     ▼                       │
│                               😵 命令行太难                  │
│                               😵 不知道怎么安装              │
│                               😵 看不到效果                  │
│                               😵 不知道花了多少钱            │
│                                                             │
└─────────────────────────────────────────────────────────────┘
  1. 普通用户无法使用 - 需要命令行操作,门槛太高
  2. 效果不可见 - Skills 执行是黑盒,不知道在干什么
  3. 成本不透明 - 不知道 Token 花在哪里,花了多少
  4. 体验割裂 - Token 和 Skills 分开购买、分开配置

ProxyCast 的机会

ProxyCast 已有的能力恰好可以解决这些痛点:

现有能力 解决的痛点
GUI 界面 不需要命令行
Flow Monitor 看到 Skills 在干什么
Credential Pool 统一管理 Token
插件系统 承载和分发 Skills
Goose 集成 Agent 执行引擎(Rust 原生)

1.2 愿景

ProxyCast 从 AI Proxy 工具升级为 AI 应用平台

成为 Skills 与 Token 供应商 之间的桥梁:

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  Token 供应商   │     │  Skills 供应商  │     │     用户        │
│                 │     │                 │     │                 │
│  - OpenAI       │     │  - 开发者       │     │  - 普通用户     │
│  - Anthropic    │     │  - 专家         │     │  - 企业         │
│  - 中转平台     │     │  - 工作室       │     │  - 开发者       │
└────────┬────────┘     └────────┬────────┘     └────────┬────────┘
         │                       │                       │
         └───────────────────────┼───────────────────────┘
                                 │
                                 ▼
                    ┌─────────────────────────┐
                    │      ProxyCast          │
                    │                         │
                    │   Token + Skills 桥梁   │
                    └─────────────────────────┘

1.3 目标用户

用户类型 描述 核心需求
普通用户 想用 AI 工具但不会命令行 一键安装、可视化操作
Skills 开发者 想分发 Skills 给更多用户 发布渠道、用户触达
Token 供应商 想有更多应用场景 流量入口、使用场景
企业用户 想统一管理 AI 资产 成本控制、权限管理

1.4 核心价值主张

  1. 零门槛使用 - 不需要命令行,纯 GUI 操作
  2. 完全透明 - 流量可见、成本可控
  3. 开放标准 - 兼容 Agent Skills 规范
  4. 模型无关 - 支持 Claude、GPT、Gemini 等多模型

2. 产品定位

2.1 与 Agent Skills 标准的关系

ProxyCast Skills Platform 完全兼容 Agent Skills 开放标准:

┌─────────────────────────────────────────────────────────────────┐
│                   Agent Skills 开放标准                         │
│                                                                 │
│  维护者: Anthropic (开放给社区贡献)                              │
│  性质: 开放格式,任何 Agent 平台都可以实现                       │
│  规范: github.com/agentskills/agentskills                       │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
                              │
                              │ 兼容
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                   ProxyCast Skills Platform                     │
│                                                                 │
│  定位: Agent Skills 的 GUI 运行环境                             │
│  差异化: 可视化 + 流量监控 + Token 管理                         │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

2.2 Skills 目录结构(遵循标准)

my-skill/
├── SKILL.md          # 必需:指令 + 元数据
├── scripts/          # 可选:可执行脚本
├── references/       # 可选:参考文档
└── assets/           # 可选:模板、资源文件

2.3 SKILL.md 格式(遵循标准)

---
name: code-review
description: 智能代码审查,发现潜在问题和优化建议
license: MIT
metadata:
  author: ProxyCast Team
  version: "1.0.0"
  category: development
  tags: [code, review, quality]
---

# 代码审查 Skill

## 使用场景
当用户需要审查代码质量、发现潜在 bug 或获取优化建议时使用此 Skill。

## 审查流程
1. 分析代码结构和逻辑
2. 检查常见问题模式
3. 识别安全隐患
4. 提供优化建议

## 输出格式
- 问题列表(按严重程度排序)
- 具体行号和代码片段
- 修复建议

2.4 设计原则:标准兼容 vs 实现自主

核心原则:兼容标准格式,但实现方式可以自主选择。

ProxyCast 不是 Claude Code 的复制品,而是一个独立的 Skills + Token 桥梁平台。

2.4.1 必须兼容(Agent Skills 标准)

这些是开放标准定义的内容,ProxyCast 必须支持:

标准内容 说明
SKILL.md 格式 YAML frontmatter + Markdown body
目录结构 scripts/, references/, assets/
元数据规范 name, description, license, metadata.*
仓库兼容 支持 anthropics/skills 等标准仓库

2.4.2 实现自主(不必照搬 Claude Code)

这些是 Claude Code 的具体实现,ProxyCast 可以有自己的方式:

Claude Code 实现 ProxyCast 可以 原因
Shell Hooks 不需要 GUI 应用,不依赖命令行
MCP Servers 可选集成 有自己的 Goose 运行时
Progressive Disclosure 启动时预加载 GUI 可以提前展示
/skill 命令 自然语言触发 Agent 自动匹配 Skill
CLI 安装 一键安装 UI 更友好的用户体验

2.4.3 ProxyCast 特有实现

┌─────────────────────────────────────────────────────────────────┐
│                   ProxyCast Skills 实现方式                      │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  启动时:                                                        │
│  ├─ 预加载所有已安装 Skills 的 name + description               │
│  ├─ 生成 <available_skills> XML                                │
│  └─ 注入到 Goose Agent System Prompt                          │
│                                                                 │
│  会话中:                                                        │
│  ├─ 用户用自然语言描述任务                                      │
│  ├─ Agent 根据 description 匹配合适的 Skill                    │
│  └─ Agent 按需读取 SKILL.md 完整内容                           │
│                                                                 │
│  特点:                                                          │
│  ├─ 被动式 - 用户不需要主动"选择"或"启用"                       │
│  ├─ 无感知 - Agent 自动判断是否使用 Skill                      │
│  └─ 透明 - Flow Monitor 显示 Skill 使用情况                    │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

2.5 差异化价值

标准提供的 ProxyCast 额外提供的
文件格式规范 GUI 可视化界面
目录结构约定 流量实时监控
参考实现库 Token 消耗统计
CLI 工具 多模型支持
Skills 商店
一键安装
成本分析报表

3. 核心功能

3.1 Skills 生态架构(双轨模式)

ProxyCast 采用双轨 Skills 生态:保留现有 Claude Code Skills 支持,同时建立 ProxyCast 官方仓库。

┌─────────────────────────────────────────────────────────────────┐
│                    ProxyCast Skills 生态                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Skills 来源(多仓库支持):                                      │
│  ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐   │
│  │ ProxyCast 官方  │ │ Anthropic 官方  │ │ 社区仓库        │   │
│  │ proxycast/skills│ │ anthropics/skills│ │ ComposioHQ/...  │   │
│  │ (新增,主推)    │ │ (保留,兼容)    │ │ (保留,兼容)    │   │
│  └────────┬────────┘ └────────┬────────┘ └────────┬────────┘   │
│           │                   │                   │             │
│           └───────────────────┴───────────────────┘             │
│                               │                                 │
│                               ▼                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │              统一 Skills 管理层(现有功能增强)           │   │
│  │  位置: 设置 → 扩展 → Skills                              │   │
│  │  - 多仓库管理(保留现有仓库管理功能)                     │   │
│  │  - 支持安装到 Claude/Codex/Gemini/ProxyCast             │   │
│  │  - 搜索、过滤、安装/卸载                                 │   │
│  └─────────────────────────────────────────────────────────┘   │
│                               │                                 │
│                               ▼                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │              AI Agent 集成(新增功能)                   │   │
│  │  位置: AI Agent 页面                                     │   │
│  │  - 被动式:自动加载所有已安装 Skills                     │   │
│  │  - Skills 注入到 Agent System Prompt                    │   │
│  │  - 流量监控 + Token 统计                                │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

3.2 Skills 仓库配置

3.2.1 默认仓库(更新后)

仓库 说明 优先级
proxycast/skills ProxyCast 官方仓库(新增) 主推
anthropics/skills Anthropic 官方 Skills 兼容
ComposioHQ/awesome-claude-skills 社区精选 兼容
cexll/myclaude 社区贡献 兼容

3.2.2 ProxyCast 官方仓库规划

github.com/proxycast/skills/
├── README.md                    # 仓库说明 + 贡献指南
├── CONTRIBUTING.md              # 贡献规范
│
├── official/                    # 官方 Skills(精选、高质量)
│   ├── code-review/
│   │   ├── SKILL.md
│   │   ├── references/
│   │   └── examples/
│   ├── doc-generator/
│   ├── translator/
│   ├── api-designer/
│   └── test-writer/
│
├── community/                   # 社区贡献(经审核)
│   └── ...
│
└── templates/                   # Skill 开发模板
    ├── basic/
    └── advanced/

3.2.3 首批官方 Skills

Skill 描述 分类
code-review 智能代码审查 开发
doc-generator 自动生成文档 开发
translator 多语言翻译 通用
api-designer API 设计助手 开发
test-writer 单元测试生成 开发
commit-message Git 提交信息 开发

3.3 Skills 管理(复用现有功能)

现有 Skills 管理功能(设置 → 扩展 → Skills)将继续使用,增强点:

现有功能 增强内容
仓库管理 默认添加 proxycast/skills
Skills 列表 增加"来源"标签区分官方/社区
安装/卸载 保持不变
搜索/过滤 保持不变

3.3.1 Skills 目录

~/.proxycast/skills/           # ProxyCast 应用的 Skills
├── code-review/
├── doc-generator/
└── ...

~/.claude/skills/              # Claude Code 的 Skills(兼容)
├── ...

3.3.2 Skills 生命周期

发现(仓库扫描)→ 安装 → 自动加载 → 被动执行 → 卸载
                         ↑
                   无需手动启用

3.4 AI Agent 集成(核心新功能)

基于现有 AI Agent 页面扩展,Skills 采用被动式集成。

3.4.1 被动式设计原则

核心理念:Skills 不需要用户手动"选择"或"启用",而是自动加载、被动触发。

┌─────────────────────────────────────────────────────────────────┐
│                    被动式 Skills vs 主动式 Skills                │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ❌ 主动式(不采用):                                           │
│     用户需要先选择要使用的 Skills → 然后描述任务                │
│                                                                 │
│  ✅ 被动式(采用):                                             │
│     用户直接描述任务 → Agent 自动匹配合适的 Skill               │
│                                                                 │
│  用户体验差异:                                                  │
│  ├─ 主动式: "我要用代码审查 Skill,帮我审查这段代码"            │
│  └─ 被动式: "帮我审查这段代码"(Agent 自动使用 code-review)    │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

3.4.2 UI 设计(信息展示,非选择器)

在 AI Agent 页面展示已加载的 Skills(只读信息):

┌─────────────────────────────────────────────────────────────────┐
│  🤖 AI Agent                                      [运行中] ... │
│  基于 Goose 框架的 AI Agent 对话                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ⚙️ 控制面板                                              [∧]  │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 进程    [▶] [■]                                         │   │
│  │                                                          │   │
│  │ 会话    [claude ▼]  [选择模型 ▼]      [🗨 创建新会话]   │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  📦 已加载 5 个 Skills                    [管理 Skills]  │   │
│  │                                                          │   │
│  │  code-review · translator · doc-generator · ...          │   │
│  │                                                          │   │
│  │  💡 直接描述任务,Agent 会自动使用合适的 Skill           │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  [对话区域...]                                                  │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

3.4.3 Skills 注入机制(自动,非手动)

系统自动将所有已安装的 Skills 注入到 Agent:

┌─────────────────────────────────────────────────────────────────┐
│  Skills 自动注入流程                                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  1. ProxyCast 启动 / Skills 安装后                             │
│     └─ 扫描 ~/.proxycast/skills/ 目录                          │
│                                                                 │
│  2. 解析所有 SKILL.md 的 frontmatter                           │
│     └─ 提取 name + description                                 │
│                                                                 │
│  3. 生成 <available_skills> XML                                │
│                                                                 │
│  4. 创建 Agent 会话时自动注入 System Prompt                    │
│                                                                 │
│  5. Agent 根据用户消息自动判断是否需要使用 Skill               │
│     ├─ 匹配到: 读取完整 SKILL.md,按指令执行                   │
│     └─ 未匹配: 正常对话                                        │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

3.4.3 Skills Prompt XML 格式

<available_skills>
  <skill>
    <name>code-review</name>
    <description>智能代码审查,发现潜在问题和优化建议</description>
    <location>~/.proxycast/skills/code-review/SKILL.md</location>
  </skill>
  <skill>
    <name>translator</name>
    <description>多语言翻译,保持专业术语准确性</description>
    <location>~/.proxycast/skills/translator/SKILL.md</location>
  </skill>
</available_skills>

当用户的请求匹配某个 Skill 的描述时,请使用该 Skill 来完成任务。

3.4.4 执行流程

┌─────────────────────────────────────────────────────────────────┐
│                    Skills 执行流程(AI Agent 集成)              │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  1. 用户在 AI Agent 选择要启用的 Skills                        │
│         │                                                       │
│         ▼                                                       │
│  2. 创建会话时,Skills 信息注入 System Prompt                  │
│         │                                                       │
│         ▼                                                       │
│  3. 用户发送消息(自然语言)                                    │
│         │                                                       │
│         ▼                                                       │
│  4. Agent 判断是否需要使用 Skill                               │
│         │                                                       │
│         ├──► 需要: 加载 SKILL.md 内容,按指令执行               │
│         │                                                       │
│         └──► 不需要: 正常对话                                   │
│         │                                                       │
│         ▼                                                       │
│  5. Flow Monitor 记录(标记 Skill 来源)                       │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

3.5 Skills 执行(独立模式)

除了 AI Agent 集成,也支持独立执行 Skills(未来版本)。

3.5.1 多模型支持

同一个 Skill 可以选择不同的模型执行:

Skill: 代码审查
├─ 使用 Claude 3.5 Sonnet(推荐,准确度高)
├─ 使用 GPT-4o(备选)
├─ 使用 Gemini Pro(成本低)
└─ 使用本地模型(隐私优先)

3.3 流量监控集成

复用现有 Flow Monitor,增加 Skills 维度:

┌─────────────────────────────────────────────────────────────────┐
│  Flow Monitor - Skills 视图                                     │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  14:32:01 [代码审查] → Claude API                               │
│    Skill: code-review v1.0.0                                   │
│    Input: "Review this function: function add(a, b)..."        │
│    Output: "Found 2 issues: 1. Missing type checks..."         │
│    Tokens: 1,234 in / 567 out                                  │
│    Cost: $0.02                                                 │
│    Duration: 3.2s                                              │
│                                                                 │
│  14:31:45 [翻译助手] → GPT-4o                                   │
│    Skill: translator v1.2.0                                    │
│    ...                                                         │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

3.4 Token 管理

复用现有 Credential Pool,增加 Skills 统计:

┌─────────────────────────────────────────────────────────────────┐
│  Token 消耗统计                                                 │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  本月总消耗: 125,000 tokens ($3.75)                            │
│                                                                 │
│  按 Skill 分布:                                                │
│  ├─ 代码审查: 45,000 tokens (36%)                              │
│  ├─ 翻译助手: 38,000 tokens (30%)                              │
│  ├─ 文档生成: 25,000 tokens (20%)                              │
│  └─ 其他: 17,000 tokens (14%)                                  │
│                                                                 │
│  按模型分布:                                                    │
│  ├─ Claude 3.5 Sonnet: 80,000 tokens ($2.40)                   │
│  ├─ GPT-4o: 35,000 tokens ($1.05)                              │
│  └─ Gemini Pro: 10,000 tokens ($0.30)                          │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

4. 技术方案

4.1 整体架构

┌─────────────────────────────────────────────────────────────────┐
│                    ProxyCast Skills Platform                    │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌───────────────────────────────────────────────────────────┐ │
│  │                   Frontend (React)                         │ │
│  │  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐          │ │
│  │  │Skills Store │ │Skills Exec  │ │Flow Monitor │          │ │
│  │  │    UI       │ │    UI       │ │  (现有)     │          │ │
│  │  └─────────────┘ └─────────────┘ └─────────────┘          │ │
│  └───────────────────────────────────────────────────────────┘ │
│                              │                                  │
│                              ▼                                  │
│  ┌───────────────────────────────────────────────────────────┐ │
│  │                   Backend (Rust)                           │ │
│  │  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐          │ │
│  │  │Skills       │ │Goose Agent  │ │Credential   │          │ │
│  │  │Manager      │ │  (嵌入式)   │ │Pool (现有)  │          │ │
│  │  └─────────────┘ └─────────────┘ └─────────────┘          │ │
│  │                                                            │ │
│  │  Goose 核心组件(Rust 原生,直接嵌入):                     │ │
│  │  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐          │ │
│  │  │Skills       │ │Provider     │ │Session      │          │ │
│  │  │Extension    │ │Manager      │ │Manager      │          │ │
│  │  └─────────────┘ └─────────────┘ └─────────────┘          │ │
│  └───────────────────────────────────────────────────────────┘ │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

4.2 Goose 集成(库嵌入方式)

集成优势

Goose 嵌入式集成:
┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│  优势:                                                          │
│  ├─ Rust 原生 - 与 Tauri 完美契合                               │
│  ├─ 无进程管理 - 直接调用库,无需 Sidecar                       │
│  ├─ 性能最优 - 无进程间通信开销                                 │
│  ├─ 30+ LLM 提供商 - Anthropic, OpenAI, Gemini, Ollama...      │
│  └─ Skills 原生支持 - 已支持 SKILL.md 格式                      │
│                                                                 │
│  Goose 原生支持 Skills:                                         │
│  ├─ ~/.claude/skills/ 目录(与 Claude Code 兼容)               │
│  ├─ YAML frontmatter + Markdown 解析                           │
│  └─ 自动加载并注入 System Prompt                               │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

关键文件

文件 作用 修改内容
src-tauri/src/agent/goose_agent.rs Agent 封装 Goose Agent 管理
src-tauri/src/agent/goose_types.rs 类型定义 AgentEvent, SessionConfig
src-tauri/Cargo.toml 依赖配置 添加 goose Git 依赖

4.3 Skills 解析器

Rust 端实现

// src-tauri/src/skills/parser.rs

use serde::{Deserialize, Serialize};

#[derive(Debug, Serialize, Deserialize)]
pub struct SkillManifest {
    pub name: String,
    pub description: String,
    pub license: Option<String>,
    pub metadata: Option<SkillMetadata>,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct SkillMetadata {
    pub author: Option<String>,
    pub version: Option<String>,
    pub category: Option<String>,
    pub tags: Option<Vec<String>>,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct Skill {
    pub manifest: SkillManifest,
    pub content: String,           // SKILL.md body
    pub path: PathBuf,
    pub has_scripts: bool,
    pub has_references: bool,
    pub has_assets: bool,
}

impl Skill {
    pub fn load(path: &Path) -> Result<Self, SkillError> {
        let skill_md = path.join("SKILL.md");
        let content = std::fs::read_to_string(&skill_md)?;

        // 解析 YAML frontmatter
        let manifest = parse_frontmatter(&content)?;

        Ok(Self {
            manifest,
            content: extract_body(&content),
            path: path.to_path_buf(),
            has_scripts: path.join("scripts").exists(),
            has_references: path.join("references").exists(),
            has_assets: path.join("assets").exists(),
        })
    }
}

4.4 数据流

┌─────────────────────────────────────────────────────────────────┐
│                        数据流                                    │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  用户操作                                                        │
│      │                                                          │
│      ▼                                                          │
│  Frontend (React)                                               │
│      │ Tauri Command                                            │
│      ▼                                                          │
│  Backend (Rust)                                                 │
│      │                                                          │
│      ├──► Skills Manager: 管理 Skills 生命周期                  │
│      │                                                          │
│      ├──► Goose Agent: 直接调用 Goose 库执行 Skill              │
│      │         │                                                │
│      │         ├──► Skills Extension 加载 Skill 内容            │
│      │         ├──► PromptManager 构建 System Prompt            │
│      │         ├──► Provider 调用 LLM API                       │
│      │         └──► 流式返回 AgentEvent                         │
│      │                                                          │
│      └──► Flow Monitor: 记录流量和消耗                          │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

4.5 API 设计

Tauri Commands (Rust → Frontend)

// Skills 管理
#[tauri::command]
async fn list_skills() -> Result<Vec<SkillSummary>, String>;

#[tauri::command]
async fn get_skill(name: &str) -> Result<Skill, String>;

#[tauri::command]
async fn install_skill(source: SkillSource) -> Result<Skill, String>;

#[tauri::command]
async fn uninstall_skill(name: &str) -> Result<bool, String>;

// Skills 执行
#[tauri::command]
async fn execute_skill(
    skill_name: &str,
    input: serde_json::Value,
    model_config: ModelConfig,
) -> Result<SkillExecutionResult, String>;

// Goose Agent 管理
#[tauri::command]
async fn get_agent_status() -> Result<AgentStatus, String>;

#[tauri::command]
async fn create_session(provider: &str, model: &str) -> Result<String, String>;

Goose Agent API(Rust 库调用)

// 直接调用 Goose 库,无需 HTTP API
use goose::agents::{Agent, AgentEvent, SessionConfig};
use goose::providers::create_provider;

// 创建 Agent
let provider = create_provider("anthropic", "claude-sonnet-4-5").await?;
let agent = Agent::new();
agent.update_provider(provider, &session_id).await?;

// 发送消息(流式响应)
let message = Message::user().with_text("帮我审查这段代码");
let mut stream = agent.reply(message, session_config, None).await?;

while let Some(Ok(event)) = stream.next().await {
    match event {
        AgentEvent::Message(msg) => { /* 处理消息 */ }
        AgentEvent::ModelChange { model, mode } => { /* 模型切换 */ }
        // ...
    }
}

5. MVP 范围

5.1 P0 - 必须有(第一版发布)

基于现有功能扩展,最小改动实现核心价值。

功能 描述 现有基础 验收标准
ProxyCast 官方仓库 创建 proxycast/skills GitHub 仓库 无 仓库可访问
默认仓库配置 添加 proxycast/skills 到默认仓库列表 skill_service.rs 列表中显示
AI Agent Skills 展示 在 AI Agent 页面显示已加载 Skills 信息 AgentChatPage.tsx 显示已加载 Skills
Skills 自动注入 已安装 Skills 自动注入 System Prompt goose_agent.rs Agent 能感知 Skills
首批官方 Skills 3-5 个高质量 Skills 无 可安装使用

5.2 P1 - 应该有(快速迭代)

功能 描述 现有基础 验收标准
Skills 来源标签 区分官方/社区 Skills SkillsPage.tsx 显示来源标签
Flow Monitor 集成 显示 Skill 执行流量 Flow Monitor 记录中标记 Skill
Token 消耗统计 按 Skill 统计消耗 无 看到成本分布
Skills 执行追踪 Flow Monitor 标记 Skill 使用 无 能看到用了哪个 Skill
Skills 详情面板 查看 Skill 完整内容 无 显示 SKILL.md

5.3 P2 - 可以有(未来版本)

功能 描述
Skills 独立执行界面 不经过 AI Agent,直接执行 Skill
评分/评论系统 用户对 Skills 评分评论
Skills 推荐 基于使用习惯推荐
多 Agent 协作 多个 Skills 组合工作流
Skills 编辑器 在线编辑 SKILL.md
云端同步 Skills 配置云端备份

5.4 关键文件修改清单

文件 修改内容 优先级
src-tauri/Cargo.toml 添加 goose Git 依赖 P0
src-tauri/src/agent/goose_agent.rs Goose Agent 封装(新建) P0
src-tauri/src/services/skill_service.rs 添加 proxycast/skills 到默认仓库 P0
src/components/agent/AgentChatPage.tsx 添加已加载 Skills 展示 UI P0
src-tauri/src/commands/agent_cmd.rs 适配 Goose API P0
src/components/skills/SkillCard.tsx 添加来源标签 P1
src/lib/api/skills.ts 增加获取 Skill 内容 API P0

6. UI 设计

6.1 导航结构

ProxyCast
├── 仪表盘
├── 流量监控
├── Provider 管理
├── 凭证池
├── Skills ← 新增
│   ├── 我的 Skills
│   ├── Skills 商店
│   └── 执行历史
├── 工具
└── 设置

6.2 Skills 列表页

┌─────────────────────────────────────────────────────────────────┐
│  Skills                                          [+ 安装 Skill] │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  🔍 搜索 Skills...                              [全部 ▼]        │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 🔍 代码审查                                    [运行]    │   │
│  │ 智能代码审查,发现潜在问题和优化建议                     │   │
│  │ 作者: ProxyCast Team  |  v1.0.0  |  内置                │   │
│  │ 本月使用: 23 次  |  消耗: 45,230 tokens ($1.35)         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 📝 文档生成器                                  [运行]    │   │
│  │ 根据代码自动生成文档和注释                               │   │
│  │ 作者: ProxyCast Team  |  v1.0.0  |  内置                │   │
│  │ 本月使用: 15 次  |  消耗: 28,100 tokens ($0.84)         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 🌐 翻译助手                                    [运行]    │   │
│  │ 多语言翻译,保持专业术语准确性                           │   │
│  │ 作者: ProxyCast Team  |  v1.0.0  |  内置                │   │
│  │ 本月使用: 8 次  |  消耗: 12,500 tokens ($0.38)          │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

6.3 Skill 执行页

┌─────────────────────────────────────────────────────────────────┐
│  ← 返回  |  代码审查                                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 📄 输入                                                  │   │
│  │                                                          │   │
│  │ ┌────────────────────────────────────────────────────┐  │   │
│  │ │ // 粘贴或输入要审查的代码                           │  │   │
│  │ │ function add(a, b) {                               │  │   │
│  │ │   return a + b;                                    │  │   │
│  │ │ }                                                  │  │   │
│  │ │                                                    │  │   │
│  │ └────────────────────────────────────────────────────┘  │   │
│  │                                                          │   │
│  │ 或 [📁 上传文件]                                         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ ⚙️ 配置                                                  │   │
│  │                                                          │   │
│  │ 模型: [Claude 3.5 Sonnet ▼]     Token 来源: [默认 ▼]    │   │
│  │                                                          │   │
│  │ 预估消耗: ~2,000 tokens ($0.06)                         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│                              [▶ 执行]                           │
│                                                                 │
├─────────────────────────────────────────────────────────────────┤
│  📊 执行结果                                                    │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ ✅ 审查完成                                              │   │
│  │                                                          │   │
│  │ 发现 2 个问题:                                           │   │
│  │                                                          │   │
│  │ ⚠️ [建议] 缺少类型检查                                   │   │
│  │   Line 1: function add(a, b)                            │   │
│  │   建议: 添加参数类型检查或使用 TypeScript                │   │
│  │                                                          │   │
│  │ ℹ️ [信息] 可以添加 JSDoc 注释                            │   │
│  │   Line 1-3: 整个函数                                    │   │
│  │   建议: 添加 @param 和 @returns 注释                    │   │
│  │                                                          │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  实际消耗: 1,234 tokens ($0.04)  |  耗时: 3.2s                 │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

6.4 Skills 安装对话框

┌─────────────────────────────────────────────────────────────────┐
│  安装 Skill                                              [×]    │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  选择安装方式:                                                  │
│                                                                 │
│  ○ 从 URL 安装                                                 │
│    ┌────────────────────────────────────────────────────────┐  │
│    │ https://github.com/user/skill-name                     │  │
│    └────────────────────────────────────────────────────────┘  │
│                                                                 │
│  ○ 从本地目录安装                                              │
│    [📁 选择目录]                                                │
│                                                                 │
│                                                                 │
│                              [取消]  [安装]                     │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

7. 里程碑

Phase 1: 官方仓库 + 基础集成(1 周)

目标: 创建 ProxyCast 官方 Skills 仓库,完成基础集成

任务 预估 产出
创建 proxycast/skills GitHub 仓库 0.5d 仓库结构
编写首批 3 个官方 Skills 2d code-review, translator, doc-generator
修改 skill_service.rs 添加默认仓库 0.5d 代码修改
测试 Skills 安装流程 0.5d 测试通过
编写 README 和贡献指南 0.5d 文档

交付物:

  • ProxyCast 官方 Skills 仓库上线
  • 用户可以在设置 → 扩展 → Skills 中看到官方 Skills

Phase 2: AI Agent 集成(1 周)

目标: 在 AI Agent 中使用 Skills

任务 预估 产出
AgentChatPage 添加 Skills 信息展示 UI 1d React 组件
实现 Skills Prompt 生成器 1d XML 生成函数
修改 agent_cmd.rs 支持 Skills 参数 1d Rust 代码
实现 goose_agent.rs 注入 System Prompt 1d Rust 代码
端到端测试 0.5d 测试通过

交付物:

  • 用户可以在 AI Agent 页面选择 Skills
  • Agent 能感知并使用选中的 Skills

Phase 3: 增强功能(1 周)

目标: 完善体验,准备发布

任务 预估 产出
Skills 来源标签(官方/社区) 1d UI 增强
Skills 详情面板 1d 查看 SKILL.md
Flow Monitor Skills 标记 1d 流量记录增强
文档编写(用户指南) 1d 用户文档
Bug 修复和优化 1d 稳定性

交付物: 可发布的 MVP 版本

总时间线

Week 1: Phase 1 - 官方仓库 + 基础集成
Week 2: Phase 2 - AI Agent 集成
Week 3: Phase 3 - 增强功能 + 发布准备

8. 成功指标

8.1 用户增长指标

指标 目标(MVP 后 1 个月)
日活用户 (DAU) 100+
Skills 安装数 500+
Skills 执行数 2,000+

8.2 用户体验指标

指标 目标
首次 Skill 执行成功率 > 90%
平均执行时间 < 5s
用户满意度 (NPS) > 40

8.3 业务指标

指标 目标
Token 中转量 100M tokens/月
活跃 Skills 数 20+
开发者提交 Skills 10+

9. 风险与缓解

风险 影响 可能性 缓解措施
Goose API 变动 高 中 抽象接口层 + 锁定 Git commit
Skills 格式不兼容 中 低 Goose 原生支持 SKILL.md + 验证器
性能问题 中 低 Rust 嵌入式无进程开销 + 缓存
Token 消耗超预期 中 低 执行前预估 + 消耗限制 + 告警
安全风险(恶意 Skills) 高 低 Goose 权限控制 + 审核机制

10. 附录

10.1 术语表

术语 定义
Skill 遵循 Agent Skills 标准的 AI 能力包
SKILL.md Skill 的核心定义文件
Goose ProxyCast 使用的 Agent 执行引擎(Rust 原生)
Provider Goose 中的 LLM 提供商抽象
Flow Monitor ProxyCast 的流量监控功能
Credential Pool ProxyCast 的凭证管理功能

10.2 参考资料

10.3 变更历史

版本 日期 作者 变更内容
1.0.0 2025-12-30 Claude 初始版本
1.1.0 2025-12-30 Claude 添加设计原则:标准兼容 vs 实现自主;更新为被动式 Skills 设计
1.2.0 2025-12-31 Claude 将 Agent 执行引擎从 Aster (Go) 替换为 Goose (Rust);采用库嵌入方式

本文档由 Claude 协助生成,基于与 ProxyCast 团队的讨论。