SkillGo
把好用的 Skill,变成每个人的能力。
沙箱隔离 · 成果交付 · 外部调用
A self-hosted platform for running agent skills in isolated sandboxes and delivering artifacts through the web or API.
产品演示 ·
核心能力 ·
使用流程 ·
快速开始 ·
API 接入 ·
开发与文档
SkillGo 是一个可私有化部署的多用户 Skill 执行平台,专注于**接收一次任务,按选定 Skill 完成工作,交付真实成果**。上传现有的 `SKILL.md` 技能包,准备环境并审核发布,再通过自然语言和附件发起任务。Agent 在独立沙箱中执行,处理可恢复错误,平台按配置的验收策略接收并保存生成文件;同一项 Skill 能力也可以发布为 API,接入已有业务系统。
## 产品演示
**第一次了解 SkillGo?不妨先观看这段 1 分 41 秒的产品演示。**
以 PPT 制作为例,直观了解 SkillGo 如何将 Skill 转化为可执行、可交付、可供业务调用的能力。视频配有中文配音与中英双语字幕。
https://github.com/user-attachments/assets/eb3e6cdf-cda6-434b-a0a9-4cc0d37262f4
下载演示视频 · 1080p · 60 fps
> **说明:** 视频展示 SkillGo 的产品流程。具体文档、表格、演示稿及图像处理能力取决于所上传的 Skill 和配置的模型。
## 核心能力
### 平台功能
Skill 管理 — 技能导入、版本管理、审核发布、社区共享
对话工作台 — 自然语言交互、附件处理、历史文件复用
Agent 执行 — Skill 流程直达、多 Skill 协调、Python / 命令执行、进度追踪与成果交付
模型与环境 — 多模型连接、视觉与 OCR、环境准备及依赖解析
团队与运维 — 权限管理、操作审计、文件保留、备份与恢复
### 界面预览
起始页

任务工作台

Skill 管理与存储界面

Skill 管理与发布
|

