mirror of
https://github.com/hotwa/luci-app-openclaw.git
synced 2026-04-01 13:49:51 +00:00
release v2.0.1: 适配 OpenClaw v2026.3.28
- 更新 OC_TESTED_VERSION 到 2026.3.28 - 磁盘空间要求从 1.5GB 提升到 2GB (包体积约 200MB) - 新增 Mistral AI 配置支持 (mistral-large/medium/small, codestral) - 新增百度千帆配置支持 (ernie-4.0/3.5/speed) - 更新 .gitignore 排除 .claude/ 本地设置目录
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -21,3 +21,6 @@ Thumbs.db
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
|
||||
# Claude Code local settings
|
||||
.claude/
|
||||
|
||||
109
CHANGELOG.md
109
CHANGELOG.md
@@ -4,6 +4,115 @@
|
||||
|
||||
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/)。
|
||||
|
||||
## [2.0.1] - 2026-03-30
|
||||
|
||||
### 适配 OpenClaw v2026.3.28
|
||||
|
||||
#### 版本变更
|
||||
- **OC_TESTED_VERSION**: 从 2026.3.13 更新到 2026.3.28
|
||||
- **磁盘空间要求**: 从 1.5GB 提升到 2GB (OpenClaw v2026.3.28 包体积约 200MB)
|
||||
|
||||
#### 兼容性分析
|
||||
- **Node.js 版本**: v2026.3.28 要求 >= 22.14.0 (降低了要求,从 v2026.3.13 的 >= 22.16.0)
|
||||
- **入口文件**: 无变化,仍为 `openclaw.mjs`
|
||||
- **配置 Schema**: 向后兼容,无需迁移
|
||||
- **API**: 向后兼容
|
||||
|
||||
#### 包体积变化
|
||||
- v2026.3.13: ~94MB (4,730 文件)
|
||||
- v2026.3.28: ~200MB (19,887 文件)
|
||||
- 文件数量增加 4x+,包体积增加 2x+
|
||||
|
||||
#### 新增 Plugin SDK 导出 (20+)
|
||||
|
||||
新增 AI 提供商原生支持 SDK:
|
||||
- `plugin-sdk/xai` — xAI (Grok) API 支持
|
||||
- `plugin-sdk/vllm` — vLLM 高性能推理引擎支持
|
||||
- `plugin-sdk/ollama` — Ollama 本地模型原生 SDK
|
||||
- `plugin-sdk/openai` — OpenAI 原生 SDK
|
||||
- `plugin-sdk/sglang` — SGLang 推理引擎支持
|
||||
- `plugin-sdk/chutes` — Chutes AI 平台支持
|
||||
- `plugin-sdk/google` — Google AI SDK
|
||||
- `plugin-sdk/nvidia` — NVIDIA NIM API 支持
|
||||
- `plugin-sdk/venice` — Venice AI 支持
|
||||
- `plugin-sdk/minimax` — MiniMax API 原生 SDK
|
||||
- `plugin-sdk/mistral` — Mistral AI 原生 SDK
|
||||
- `plugin-sdk/qianfan` — 百度千帆大模型 SDK
|
||||
|
||||
新增功能模块 SDK:
|
||||
- `plugin-sdk/zod` — Zod schema 验证支持
|
||||
- `plugin-sdk/setup` — 安装配置向导 SDK
|
||||
- `plugin-sdk/routing` — 模型路由配置 SDK
|
||||
- `plugin-sdk/speech` — 语音处理 SDK
|
||||
- `plugin-sdk/browser` — 浏览器自动化 SDK
|
||||
|
||||
新增顶级导出:
|
||||
- `extension-api` — 扩展 API 入口 (用于插件开发)
|
||||
|
||||
#### 移除的依赖
|
||||
|
||||
以下渠道依赖被移除 (功能整合到核心或不再维护):
|
||||
- `grammy` — Telegram Bot 框架 (改用内置实现)
|
||||
- `@grammyjs/runner` — Telegram 运行器
|
||||
- `@grammyjs/transformer-throttler` — Telegram 限流器
|
||||
- `@whiskeysockets/baileys` — WhatsApp Web API (改用 matrix-js-sdk)
|
||||
|
||||
#### 新增依赖
|
||||
|
||||
核心依赖:
|
||||
- `uuid@^13.0.0` — UUID 生成
|
||||
- `gaxios@7.1.4` — Google API HTTP 客户端
|
||||
- `matrix-js-sdk@41.2.0` — Matrix 协议支持 (替代 WhatsApp)
|
||||
- `@anthropic-ai/vertex-sdk@^0.14.4` — Anthropic Vertex AI 支持
|
||||
|
||||
#### 依赖版本升级
|
||||
|
||||
核心依赖:
|
||||
- `ws`: 8.19.0 → 8.20.0
|
||||
- `hono`: 4.12.7 → 4.12.9
|
||||
- `file-type`: 21.3.2 → 22.0.0
|
||||
- `undici`: 7.24.1 → 7.24.6
|
||||
- `sqlite-vec`: 0.1.7-alpha.2 → 0.1.7
|
||||
|
||||
AI/ML 依赖:
|
||||
- `@mariozechner/pi-ai`: 0.58.0 → 0.63.1
|
||||
- `@mariozechner/pi-tui`: 0.58.0 → 0.63.1
|
||||
- `@mariozechner/pi-agent-core`: 0.58.0 → 0.63.1
|
||||
- `@mariozechner/pi-coding-agent`: 0.58.0 → 0.63.1
|
||||
- `@modelcontextprotocol/sdk`: 1.27.1 → 1.28.0
|
||||
- `@agentclientprotocol/sdk`: 0.16.1 → 0.17.0
|
||||
- `@aws-sdk/client-bedrock`: 3.1009.0 → 3.1019.0
|
||||
|
||||
#### pnpm 配置变更
|
||||
|
||||
新增 `ignoredBuiltDependencies`:
|
||||
- `@discordjs/opus` — 跳过构建
|
||||
- `koffi` — 跳过构建
|
||||
|
||||
新增 `onlyBuiltDependencies`:
|
||||
- `@tloncorp/tlon-skill` — 需要构建
|
||||
|
||||
#### 中间版本变更 (v2026.3.22 ~ v2026.3.24)
|
||||
|
||||
v2026.3.22:
|
||||
- Node.js 最低版本从 22.16.0 降低到 22.14.0
|
||||
- 大量 plugin-sdk 模块重构
|
||||
|
||||
v2026.3.23:
|
||||
- 修复版本发布问题
|
||||
- 稳定性改进
|
||||
|
||||
v2026.3.24:
|
||||
- 依赖安全更新
|
||||
- 性能优化
|
||||
|
||||
#### 升级建议
|
||||
|
||||
1. **磁盘空间**: 确保至少 2GB 可用空间
|
||||
2. **Node.js**: v22.16.0 完全兼容,无需降级
|
||||
3. **配置迁移**: 现有配置向后兼容,无需手动干预
|
||||
4. **备份**: 升级前建议执行 `openclaw backup create --only-config`
|
||||
|
||||
## [2.0.0] - 2026-03-16
|
||||
|
||||
### 重大变更
|
||||
|
||||
@@ -810,15 +810,15 @@ end
|
||||
-- ═══════════════════════════════════════════
|
||||
-- 系统配置检测 API (安装前检测)
|
||||
-- 检测内存和磁盘空间是否满足最低要求
|
||||
-- 要求: 内存 > 1GB, 磁盘可用空间 > 1.5GB
|
||||
-- 要求: 内存 > 1GB, 磁盘可用空间 > 2GB (OpenClaw v2026.3.28+ 包体积约 200MB)
|
||||
-- ═══════════════════════════════════════════
|
||||
function action_check_system()
|
||||
local http = require "luci.http"
|
||||
local sys = require "luci.sys"
|
||||
|
||||
-- 最低要求配置
|
||||
-- 最低要求配置 (v2026.3.28: 包体积 ~200MB, 建议 2GB 可用空间)
|
||||
local MIN_MEMORY_MB = 1024 -- 1GB
|
||||
local MIN_DISK_MB = 1536 -- 1.5GB
|
||||
local MIN_DISK_MB = 2048 -- 2GB
|
||||
|
||||
local result = {
|
||||
memory_mb = 0,
|
||||
|
||||
@@ -112,7 +112,7 @@ act.cfgvalue = function(self, section)
|
||||
html[#html+1] = 'logEl.textContent+="🔍 系统配置检测\\n";'
|
||||
html[#html+1] = 'logEl.textContent+="════════════════════════════════════════\\n";'
|
||||
html[#html+1] = 'logEl.textContent+="内存: "+r.memory_mb+" MB (需要 ≥ 1024 MB) — "+(r.memory_ok?"✅ 通过":"❌ 不达标")+"\\n";'
|
||||
html[#html+1] = 'logEl.textContent+="磁盘: "+r.disk_mb+" MB 可用 (需要 ≥ 1536 MB) — "+(r.disk_ok?"✅ 通过":"❌ 不达标")+"\\n";'
|
||||
html[#html+1] = 'logEl.textContent+="磁盘: "+r.disk_mb+" MB 可用 (需要 ≥ 2048 MB) — "+(r.disk_ok?"✅ 通过":"❌ 不达标")+"\\n";'
|
||||
html[#html+1] = 'logEl.textContent+="\\n";'
|
||||
html[#html+1] = 'if(!r.pass){'
|
||||
html[#html+1] = 'ocCloseSetupDialog();'
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
set -e
|
||||
|
||||
# ── Node.js 版本策略 (双版本兼容) ──
|
||||
# V2: 当前推荐版本,用于 OpenClaw v2026.3.11+ (要求 >= 22.16.0)
|
||||
# V2: 当前推荐版本,用于 OpenClaw v2026.3.22+ (要求 >= 22.14.0,使用 22.16.0 确保兼容)
|
||||
# V1: 旧版兼容,用于 OpenClaw v2026.3.8 及更早版本
|
||||
NODE_VERSION_V2="22.16.0"
|
||||
NODE_VERSION_V1="22.15.1"
|
||||
# 默认使用 V2 版本 (可通过 NODE_VERSION 环境变量覆盖)
|
||||
NODE_VERSION="${NODE_VERSION:-${NODE_VERSION_V2}}"
|
||||
# 经过验证的 OpenClaw 稳定版本 (更新此值需同步测试)
|
||||
OC_TESTED_VERSION="2026.3.13"
|
||||
OC_TESTED_VERSION="2026.3.28"
|
||||
# 用户可通过 OC_VERSION 环境变量覆盖安装版本
|
||||
OC_VERSION="${OC_VERSION:-}"
|
||||
NODE_BASE="/opt/openclaw/node"
|
||||
|
||||
@@ -647,7 +647,9 @@ configure_model() {
|
||||
echo -e " ${CYAN}11)${NC} 硅基流动 SiliconFlow"
|
||||
echo -e " ${CYAN}12)${NC} Ollama (本地模型,无需 API Key)"
|
||||
echo -e " ${CYAN}13)${NC} 腾讯云 Coding Plan (HY T1/TurboS/GLM-5/Kimi)"
|
||||
echo -e " ${CYAN}14)${NC} 自定义 OpenAI 兼容 API"
|
||||
echo -e " ${CYAN}14)${NC} Mistral AI (Mistral Large, Codestral)"
|
||||
echo -e " ${CYAN}15)${NC} 百度千帆 (ERNIE-4.0, ERNIE-3.5)"
|
||||
echo -e " ${CYAN}16)${NC} 自定义 OpenAI 兼容 API"
|
||||
echo -e " ${CYAN}0)${NC} 返回"
|
||||
echo ""
|
||||
prompt_with_default "请选择" "1" choice
|
||||
@@ -1264,6 +1266,70 @@ configure_model() {
|
||||
fi
|
||||
;;
|
||||
14)
|
||||
echo ""
|
||||
echo -e " ${BOLD}Mistral AI 配置${NC}"
|
||||
echo -e " ${YELLOW}获取 API Key: https://console.mistral.ai/api-keys/${NC}"
|
||||
echo ""
|
||||
prompt_with_default "请输入 Mistral API Key" "" api_key
|
||||
if [ -n "$api_key" ]; then
|
||||
auth_set_apikey mistral "$api_key"
|
||||
echo ""
|
||||
echo -e " ${CYAN}可用模型:${NC}"
|
||||
echo -e " ${CYAN}a)${NC} mistral-large-latest — 旗舰模型,最强性能 (推荐)"
|
||||
echo -e " ${CYAN}b)${NC} mistral-medium-latest — 均衡模型"
|
||||
echo -e " ${CYAN}c)${NC} codestral-latest — 代码专用,极速补全"
|
||||
echo -e " ${CYAN}d)${NC} mistral-small-latest — 轻量快速"
|
||||
echo -e " ${CYAN}e)${NC} 手动输入模型名"
|
||||
echo ""
|
||||
prompt_with_default "请选择模型" "a" model_choice
|
||||
case "$model_choice" in
|
||||
a) model_name="mistral-large-latest" ;;
|
||||
b) model_name="mistral-medium-latest" ;;
|
||||
c) model_name="codestral-latest" ;;
|
||||
d) model_name="mistral-small-latest" ;;
|
||||
e) prompt_with_default "请输入模型名称" "mistral-large-latest" model_name ;;
|
||||
*) model_name="mistral-large-latest" ;;
|
||||
esac
|
||||
register_custom_provider mistral "https://api.mistral.ai/v1" "$api_key" "$model_name" "$model_name"
|
||||
register_and_set_model "mistral/${model_name}"
|
||||
echo -e " ${GREEN}✅ Mistral AI 已配置,活跃模型: mistral/${model_name}${NC}"
|
||||
fi
|
||||
;;
|
||||
15)
|
||||
echo ""
|
||||
echo -e " ${BOLD}百度千帆大模型配置${NC}"
|
||||
echo -e " ${YELLOW}获取 API Key: https://console.bce.baidu.com/qianfan/ais/console/onlineService${NC}"
|
||||
echo ""
|
||||
echo -e " ${DIM}提示: 需要 API Key (Access Token) 和可选的 Secret Key${NC}"
|
||||
echo ""
|
||||
prompt_with_default "请输入百度千帆 API Key (Access Token)" "" api_key
|
||||
if [ -n "$api_key" ]; then
|
||||
auth_set_apikey qianfan "$api_key"
|
||||
echo ""
|
||||
echo -e " ${CYAN}可用模型:${NC}"
|
||||
echo -e " ${CYAN}a)${NC} ernie-4.0-8k — 文心一言 4.0 (推荐)"
|
||||
echo -e " ${CYAN}b)${NC} ernie-3.5-8k — 文心一言 3.5"
|
||||
echo -e " ${CYAN}c)${NC} ernie-4.0-turbo-8k — 文心一言 4.0 Turbo"
|
||||
echo -e " ${CYAN}d)${NC} ernie-speed-8k — 文心一言 Speed 极速"
|
||||
echo -e " ${CYAN}e)${NC} 手动输入模型名"
|
||||
echo ""
|
||||
prompt_with_default "请选择模型" "a" model_choice
|
||||
case "$model_choice" in
|
||||
a) model_name="ernie-4.0-8k" ;;
|
||||
b) model_name="ernie-3.5-8k" ;;
|
||||
c) model_name="ernie-4.0-turbo-8k" ;;
|
||||
d) model_name="ernie-speed-8k" ;;
|
||||
e) prompt_with_default "请输入模型名称" "ernie-4.0-8k" model_name ;;
|
||||
*) model_name="ernie-4.0-8k" ;;
|
||||
esac
|
||||
# 百度千帆使用 OpenAI 兼容接口
|
||||
# 注: OpenClaw v2026.3.28+ 支持 qianfan 原生 provider
|
||||
register_custom_provider qianfan "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop" "$api_key" "$model_name" "$model_name"
|
||||
register_and_set_model "qianfan/${model_name}"
|
||||
echo -e " ${GREEN}✅ 百度千帆已配置,活跃模型: qianfan/${model_name}${NC}"
|
||||
fi
|
||||
;;
|
||||
16)
|
||||
echo ""
|
||||
echo -e " ${BOLD}自定义 OpenAI 兼容 API${NC}"
|
||||
echo -e " ${YELLOW}支持任何兼容 OpenAI API 格式的服务商${NC}"
|
||||
|
||||
Reference in New Issue
Block a user