feat(github-copilot-sdk): release v0.10.0 with native prompt restoration and live todo widget
- Restore native Copilot CLI prompts for authentic Plan Mode behavior - Add SQLite-backed session management for state persistence via system prompt - Implement Adaptive Autonomy (Agent chooses planning vs direct execution) - Fix OpenWebUI custom tool context injection for v0.8.x compatibility - Add compact Live TODO widget synchronized with session.db - Upgrade SDK to github-copilot-sdk==0.1.30 - Remove legacy mode switch RPC calls (moved to prompt-driven orchestration) - Fix intent status localization and widget whitespace optimization - Sync bilingual READMEs and all documentation mirrors to v0.10.0
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# GitHub Copilot Official SDK Pipe
|
||||
|
||||
**作者:** [Fu-Jie](https://github.com/Fu-Jie/openwebui-extensions) | **版本:** 0.9.1 | **项目:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **许可证:** MIT
|
||||
**作者:** [Fu-Jie](https://github.com/Fu-Jie/openwebui-extensions) | **版本:** 0.10.0 | **项目:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **许可证:** MIT
|
||||
|
||||
这是一个将 **GitHub Copilot SDK** 深度集成到 **OpenWebUI** 中的强大 Agent SDK 管道。它不仅实现了 SDK 的核心功能,还支持 **智能意图识别**、**自主网页搜索** 与 **自动上下文压缩**,并能够无缝读取 OpenWebUI 已有的配置进行智能注入,让 Agent 能够具备以下能力:
|
||||
|
||||
@@ -21,13 +21,14 @@
|
||||
|
||||
---
|
||||
|
||||
## ✨ 0.9.1 最新更新:自主网页搜索与可靠性修复
|
||||
## ✨ v0.10.0 最新更新:原生提示词恢复、Live TODO 小组件与 SDK v0.1.30 完善
|
||||
|
||||
- **🌐 强化自主网页搜索**:`web_search` 工具现已强制对 Agent 开启(绕过 UI 网页搜索开关),充分利用 Copilot 自身具备的搜索判断能力。
|
||||
- **🛠️ 术语一致性优化**:全语种同步将“助手”更改为 **"Agent"**,并将“优化会话”统一为 **"压缩上下文"**,更准确地描述 Infinite Session 的技术本质。
|
||||
- **🌐 语言一致性**:内置指令确保 Agent 输出语言与用户输入严格对齐,提供无缝的国际化交互体验。
|
||||
- **🐛 修复 MCP 工具过滤逻辑**:解决了在管理员后端配置 `function_name_filter_list`(或在聊天界面勾选特定工具)时,因 ID 前缀(`server:mcp:`)识别逻辑错误导致工具意外失效的问题。
|
||||
- **🔍 提升过滤稳定性**:修复了工具 ID 归一化逻辑,确保点选的工具白名单在 SDK 会话中精确生效。
|
||||
- **⌨️ 原生提示词恢复**:恢复了大部分 Copilot CLI 原生提示词,确保 Agent 在处理复杂任务时具备最正宗的行为逻辑与增强能力。
|
||||
- **📋 Live TODO 小组件**:新增基于 `session.db` 实时任务状态的紧凑型嵌入式 TODO 小组件,任务进度常驻可见,无需在正文中重复显示全部待办列表。
|
||||
- **🧩 OpenWebUI 工具调用修复**:修复自定义工具调用时上下文注入不完整的问题,完全对齐 OpenWebUI 0.8.x 所需的系统级上下文(`__request__`、`body`、`__metadata__` 等)。
|
||||
- **🔒 SDK v0.1.30 与自适应工作流**:升级到 `github-copilot-sdk==0.1.30`,将规划与执行逻辑移至系统提示词,让 Agent 根据任务复杂度自主决策工作流。
|
||||
- **🐛 意图与体验优化**:修复 `report_intent` 国际化问题,优化 TODO 小组件的视觉布局,减少冗余空白。
|
||||
- **🧾 嵌入结果与文档更新**:改进 HTML/嵌入式工具结果处理,同步中英 README 与 docs 镜像页,确保发布状态一致。
|
||||
|
||||
---
|
||||
|
||||
@@ -40,6 +41,7 @@
|
||||
- **OpenAPI 桥接**: 将任何外部 REST API 一键转换为 Agent 可调用的工具。
|
||||
- **OpenWebUI 原生桥接**: 零配置接入现有的 OpenWebUI 工具及内置功能(网页搜索、记忆等)。
|
||||
- **🧩 OpenWebUI Skills 桥接**: 将简单的 OpenWebUI Markdown 指令转化为包含脚本、模板 and 数据的强大 SDK 技能文件夹。
|
||||
- **🧭 自适应规划与执行**: Agent 会根据任务复杂度、歧义程度和用户意图,自主决定先输出结构化方案,还是直接分析、实现并验证。
|
||||
- **♾️ 无限会话管理**: 先进的上下文窗口管理,支持自动“压缩”(摘要提取 + TODO 列表持久化)。支持长达数周的项目跟踪而不会丢失核心上下文。
|
||||
- **📊 交互式产物与发布**:
|
||||
- **实时 HTML/JS**: 瞬间渲染并交互 Agent 生成的应用程序、可视化看板或报告。
|
||||
@@ -67,32 +69,81 @@
|
||||
|
||||
---
|
||||
|
||||
## 🚀 快速开始 (Quick Start)
|
||||
## ⚙️ 核心配置 (Valves)
|
||||
|
||||
1. **安装本插件**: 在 OpenWebUI 管道管理界面添加并启用。
|
||||
2. **安装 [Files Filter](https://openwebui.com/posts/403a62ee-a596-45e7-be65-fab9cc249dd6)** (必须): 以获得文件处理能力。
|
||||
3. **配置凭据**:
|
||||
- **官方模式**: 默认即可。确保环境中安装了 `github-copilot-sdk`。
|
||||
- **BYOK 模式**: 填入 OpenAI/Anthropic/DeepSeek 的 Base URL 与 Key。
|
||||
4. **选择模型**: 在聊天界面选择 `GitHub Copilot Official SDK Pipe` 系列模型。
|
||||
5. **开始对话**: 直接上传文件或发送复杂指令。
|
||||
### 1. 管理员设置(全局默认)
|
||||
|
||||
管理员可在函数设置中为所有用户定义默认行为。
|
||||
|
||||
| Valve | 默认值 | 描述 |
|
||||
| :--- | :--- | :--- |
|
||||
| `GH_TOKEN` | `""` | 全局 GitHub Fine-grained Token,需要 `Copilot Requests` 权限。 |
|
||||
| `COPILOTSDK_CONFIG_DIR` | `/app/backend/data/.copilot` | SDK 配置与会话状态的持久化目录。 |
|
||||
| `ENABLE_OPENWEBUI_TOOLS` | `True` | 启用 OpenWebUI Tools 与 Built-in Tools。 |
|
||||
| `ENABLE_OPENAPI_SERVER` | `True` | 启用 OpenAPI Tool Server 连接。 |
|
||||
| `ENABLE_MCP_SERVER` | `True` | 启用 MCP Server 连接。 |
|
||||
| `ENABLE_OPENWEBUI_SKILLS` | `True` | 启用 OpenWebUI Skills 到 SDK 技能目录的同步。 |
|
||||
| `OPENWEBUI_SKILLS_SHARED_DIR` | `/app/backend/data/cache/copilot-openwebui-skills` | Skills 共享缓存目录。 |
|
||||
| `DISABLED_SKILLS` | `""` | 逗号分隔的禁用技能名列表。 |
|
||||
| `REASONING_EFFORT` | `medium` | 推理强度:`low`、`medium`、`high`、`xhigh`。 |
|
||||
| `SHOW_THINKING` | `True` | 是否显示思考过程。 |
|
||||
| `INFINITE_SESSION` | `True` | 是否启用无限会话与上下文压缩。 |
|
||||
| `MAX_MULTIPLIER` | `1.0` | 允许的最大账单倍率。`0` 表示仅允许免费模型。 |
|
||||
| `EXCLUDE_KEYWORDS` | `""` | 排除包含这些关键词的模型。 |
|
||||
| `TIMEOUT` | `300` | 每个流式分片的超时时间(秒)。 |
|
||||
| `BYOK_TYPE` | `openai` | BYOK 提供商类型:`openai` 或 `anthropic`。 |
|
||||
| `BYOK_BASE_URL` | `""` | BYOK Base URL。 |
|
||||
| `BYOK_MODELS` | `""` | BYOK 模型列表,留空则尝试从 API 获取。 |
|
||||
| `CUSTOM_ENV_VARS` | `""` | 自定义环境变量(JSON 格式)。 |
|
||||
| `DEBUG` | `False` | 启用浏览器控制台/技术调试日志。 |
|
||||
|
||||
### 2. 用户设置(个人覆盖)
|
||||
|
||||
普通用户可在个人资料或函数设置中覆盖以下选项。
|
||||
|
||||
| Valve | 描述 |
|
||||
| :--- | :--- |
|
||||
| `GH_TOKEN` | 使用个人 GitHub Token。 |
|
||||
| `REASONING_EFFORT` | 个人推理强度偏好。 |
|
||||
| `SHOW_THINKING` | 是否显示思考过程。 |
|
||||
| `MAX_MULTIPLIER` | 个人最大账单倍率限制。 |
|
||||
| `EXCLUDE_KEYWORDS` | 个人模型排除关键词。 |
|
||||
| `ENABLE_OPENWEBUI_TOOLS` | 是否启用 OpenWebUI Tools 与 Built-in Tools。 |
|
||||
| `ENABLE_OPENAPI_SERVER` | 是否启用 OpenAPI Tool Server。 |
|
||||
| `ENABLE_MCP_SERVER` | 是否启用 MCP Server。 |
|
||||
| `ENABLE_OPENWEBUI_SKILLS` | 是否加载你可读的 OpenWebUI Skills 到 SDK 技能目录。 |
|
||||
| `DISABLED_SKILLS` | 逗号分隔的个人禁用技能列表。 |
|
||||
| `BYOK_API_KEY` | 个人 BYOK API Key。 |
|
||||
| `BYOK_TYPE` | 个人 BYOK 提供商类型覆盖。 |
|
||||
| `BYOK_BASE_URL` | 个人 BYOK Base URL 覆盖。 |
|
||||
| `BYOK_BEARER_TOKEN` | 个人 BYOK Bearer Token 覆盖。 |
|
||||
| `BYOK_MODELS` | 个人 BYOK 模型列表覆盖。 |
|
||||
| `BYOK_WIRE_API` | 个人 BYOK Wire API 覆盖。 |
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ 配置参数 (Configuration Valves)
|
||||
## 🚀 安装与配置
|
||||
|
||||
| 参数 | 默认值 | 描述 |
|
||||
| :--- | :--- | :--- |
|
||||
| `github_token` | - | GitHub Copilot 官方 Token (如果您有官方订阅且不方便本地登录时填入)。 |
|
||||
| `llm_base_url` | - | BYOK 模式的基础 URL。填入后将绕过 GitHub 官方服务。 |
|
||||
| `llm_api_key` | - | BYOK 模式的 API 密钥。 |
|
||||
| `llm_model_id` | `gpt-4o` | 使用的模型 ID (官方、BYOK 均适用)。 |
|
||||
| `workspace_root` | `./copilot_workspaces` | 所有会话沙盒的根目录。 |
|
||||
| `skills_directory` | `./copilot_skills` | 自定义 SDK 技能文件夹所在的目录。 |
|
||||
| `show_status` | `True` | 是否在 UI 显示 Agent 的实时运行状态和思考过程。 |
|
||||
| `enable_infinite_session` | `True` | 是否开启自动上下文压缩和 TODO 列表持久化。 |
|
||||
| `enable_html_artifacts` | `True` | 是否允许 Agent 生成并实时预览 HTML 应用。 |
|
||||
| `enable_rich_ui` | `True` | 是否启用进度条和增强型工具调用面板。 |
|
||||
### 1. 导入函数
|
||||
|
||||
1. 打开 OpenWebUI,进入 **Workspace** -> **Functions**。
|
||||
2. 点击 **+**(Create Function),粘贴 `github_copilot_sdk.py` 内容。
|
||||
3. 保存并确保已启用。
|
||||
|
||||
### 2. 获取 Token
|
||||
|
||||
1. 访问 [GitHub Token Settings](https://github.com/settings/tokens?type=beta)。
|
||||
2. 创建 **Fine-grained token**,授予 **Account permissions** -> **Copilot Requests** 权限。
|
||||
3. 将生成的 Token 填入 `GH_TOKEN`。
|
||||
|
||||
### 3. 认证要求(必填其一)
|
||||
|
||||
必须至少配置一种凭据来源:
|
||||
|
||||
- `GH_TOKEN`(GitHub Copilot 官方订阅路线),或
|
||||
- `BYOK_API_KEY`(OpenAI / Anthropic 自带 Key 路线)。
|
||||
|
||||
如果两者都未配置,模型列表将不会显示。
|
||||
|
||||
---
|
||||
|
||||
@@ -104,7 +155,13 @@
|
||||
|
||||
## ⚠️ 故障排除 (Troubleshooting)
|
||||
|
||||
- **工具无法使用?** 请检查是否安装了 `github-copilot-sdk`。
|
||||
- **文件找不到?** 确保已启用配套的 `Files Filter` 插件。
|
||||
- **BYOK 报错?** 确认 `llm_base_url` 包含协议前缀(如 `https://`)且模型 ID 准确无误。
|
||||
- **卡在 "Thinking..."?** 检查后端网络连接,流式传输可能受某些代理拦截。
|
||||
- **工具无法使用?** 请先确认 OpenWebUI Tools / MCP / OpenAPI Server 已在对应设置中启用。
|
||||
- **文件找不到?** 确保已启用配套的 `Files Filter` 插件,否则 RAG 可能会提前消费原始文件。
|
||||
- **BYOK 报错?** 确认 `BYOK_BASE_URL` 包含正确协议前缀(如 `https://`),且模型 ID 准确无误。
|
||||
- **卡在 "Thinking..."?** 检查后端网络连接,或打开 `DEBUG` 查看更详细的 SDK 日志。
|
||||
|
||||
---
|
||||
|
||||
## Changelog
|
||||
|
||||
完整历史请查看 GitHub 项目主页:[OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||
|
||||
Reference in New Issue
Block a user