存储与生命周期管理
|
## 使用流程
1. **准备 Skill**:导入 ZIP,按需准备运行环境并完成审核发布。
2. **发起任务**:选择一个或多个 Skill,输入目标并添加附件。
3. **跟踪执行**:查看进度与工具日志;任务无人值守运行,信息不足时采用合理假设,无法继续时明确报告原因。
4. **获取成果**:下载已保存的文件,查看所用验收策略;失败或取消时可查看原因并重试。
同一任务由一个 Agent 协调所选 Skill,共享该任务工作区;不同任务使用独立工作卷。详细格式和示例参见 [Skill 包说明](docs/skill-packages.md) 与 [`examples/`](examples/)。
### 执行策略由管理员按需开启
| 设置 | 默认行为 | 适用方式 |
| --- | --- | --- |
| 沿用 Skill 既定流程 | 关闭 | 在 Skill 版本管理中开启;仅单 Skill 任务免除强制规划,模型仍可在必要时规划 |
| 运行联网 | 关闭 | 按版本授权;与既定流程开关相互独立 |
| 文件接收模式 | 默认开启 | 保留 Skill 自带校验,平台安全接收并保存真实文件;额外的平台完整验证可主动选择 |
| 最终操作自动交付 | 默认可用,无需单独开启 | 框架引导模型提前声明最后一组操作及产物;满足条件后直接交付,适用于所有账号、Skill 和文件格式 |
| 详细上下文观测 | 关闭 | `SKILLGO_CONTEXT_OBSERVABILITY=true`,排查时记录统计,不增加摘要模型调用 |
这些是独立设置。既定流程开关不会自动开启联网、跳过 Skill 校验或开启自动交付;联网与既定流程设置在创建任务时复制,修改版本按钮不改变已有任务。文件接收成功只表示真实文件已安全保存,不等于业务内容或版式已通过审核。
通用自动交付需要模型在最后一组工具调用中声明确切文件路径,并包含所有剩余的 Skill 校验和清理。若文件名需运行后才能得知、还需要模型看版,或文件没有在本组中生成/更新,仍使用普通结束路径。无需修改 Skill 包,详见 [通用最终操作交付](docs/final-operation-delivery.md)。
新部署无需配置上述两项。需要额外平台验证时可显式设置 `SKILLGO_ARTIFACT_DELIVERY_ONLY=false`;已有实例的显式配置继续有效,升级不会自动覆盖。
## 快速开始
### 体验界面与对话
准备 **Git、Docker Engine / Docker Desktop 和 Docker Compose v2**,克隆项目并创建环境文件:
```bash
git clone https://github.com/Max-cu/SkillGo.git
cd SkillGo
git checkout v1.0.0
cp .env.example .env
```
在 `.env` 中设置 `POSTGRES_PASSWORD`、`SKILLGO_JWT_SECRET`、`SKILLGO_BOOTSTRAP_EMAIL`、`SKILLGO_BOOTSTRAP_PASSWORD`,然后启动:
```bash
docker compose up -d --build
```
打开 **http://127.0.0.1:8080**,使用 Bootstrap 管理员账号登录,并在平台设置中配置模型。Windows PowerShell 请用 `Copy-Item .env.example .env` 代替 `cp`。
> **基础模式**仅启动 Web、API 和数据库,适合体验界面、Skill 管理与普通对话。要执行脚本、处理附件或生成文件,请继续启用沙箱模式。
### 启用沙箱执行(Linux)
需要 **Docker Engine + 已注册到 Docker 的 gVisor `runsc`**。先按 [部署指南](deploy/README.md) 完成安装与 Docker Socket GID 配置,再执行:
```bash
cp deploy/ecs.env.example deploy/ecs.env
# 编辑 deploy/ecs.env:配置 Docker GID、访问地址与端口
# 构建沙箱镜像并完成预检
docker compose --env-file .env --env-file deploy/ecs.env \
--profile build-only build sandbox-runtime
bash deploy/preflight.sh
# 启动沙箱模式(示例:2 个 Worker)
docker compose --env-file .env --env-file deploy/ecs.env \
--profile sandbox up -d --build --scale worker=2
# 验证服务、Worker 和 gVisor 隔离
SKILLGO_INSTALL_ROOT="$PWD" bash deploy/verify-ecs.sh
```
Worker 数量可按宿主资源调整:`--scale worker=N`。`deploy/ecs.env.example` 默认监听 **80 端口**,并覆盖根目录 `.env` 的同名配置;环境准备默认关闭,启用方法见 [执行环境与隔离](docs/execution-and-isolation.md)。
## API 接入
**同一项已发布的 Skill 能力,也可以通过独立 Endpoint 接入业务系统。** Endpoint 必须绑定已审核、可运行的 Skill 版本;密钥仅在创建或轮换时完整展示。
- **同步指令调用**:`POST /api/v1/invoke/{slug}` — 适用于纯指令处理,返回结构化结果与 `run_id`。
- **异步沙箱任务**:`POST /api/v1/workflow-endpoints/{slug}/jobs` — 适用于文件与工具任务,返回 `202 Accepted`、任务 ID 和查询地址。
异步接口接收可选输入文件和文本指令,至少提供一项;纯文本调用省略 `file`,不会生成占位附件。
### 示例:提交文件处理任务
```bash
export SKILLGO_BASE_URL="https://skillgo.example.com"
export SKILLGO_API_KEY="<你的 Endpoint 密钥>"
curl "$SKILLGO_BASE_URL/api/v1/workflow-endpoints/your-slug/jobs" \
-H "X-SkillGo-Key: $SKILLGO_API_KEY" \
-H "Idempotency-Key: request-001" \
-F "file=@./input.docx" \
-F "instruction=根据资料制作项目汇报 PPT,突出关键进展与下一步计划"
```
请求成功后,查询任务状态并下载产物。`Idempotency-Key` 可避免同一 Endpoint 下重复提交相同请求键时重复创建任务。外部任务无人值守执行,不会中途追问;信息不足时,Agent 会采用合理假设并在结果中说明。
Endpoint 绑定具体 Skill 版本。每个新 API 任务都会继承该版本的联网授权和“沿用 Skill 既定流程”设置;调用方无需额外传入这两个开关。
[完整 API 文档](docs/workflow-api.md) · [Python 客户端示例](examples/workflow_api_client.py) · 开发环境交互文档:`http://127.0.0.1:8000/api/docs`
## 架构与边界
SkillGo 由 **Web / FastAPI 控制面、PostgreSQL 与文件存储、可信 Worker、独立 gVisor 任务沙箱**构成。控制面负责授权、任务管理与交付,Worker 协调模型和沙箱中的执行过程。
**关键边界:**
- **执行隔离**:每次任务尝试使用独立容器与工作卷;沙箱以非 root 身份运行,使用只读根文件系统和可配置资源预算,不注入平台密钥或挂载 Docker Socket。
- **网络授权**:运行联网默认关闭。多 Skill 任务中,只要一个所选版本获得联网授权,整个任务沙箱就可联网;当前不限制目标域名。
- **任务编排**:一个 Agent 在任务沙箱内协调所选 Skill;多 Skill 协调不等于通用并行 DAG 或多 Agent 调度。
- **完成判定**:普通任务由 Agent 声明产物;自动交付仅支持明确审核的版本与命令序列,不以“目录里存在一个 PPT”作为完成依据。
- **速度与质量**:平台减少重复规划和确定流程中的往返;实际耗时及内容质量仍取决于模型、Skill、输入和重试,不承诺固定耗时或全面快于其他框架。
- **信任边界**:Worker 与环境准备服务属于可信控制面;gVisor 不能代替宿主机维护、权限治理与 HTTPS。
更多细节见 [执行环境与隔离](docs/execution-and-isolation.md);漏洞报告方式见 [SECURITY.md](SECURITY.md)。
## 开发与文档
本地开发使用 **Python 3.12 + Node.js 24**;后端为 FastAPI,前端为 React / TypeScript。
**部署与接入**
[部署指南](deploy/README.md) · [开发指南](docs/development.md) · [Skill 包说明](docs/skill-packages.md) · [任务 API](docs/workflow-api.md)
部署过程中,我们也推荐你把我们的项目交由AI来部署。
**架构与进阶**
[执行环境与隔离](docs/execution-and-isolation.md) · [产品与技术架构](docs/PRODUCT_ARCHITECTURE.md) · [Agent 内核](docs/agent-kernel.md) · [文档索引](docs/README.md)
[既定流程开关](docs/skill-flow-policy.md) · [通用最终操作交付](docs/final-operation-delivery.md) · [工作流兼容适配](docs/workflow-auto-delivery.md) · [上下文观测](docs/context-observability.md)
本文描述当前 `main`。生产部署请选择经过验证的提交或 [Release](https://github.com/Max-cu/SkillGo/releases),并参考对应版本文档;历史设计记录不代表当前功能开关或部署状态。
v1.0.0:让 Skill 顺畅执行到交付(点击展开)
- **沿用既定流程**:管理员可按 Skill 版本开启,单 Skill 任务不再强制重列执行计划;完整 Skill、前置条件和自带校验仍交给模型遵循。
- **减少执行往返**:支持批量读取、批量命令和工作流连续执行,可恢复错误返回模型处理;正常完成后安全收集真实产物。
- **默认直接接收**:默认使用文件接收模式,复用 Skill 自带校验;需要额外平台验证时仍可主动开启。
- **通用自动交付**:默认对全部账号、Skill 和文件格式可用;模型在最后操作前声明产物,操作及自带校验成功、文件确为本组新建或更新且收集一致后,可省去独立结束轮次。
- **网页与 API 一致**:新任务继承所绑定版本的联网和既定流程设置,不要求外部调用方重复配置。
[查看 v1.0.0 发布说明](RELEASE_NOTES.md) · [完整变更记录](CHANGELOG.md)
## Project Highlights
- **Oct 22, 2026** — SkillGo v1.0.0 officially released after several rounds of testing and refinement.
- **Oct 29, 2026** — Selected for the [XERJ Corpus Hub](https://hub.xerj.org/contributors/Max-cu).
- **Nov 2, 2026** — Reached **50 GitHub stars**! Thanks to everyone who supports SkillGo.
**More to come.** 🚀
## 参与项目
欢迎提交问题、改进建议与 Pull Request。如果你也认可 SkillGo ,欢迎点一个 Star⭐,这对我们很重要 ^_^
开发约定见 [CONTRIBUTING.md](CONTRIBUTING.md),安全问题请按 [SECURITY.md](SECURITY.md) 私下报告。SkillGo 使用 [MIT License](LICENSE)。