* feat(github-copilot-sdk): add workspace skills support - Introduce ENABLE_WORKSPACE_SKILLS valve to enable/disable workspace custom tools discovery - Modify _build_session_config() to auto-load tools from .copilot-skills/ directory - Add workspace_skills_example.py template with 3 working example tools - Update README.md and README_CN.md with Workspace Skills guide and usage examples - Create v0.9.0.md and v0.9.0_CN.md release notes - Sync version to all docs files (index.md, index.zh.md, and main docs) - Bump version from 0.8.0 to 0.9.0 across all 7+ locations * docs: establish temp files handling policy (project-based, not /tmp) - Add TEMP_FILES_POLICY.md guideline for all skills and workflows - Update pr-submitter skill to use .temp/ directory instead of /tmp - Update release-prep skill documentation with temp file convention - Add .temp/ and .build/ entries to .gitignore - Create internal policy memo in /memories/repo/ This policy ensures: - All temporary files stay within project workspace (not system /tmp) - Alignment with OpenWebUI workspace isolation principles - Multi-user safety and cleanup traceability - Consistent handling across all skills and development workflows * fix(terminology): rename 'workspace skills' to 'workspace custom tools' for accuracy The term 'Skills' in Anthropic context refers to instruction-based frameworks (SKILL.md files with YAML frontmatter + markdown), not custom tool functions. Our implementation uses @define_tool decorator to define custom tools that the SDK auto-discovers from .copilot-skills/ directory. These are Tools, not Skills. Changes: - Rename ENABLE_WORKSPACE_SKILLS valve -> ENABLE_WORKSPACE_TOOLS - Update all documentation (README, README_CN, docs, release notes) - Fix section headings and descriptions throughout - Ensure consistent terminology across all files This is a terminology-only change; functionality remains identical. * feat(pipes): release v0.9.0 of GitHub Copilot SDK Pipe - Integrated OpenWebUI Skills Bridge and manage_skills tool - Reinforced status bar stability with session_finalized logic - Added persistent SDK config directory support * docs(pipes): add comprehensive guides and v0.9.0 notes for Copilot SDK - Added skill manager and best practices guides - Added publishing tool documentation - Included v0.9.0 release notes and deployment script - Updated usage guides
4.3 KiB
4.3 KiB
🚀 GitHub Copilot SDK Pipe v0.9.0:Copilot SDK Skills 核心能力与扩展交付
GitHub Copilot SDK Pipe v0.9.0 的核心是将 Copilot SDK Skills 提升为一等能力(原生目录支持 + 双向同步 + manage_skills 确定性管理),并在此基础上增强发布交付体验。
⭐ 版本亮点
- 🧩 Copilot SDK Skills 原生支持(核心):原生支持 SDK 技能目录(
SKILL.md+ 可选资源文件),技能可作为一等运行时上下文加载。 - 🔄 OpenWebUI Skills 桥接(扩展):OpenWebUI 与本地 SDK 技能目录双向同步。
- 🛠️
manage_skills工具(扩展):会话内以确定性方式完成list/install/create/edit/show/delete。 - 📤 发布增强:HTML 支持
artifacts/richui;PDF 统一 Markdown 链接交付。 - 📁 文件夹级技能:一个技能可包含
SKILL.md及模板/脚本/资源文件。 - 🧱 环境改造:在
/app/backend/data下重构配置、工作区与工具运行时布局,隔离性和可复现性显著提升。
📦 快速安装
🚀 v0.9.0 更新内容
1. OpenWebUI Skills ↔ SDK 双向同步
所有技能统一存放于 {OPENWEBUI_SKILLS_SHARED_DIR}/shared/,在数据库与文件之间自动同步。
2. manage_skills 工具
内置原生工具(不是 skill),支持:
listinstall(单 URL / 多 URL)createeditshowdelete
3. 发布行为
- HTML:
artifacts(输出代码块嵌入)或richui(发射器自动渲染)两种模式。 - PDF:仅以 Markdown 链接交付(不嵌入 iframe)。
4. 环境改造(详细分析)
这一版本不只是功能更新,还做了较大规模的运行环境重构:
-
持久化 SDK 配置目录
- 新增
COPILOTSDK_CONFIG_DIR。 - 解析优先级:Valve 显式配置 ->
/app/backend/data/.copilot->~/.copilot回退。 - 标准 OpenWebUI 容器场景下,会话/配置状态可跨容器重启保留。
- 新增
-
按用户 + 会话隔离的工作区模型
- 工作区根目录统一到
/app/backend/data/copilot_workspace(容器模式)。 - 实际目录按用户与 chat 隔离:
/app/backend/data/copilot_workspace/{user_id}/{chat_id}。 user_id与chat_id会进行清洗,避免路径穿越风险。
- 工作区根目录统一到
-
工具运行时固定到 data 卷(可持久)
- 工具根目录:
/app/backend/data/.copilot_tools。 - NPM 安装前缀固定为
/app/backend/data/.copilot_tools/npm(通过NPM_CONFIG_PREFIX)。 - Python 工具执行固定在
/app/backend/data/.copilot_tools/venv(通过VIRTUAL_ENV)。 - 同时清理
PYTHONUSERBASE与PIP_USER,防止 user-site 安装污染运行时。 - PATH 被重写优先指向 npm/venv bin,提升工具解析一致性。
- 工具根目录:
-
CLI 启动链路加固
- Copilot CLI 发现顺序:
COPILOT_CLI_PATH-> 系统PATH-> SDK 内置 bundled binary。 - 强制
COPILOT_AUTO_UPDATE=false,避免运行期自动更新导致行为漂移。 - 发现成功后自动将 CLI 目录注入 PATH。
- Copilot CLI 发现顺序:
-
系统提示词中的路径上下文强化
- 会显式注入隔离工作区、技能目录、配置目录、工具目录。
- 让 Agent 的“可写路径”和“可读路径”更确定,减少越界写入风险。
-
普通用户权限边界细化
- 普通用户仍禁止访问环境变量、数据库和无关系统内部信息。
- 允许读取当前用户当前会话在
COPILOTSDK_CONFIG_DIR下的会话元数据用于排障。 - 仍严格禁止跨用户会话读取。
5. 新增 Valves
COPILOTSDK_CONFIG_DIRENABLE_OPENWEBUI_SKILLSOPENWEBUI_SKILLS_SHARED_DIRDISABLED_SKILLS
🔄 升级说明
- 从 v0.8.0 升级无破坏性变更。
ENABLE_WORKSPACE_TOOLS已由ENABLE_OPENWEBUI_SKILLS取代。