feat: v0.6.0 — 公益AI接口 + Agent灵魂借尸还魂 + 知识库 + 全局AI诊断 + 官网改版

This commit is contained in:
晴天
2026-03-07 19:36:25 +08:00
parent b09f48f0dd
commit 0752dc2a71
55 changed files with 4346 additions and 480 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 KiB

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 KiB

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 284 KiB

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 KiB

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 KiB

After

Width:  |  Height:  |  Size: 152 KiB

BIN
docs/14.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

BIN
docs/15.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

BIN
docs/16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

View File

@@ -0,0 +1,777 @@
# AI 助手功能扩展规划
> 基于现有工具架构TOOL_DEFS + executeTool + getEnabledTools扩展 6 大能力模块。
> 每个模块独立开关,遵循现有的 `_config.tools.xxx` + 设置面板 toggle 模式。
---
## 当前架构概览
```
TOOL_DEFS = {
system: [get_system_info] // 始终可用
process: [list_processes, check_port] // 始终可用
interaction: [ask_user] // 始终可用
terminal: [run_command] // 开关控制
fileOps: [read_file, write_file, list_directory] // 开关控制
}
_config.tools = { terminal: true/false, fileOps: true/false }
```
扩展后:
```
TOOL_DEFS = {
...existing,
docker: [docker_list, docker_exec, docker_logs, wsl_exec] // 新增
webSearch: [web_search, fetch_url] // 新增
ssh: [ssh_exec, ssh_read_file, ssh_write_file] // 新增
knowledge: [search_knowledge] // 新增
}
_config.tools = {
...existing,
docker: false, // 默认关闭
webSearch: false, // 默认关闭
ssh: false, // 默认关闭
knowledge: false, // 默认关闭
}
```
---
## 模块一Docker / WSL 管理工具
### 场景
- 用户的 OpenClaw 可能安装在 Docker 容器或 WSL 中
- 本地检测不到时,帮用户在容器/WSL 内操作
- 查看容器日志、进入容器执行命令、管理容器生命周期
### 工具定义
| 工具名 | 描述 | 参数 | 危险等级 |
|--------|------|------|----------|
| `docker_list` | 列出 Docker 容器 | `filter?`, `all?` | 安全 |
| `docker_exec` | 在容器内执行命令 | `container`, `command` | ⚠️ 危险 |
| `docker_logs` | 查看容器日志 | `container`, `lines?` | 安全 |
| `docker_compose` | 执行 docker-compose 命令 | `action`, `file?`, `service?` | ⚠️ 危险 |
| `wsl_exec` | 在 WSL 内执行命令 | `distro?`, `command` | ⚠️ 危险 |
| `wsl_list` | 列出 WSL 发行版 | — | 安全 |
### 后端实现
```
Tauri (Rust):
- docker_list → Command::new("docker").args(["ps", ...])
- docker_exec → Command::new("docker").args(["exec", container, ...])
- wsl_exec → Command::new("wsl").args(["-d", distro, "-e", ...]) (Windows only)
dev-api.js (Web):
- execSync('docker ps --format json')
- execSync(`docker exec ${container} ${command}`)
- execSync(`wsl -d ${distro} -e ${command}`) (Windows only)
```
### 安全围栏
- `docker_exec` / `wsl_exec` 归入 DANGEROUS_TOOLS
- `docker rm`, `docker rmi`, `docker system prune` 归入 CRITICAL_PATTERNS
### UI 扩展
- 设置面板工具权限 tab 新增 toggle
```
Docker / WSL 工具 — 允许管理容器和 WSL 环境
```
### 内置技能卡片
```js
{
id: 'detect-docker-openclaw',
icon: '🐳',
name: '检测 Docker/WSL 中的 OpenClaw',
desc: '扫描 Docker 容器和 WSL查找 OpenClaw 安装',
tools: ['docker'],
prompt: `请帮我检查 Docker 和 WSL 中是否安装了 OpenClaw。
1. 调用 get_system_info 判断操作系统
2. 用 docker_list 列出所有容器,过滤包含 openclaw/gateway 的
3. 如果是 Windows用 wsl_list 列出 WSL 发行版
4. 对每个 WSL 发行版,用 wsl_exec 执行 "which openclaw" 检测
5. 汇总发现的 OpenClaw 实例及其状态`
}
```
### 优先级:🔴 高(解决用户最常见困惑)
### 工时估算1-2 天
---
## 模块二:联网搜索工具
### 场景
- 用户遇到不常见的错误AI 知识库可能没有
- 搜索 GitHub Issues、文档、Stack Overflow 找到解决方案
- 查找最新版本信息、API 文档等
### 工具定义
| 工具名 | 描述 | 参数 | 危险等级 |
|--------|------|------|----------|
| `web_search` | 联网搜索关键词 | `query`, `max_results?` | 安全 |
| `fetch_url` | 抓取网页内容 | `url` | 安全 |
### 后端实现方案3 选 1
#### 方案 ADuckDuckGo Instant Answer API推荐免费无 Key
```js
// 搜索
const resp = await fetch(`https://api.duckduckgo.com/?q=${encodeURIComponent(query)}&format=json`)
// 但 Instant Answer 只返回摘要,不返回搜索结果列表
// 实际搜索需要用 DuckDuckGo HTML 页面解析或第三方库
```
#### 方案 BSearXNG 代理(自托管,最灵活)
```js
// 部署一个 SearXNG 实例,或者用公共实例
const resp = await fetch(`https://searx.example.com/search?q=${query}&format=json`)
```
#### 方案 CJina Reader API推荐搭配使用免费
```js
// 将任意 URL 转为纯文本/Markdown
const resp = await fetch(`https://r.jina.ai/${targetUrl}`)
const text = await resp.text()
```
### 推荐组合
- **搜索**:使用 DuckDuckGo 的 `html.duckduckgo.com/html/?q=xxx` 页面解析结果
- **内容抓取**:使用 Jina Reader `r.jina.ai/URL` 获取纯文本
- 两者都 **免费无 Key**,无需用户配置
### 系统提示词补充
```
## web_search 使用指南
当你无法确定答案或需要最新信息时,可以使用 web_search 搜索互联网。
搜索后,如果需要更多内容,可以用 fetch_url 抓取具体页面。
搜索技巧:
- 加 site:github.com 搜索 GitHub
- 加 site:stackoverflow.com 搜索 StackOverflow
- 搜索错误信息时,用引号包裹关键错误文本
```
### 安全围栏
- 搜索和抓取不涉及破坏性操作,不归入 DANGEROUS_TOOLS
- 但需要网络请求添加超时保护10 秒)
- URL 抓取限制最大内容长度100KB → 截断)
### UI 扩展
```
联网搜索 — 允许搜索互联网和抓取网页内容(需联网)
```
### 优先级:🔴 高(大幅提升问题解决能力)
### 工时估算0.5-1 天
---
## 模块三SSH 远程管理工具
### 场景
- 用户的 OpenClaw 部署在远程服务器上
- 帮用户远程安装、配置、排查 OpenClaw
- 远程查看日志、重启服务、修改配置
### 工具定义
| 工具名 | 描述 | 参数 | 危险等级 |
|--------|------|------|----------|
| `ssh_exec` | 在远程服务器执行命令 | `connection_id`, `command` | ⚠️ 危险 |
| `ssh_read_file` | 读取远程文件 | `connection_id`, `path` | 安全 |
| `ssh_write_file` | 写入远程文件 | `connection_id`, `path`, `content` | ⚠️ 危险 |
### 配置数据结构
```js
_config.sshConnections = [
{
id: 'my-server',
name: '生产服务器',
host: '192.168.1.100',
port: 22,
user: 'root',
authType: 'key', // 'key' | 'password'
keyPath: '~/.ssh/id_rsa',
// password 不存储在 localStorage每次询问或用 keytar 安全存储
}
]
```
### 后端实现
```
Tauri (Rust):
- 使用 ssh2 crate 或调用系统 ssh CLI
- ssh_exec → Command::new("ssh").args(["-p", port, "user@host", command])
- ssh_read_file → ssh + cat
- ssh_write_file → 通过 stdin pipe 写入
dev-api.js (Web):
- 使用 node-ssh 或 ssh2 npm 包
- 或者直接调用 ssh CLI
```
### 设置 UI新增 tab「远程连接」
```
┌─────────────────────────────────────────────┐
│ 模型配置 │ 工具权限 │ 远程连接 │ 助手人设 │
├─────────────────────────────────────────────┤
│ │
│ ┌─ 生产服务器 ──────────────── [编辑] [删] │
│ │ root@192.168.1.100:22 (密钥认证) │
│ └──────────────────────────────────────────│
│ │
│ ┌─ 测试服务器 ──────────────── [编辑] [删] │
│ │ admin@10.0.0.5:22 (密码认证) │
│ └──────────────────────────────────────────│
│ │
│ [+ 添加连接] │
│ │
│ 提示:推荐使用 SSH 密钥认证。 │
│ 生成密钥ssh-keygen -t ed25519 │
│ 复制公钥ssh-copy-id user@host │
│ │
└─────────────────────────────────────────────┘
```
### 安全围栏
- `ssh_exec`, `ssh_write_file` 归入 DANGEROUS_TOOLS
- 密码认证:每次执行时用 ask_user 确认,或使用系统密钥链
- SSH 密钥路径验证:检查文件是否存在
- 关键命令rm -rf, reboot 等)在远程同样走 CRITICAL_PATTERNS
### 系统提示词补充
```
## SSH 远程管理
用户可能配置了远程服务器连接。当操作远程服务器时:
- 先用 ask_user 确认要操作哪个连接
- 远程命令比本地更谨慎,优先使用只读操作
- 修改配置前先备份cp xxx xxx.bak
```
### 内置技能卡片
```js
{
id: 'remote-manage',
icon: '🌐',
name: '远程管理 OpenClaw',
desc: '通过 SSH 连接远程服务器,管理 OpenClaw',
tools: ['ssh', 'fileOps'],
prompt: `请帮我管理远程服务器上的 OpenClaw。
1. 获取系统信息,列出已配置的 SSH 连接
2. 用 ask_user 让我选择要操作的服务器
3. 用 ssh_exec 检查远程 OpenClaw 状态
4. 检查 Gateway 进程和端口
5. 读取远程配置和日志
6. 汇总远程 OpenClaw 状态报告`
}
```
### 优先级:🟡 中(用户量较少但价值极高)
### 工时估算2-3 天
---
## 模块四:知识库 + 灵魂移植(借尸还魂 🔥)
### 核心理念
OpenClaw 的 Agent 有一套完整的**身份系统**,由工作区引导文件定义:
```
~/.openclaw/workspace/ ← Agent 的"灵魂"所在
├── AGENTS.md ← 操作指令、规则、记忆管理方式
├── SOUL.md ← 人设、边界、语气("Who You Are"
├── IDENTITY.md ← 名称、物种、风格、表情符号、头像
├── USER.md ← 用户档案(名字、称呼、时区、偏好)
├── TOOLS.md ← 工具本地笔记SSH 配置、设备名等)
├── HEARTBEAT.md ← 心跳任务清单
├── MEMORY.md ← 精选长期记忆(仅主会话加载)
└── memory/ ← 每日记忆日志
├── 2026-03-04-1609.md
└── ...
~/.openclaw/agents/<agentId>/agent/ ← Agent 的运行时状态
├── models.json ← 模型提供商配置baseUrl + apiKey + models
├── auth-profiles.json ← 认证配置文件
└── auth.json
```
**"借尸还魂"不是复用知识库,而是完整接管 Agent 的灵魂**——
ClawPanel 的 AI 助手直接读取这些文件,像 OpenClaw 一样把它们注入 system prompt
从而变成那个 Agent有他的名字、他的性格、他的记忆、他认识的用户。
### 4A灵魂移植Agent Identity Takeover
#### 工作流程
1. **扫描** `~/.openclaw/workspace/``~/.openclaw/agents/` 目录
2. **发现** 所有可用的 Agent 身份main、test 等)
3. **用户选择** 要附身的 Agent
4. **读取** 该 Agent 的全部引导文件:
- `SOUL.md` → 注入为人设(替换 ClawPanel 助手的默认人设)
- `IDENTITY.md` → 提取名称/表情/风格(替换助手名称和性格描述)
- `USER.md` → 注入用户上下文(知道用户叫什么、偏好什么)
- `AGENTS.md` → 注入操作规则Agent 的行为准则)
- `TOOLS.md` → 注入工具笔记
- `MEMORY.md` → 注入长期记忆
- `memory/` → 注入最近的每日记忆(最近 3 天)
5. **注入**`buildSystemPrompt()` 中,完全替代默认人设
#### 实现
```js
// 新增配置项
_config.soulSource = null // null = 使用 ClawPanel 默认 | 'openclaw:main' | 'openclaw:test' | 'custom'
_config.soulCache = null // 缓存读取的灵魂文件内容
// buildSystemPrompt 改造
function buildSystemPrompt() {
if (_config.soulSource?.startsWith('openclaw:')) {
// 借尸还魂模式:使用 OpenClaw Agent 的灵魂
return buildOpenClawSoulPrompt()
}
// 默认模式:使用 ClawPanel 自带的系统提示词
return buildDefaultPrompt()
}
function buildOpenClawSoulPrompt() {
const soul = _config.soulCache
if (!soul) return buildDefaultPrompt() // fallback
let prompt = ''
// 1. 身份注入
if (soul.identity) {
prompt += `# Identity\n${soul.identity}\n\n`
}
// 2. 灵魂注入(人设、边界、语气)
if (soul.soul) {
prompt += `# Soul\n${soul.soul}\n\n`
}
// 3. 用户上下文
if (soul.user) {
prompt += `# User\n${soul.user}\n\n`
}
// 4. 操作规则
if (soul.agents) {
prompt += `# Operating Instructions\n${soul.agents}\n\n`
}
// 5. 工具笔记
if (soul.tools) {
prompt += `# Tool Notes\n${soul.tools}\n\n`
}
// 6. 长期记忆
if (soul.memory) {
prompt += `# Long-term Memory\n${soul.memory}\n\n`
}
// 7. 最近的每日记忆
if (soul.recentMemories?.length) {
prompt += `# Recent Memory\n`
for (const m of soul.recentMemories) {
prompt += `## ${m.date}\n${m.content}\n\n`
}
}
// 8. 追加 ClawPanel 特有的工具说明(保持工具能力)
prompt += buildToolInstructions()
return prompt
}
```
#### 灵魂加载函数
```js
async function loadOpenClawSoul(agentId = 'main') {
const home = await getHomeDir()
const ws = `${home}/.openclaw/workspace` // 工作区是全局的,不按 agentId 分
const readSafe = async (path) => {
try { return await api.assistantReadFile(path) }
catch { return null }
}
const soul = {
identity: await readSafe(`${ws}/IDENTITY.md`),
soul: await readSafe(`${ws}/SOUL.md`),
user: await readSafe(`${ws}/USER.md`),
agents: await readSafe(`${ws}/AGENTS.md`),
tools: await readSafe(`${ws}/TOOLS.md`),
memory: await readSafe(`${ws}/MEMORY.md`),
recentMemories: [],
}
// 读取最近 3 天的每日记忆
try {
const memDir = await api.assistantListDir(`${ws}/memory`)
const files = memDir.split('\n').filter(f => f.match(/\d{4}-\d{2}-\d{2}/))
const recent = files.sort().slice(-3)
for (const f of recent) {
const content = await readSafe(`${ws}/memory/${f.trim()}`)
if (content) soul.recentMemories.push({ date: f.trim(), content })
}
} catch {}
return soul
}
```
#### UI设置面板「助手人设」Tab 改造
```
┌─────────────────────────────────────────────┐
│ 模型配置 │ 工具权限 │ 知识库 │ 远程连接 │ 人设 │
├─────────────────────────────────────────────┤
│ │
│ 身份来源 │
│ ┌──────────────────────────────────────────│
│ │ ● ClawPanel 默认人设 │ ← 当前默认
│ │ ○ OpenClaw Agent 身份(借尸还魂) │ ← 新增
│ │ ○ 自定义人设 │
│ └──────────────────────────────────────────│
│ │
│ ─── 当选择「OpenClaw Agent」时显示 ──── │
│ │
│ 选择 Agent: [main ▼] │
│ │
│ 📜 灵魂文件预览 │
│ ┌──────────────────────────────────────────│
│ │ SOUL.md ✅ 已加载 (1.6KB) │
│ │ IDENTITY.md ✅ 已加载 (636B) │
│ │ USER.md ✅ 已加载 (237B) │
│ │ AGENTS.md ✅ 已加载 (7.8KB) │
│ │ TOOLS.md ✅ 已加载 (860B) │
│ │ MEMORY.md ❌ 未找到 │
│ │ memory/ 📝 2 个日志文件 │
│ └──────────────────────────────────────────│
│ │
│ [👻 附身!] [🔄 刷新] │
│ │
│ ⚠️ 附身后,助手将使用该 Agent 的人格、 │
│ 记忆和用户偏好。可随时切回默认。 │
│ │
│ ─── 当选择「ClawPanel 默认」时显示 ──── │
│ │
│ 助手名称: [晴辰助手 ] │
│ 助手性格: [________________________] │
│ │
└─────────────────────────────────────────────┘
```
#### 附身后的效果
| 维度 | 默认模式 | 附身模式 |
|------|----------|----------|
| 名称 | "晴辰助手" | IDENTITY.md 中的名称 |
| 性格 | 简洁专业 | SOUL.md 定义的风格 |
| 称呼用户 | "你" | USER.md 中的称呼(如"爸爸" |
| 行为规则 | ClawPanel 内置 | AGENTS.md 的规则体系 |
| 记忆 | 无 | MEMORY.md + 每日记忆 |
| 工具知识 | ClawPanel 内置 | TOOLS.md 的本地笔记 |
| 工具能力 | 保持不变 | 保持 ClawPanel 的工具 |
**关键设计**:附身只替换"灵魂"system prompt**工具能力保持 ClawPanel 的**。
因为 OpenClaw 的工具exec/read/edit/write和 ClawPanel 的工具本质相同,
但 ClawPanel 有独有的 docker/ssh/搜索等扩展工具,这些要保留。
### 4B自定义知识库
在灵魂移植之外,仍然支持用户上传额外的知识文档:
#### 数据存储
```
~/.openclaw/clawpanel-kb/
├── index.json # 知识库索引
├── docs/
│ ├── api-guide.md # 用户上传的文档
│ ├── faq.md
│ └── deploy-notes.txt
└── chunks/ # 分块索引(可选,用于大文档)
└── ...
```
#### 实现方案
**V1简单方案**
- 小文档(<8KB直接全文注入 system prompt 尾部
- 大文档做关键词搜索(正则匹配 + 上下文窗口)
- 总注入 token 上限4000 tokens
- 知识库和灵魂移植可叠加使用
**V2进阶方案**
- embedding 语义搜索
- `search_knowledge` 工具让 AI 按需检索
### 优先级<E7BAA7> 高(灵魂移植是杀手级差异化功能)
### 工时估算:灵魂移植 1-2 天,自定义知识库 V1 额外 1 天
---
## 模块五:模型配置自动导入
### 场景
- 用户已安装 OpenClaw 并配置了模型
- ClawPanel AI 助手需要单独配置模型(目前手动填写)
- 一键从 OpenClaw 配置导入,省去重复配置
### 实现
#### 数据来源(两个层级)
**层级 1全局配置** `~/.openclaw/openclaw.json`
```json
{
"models": {
"providers": {
"shengsuanyun": {
"baseUrl": "http://127.0.0.1:8082/v1",
"apiKey": "sk-xxx",
"api": "openai-completions"
}
}
}
}
```
**层级 2Agent 模型注册表** `~/.openclaw/agents/<agentId>/agent/models.json`
```json
{
"providers": {
"openai": {
"baseUrl": "http://127.0.0.1:8082/v1",
"apiKey": "sk-eB3ybVNFvqB4fGrTUp3F8Lq16QxF7tut",
"api": "openai-completions",
"models": [
{ "id": "gpt-5.4", "name": "gpt-5.4", "contextWindow": 200000, "maxTokens": 8192 },
{ "id": "gpt-5.2-codex", "name": "gpt-5.2-codex", ... }
]
}
}
}
```
**推荐优先读取 Agent 的 models.json**——它有完整的 baseUrl + apiKey + models 列表,
一键就能填充 ClawPanel 助手的配置。
#### 读取逻辑
```js
async function discoverOpenClawModels() {
const home = await getHomeDir()
const results = []
// 1. 扫描所有 Agent 的 models.json
try {
const agents = await api.assistantListDir(`${home}/.openclaw/agents`)
for (const agentId of agents.split('\n').map(s => s.trim()).filter(Boolean)) {
try {
const raw = await api.assistantReadFile(`${home}/.openclaw/agents/${agentId}/agent/models.json`)
const data = JSON.parse(raw)
for (const [providerId, provider] of Object.entries(data.providers || {})) {
results.push({
source: `Agent: ${agentId}`,
providerId,
baseUrl: provider.baseUrl,
apiKey: provider.apiKey,
apiType: provider.api === 'openai-completions' ? 'openai' : provider.api,
models: (provider.models || []).map(m => m.id || m.name),
})
}
} catch {}
}
} catch {}
// 2. 读取全局 openclaw.json 作为补充
try {
const raw = await api.assistantReadFile(`${home}/.openclaw/openclaw.json`)
const config = JSON.parse(raw)
for (const [providerId, provider] of Object.entries(config.models?.providers || {})) {
// 去重:如果 Agent models.json 已有相同 providerId跳过
if (!results.find(r => r.providerId === providerId)) {
results.push({
source: '全局配置',
providerId,
baseUrl: provider.baseUrl,
apiKey: provider.apiKey,
apiType: 'openai',
models: [], // 全局配置没有 models 列表
})
}
}
} catch {}
return results
}
```
#### UI模型配置 tab 新增「导入」按钮
```
┌─────────────────────────────────────────────┐
│ API Base URL API 类型 │
│ [________________________] [OpenAI 兼容 ▼] │
│ │
│ API Key [测试] [拉取] [📥 导入] │ ← 新增「导入」按钮
│ [________________________] │
│ │
│ 模型 温度 │
│ [________________________] [0.7] │
│ │
└─────────────────────────────────────────────┘
```
点击「📥 导入」弹出选择面板:
```
┌─────────────────────────────────────────────┐
│ 从 OpenClaw 导入模型配置 │
│ │
│ 检测到以下已配置的服务商: │
│ │
│ ○ OpenAI │
│ https://api.openai.com/v1 │
│ 模型: gpt-4o, gpt-4o-mini │
│ │
│ ○ DeepSeek │
│ https://api.deepseek.com │
│ 模型: deepseek-chat, deepseek-reasoner │
│ │
│ ○ 本地 Ollama │
│ http://127.0.0.1:11434/v1 │
│ 模型: qwen2.5:7b │
│ │
│ 选择一个服务商,自动填充配置。 │
│ [取消] [导入] │
└─────────────────────────────────────────────┘
```
### 后端
```
Tauri: 已有 read_openclaw_config 命令
dev-api.js: 已有 read_config handler
// 只需在前端加一个读取+解析+填充的逻辑
```
### 优先级:🔴 高(零成本,纯前端,极大提升体验)
### 工时估算0.5 天
---
## 实施路线图
### Phase 1快速见效1-2 天)
| 序号 | 功能 | 工时 | 理由 |
|------|------|------|------|
| 1 | **模型配置自动导入** | 0.5d | 读 Agent models.json → 一键填充,纯前端零风险 |
| 2 | **联网搜索工具** | 0.5-1d | DuckDuckGo + Jina免费无 Key |
| 3 | **灵魂移植(借尸还魂)** | 1-2d | 杀手级差异化——读 SOUL/IDENTITY/USER/AGENTS/MEMORY → 变身 |
### Phase 2核心扩展2-3 天)
| 序号 | 功能 | 工时 | 理由 |
|------|------|------|------|
| 4 | **Docker/WSL 工具** | 1-2d | 解决用户最常见的安装困惑 |
| 5 | **自定义知识库 V1** | 1d | 用户上传 md/txt → 注入 prompt |
### Phase 3高级功能3-5 天)
| 序号 | 功能 | 工时 | 理由 |
|------|------|------|------|
| 6 | **SSH 远程管理** | 2-3d | 价值最高但复杂度也最高 |
| 7 | **知识库 V2语义搜索** | 3-5d | 依赖 embedding API |
---
## 设置面板 Tab 规划
当前 3 个 Tab → 扩展为 5 个 Tab
```
模型配置 │ 工具权限 │ 知识库 │ 远程连接 │ 助手人设
```
### 工具权限 Tab 最终形态
```
基础工具
☑ 终端工具 — 允许执行 Shell 命令
☑ 文件工具 — 允许读写文件和浏览目录
扩展工具
☐ Docker/WSL — 允许管理容器和 WSL 环境
☐ 联网搜索 — 允许搜索互联网和抓取网页
☐ SSH 远程 — 允许连接远程服务器(需先配置连接)
☐ 知识库 — 允许检索知识库内容
进程列表、端口检测、系统信息工具始终可用(非聊天模式下)。
```
---
## 技术注意事项
### 1. Token 预算管理
灵魂移植 + 知识库注入会占用 context window需要精细管理
| 组件 | 预算 | 说明 |
|------|------|------|
| ClawPanel 基础 prompt | ~2000 tokens | 产品介绍、工具指南、技能卡片 |
| SOUL.md | ~500 tokens | 人设通常简短 |
| IDENTITY.md | ~200 tokens | 名称/风格 |
| USER.md | ~200 tokens | 用户档案 |
| AGENTS.md | ~3000 tokens | 操作规则(最大,可截断) |
| TOOLS.md | ~300 tokens | 工具笔记 |
| MEMORY.md | ~2000 tokens | 长期记忆(截断保留最近部分) |
| 每日记忆 (3天) | ~1500 tokens | 自动截断 |
| 自定义知识库 | ~4000 tokens | 用户上传文档 |
| 搜索结果 | ~2000 tokens | web_search 返回内容 |
| **总计上限** | **~16000 tokens** | 留足空间给对话历史 |
策略:
- AGENTS.md 超过 3000 tokens 时截断尾部,保留前面的核心规则
- MEMORY.md 超过 2000 tokens 时只保留最后 2000 tokens
- 每日记忆超过 500 tokens/天时截断
- 灵魂文件加载时计算总 token 并在 UI 中显示
### 2. 跨平台兼容
- Docker CLI 在 Windows/Mac/Linux 都可用
- WSL 仅 Windows
- SSH 密钥路径Windows 用 `%USERPROFILE%\.ssh\`Mac/Linux 用 `~/.ssh/`
### 3. 安全存储
- SSH 密码/API Key
- Tauri 模式:使用 keytar 或 tauri-plugin-store 加密存储
- Web 模式:仅支持密钥认证(不存储密码)
- 知识库文件:存储在 `~/.openclaw/` 下,与用户数据同目录
### 4. 工具发现
AI 模型需要知道哪些工具可用。当前已在 `buildSystemPrompt()` 中列出技能卡片。
新增工具后,需要在系统提示词中补充使用指南(类似现有的 `ask_user` 指南)。
---
## 文件变更预估
| 文件 | 变更 |
|------|------|
| `src/pages/assistant.js` | TOOL_DEFS 新增 4 类 · executeTool 新增 case · getEnabledTools 新增分支 · 设置面板 UI · 模型导入弹窗 |
| `src-tauri/src/commands/assistant.rs` | 新增 Rust 命令docker_*, wsl_*, ssh_*, web_search, fetch_url |
| `scripts/dev-api.js` | 新增 Web 模式 handler同上 |
| `src/style/assistant.css` | 知识库管理 UI · SSH 连接管理 UI · 导入弹窗样式 |
| `src/pages/assistant.js` (prompt) | 系统提示词新增各工具使用指南 |

View File

@@ -18,7 +18,7 @@
<meta property="og:image" content="https://claw.qt.cool/00.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="675">
<meta property="og:image:alt" content="ClawPanel AI 助手截图">
<meta property="og:image:alt" content="ClawPanel 仪表盘">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="ClawPanel - OpenClaw AI Agent 可视化管理面板">
<meta name="twitter:description" content="基于 Tauri v2 的跨平台桌面应用。多模型配置、实时 AI 聊天、Agent 管理、内网穿透,一站式管理你的 AI 智能体。">
@@ -34,7 +34,7 @@
"description": "OpenClaw AI Agent 可视化管理面板,基于 Tauri v2 的跨平台桌面应用。支持仪表盘监控、多模型配置、实时 AI 聊天、记忆管理、Agent 管理、网关配置、内网穿透等功能。",
"url": "https://claw.qt.cool/",
"downloadUrl": "https://github.com/qingchencloud/clawpanel/releases/latest",
"softwareVersion": "0.5.7",
"softwareVersion": "0.6.0",
"author": {
"@type": "Organization",
"name": "晴辰云 QingchenCloud",
@@ -206,13 +206,13 @@
.screenshot-frame img { width: 100%; display: block; }
/* ══════════════ Gallery ══════════════ */
.gallery-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin-bottom: 24px; }
.gallery-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-bottom: 24px; }
.gallery-card { border-radius: 12px; overflow: hidden; border: 1px solid var(--border); box-shadow: var(--card-shadow); transition: transform 0.4s cubic-bezier(0.16,1,0.3,1), box-shadow 0.4s, border-color 0.4s; cursor: zoom-in; position: relative; }
.gallery-card:hover { transform: translateY(-4px) scale(1.02); box-shadow: 0 12px 40px -8px rgba(99,102,241,0.2); border-color: var(--border-h); }
.gallery-card img { width: 100%; display: block; }
.gallery-label { position: absolute; bottom: 0; left: 0; right: 0; padding: 8px 12px; background: linear-gradient(transparent, rgba(0,0,0,0.65)); color: #fff; font-size: 13px; font-weight: 600; opacity: 0; transition: opacity 0.3s; }
.gallery-card:hover .gallery-label { opacity: 1; }
.info-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.info-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.info-card { border-radius: 16px; border: 1px solid var(--border); background: var(--bg-card); backdrop-filter: blur(8px); padding: 20px; }
.info-card .ic { font-size: 18px; margin-bottom: 8px; }
.info-card h4 { font-size: 14px; font-weight: 700; margin-bottom: 4px; }
@@ -452,6 +452,7 @@
<a href="#deploy" class="nav-link">部署</a>
<a href="#docs" class="nav-link">文档</a>
<a href="#community" class="nav-link">社区</a>
<a href="#ai-plan" class="nav-link">活动</a>
<a href="#download" class="nav-link">下载</a>
<a href="https://github.com/qingchencloud/clawpanel" target="_blank" rel="noopener" class="nav-link">GitHub</a>
<button id="theme-toggle" class="theme-btn" aria-label="切换主题">
@@ -477,6 +478,7 @@
<a href="#deploy" class="mobile-menu-link mobile-link">部署</a>
<a href="#docs" class="mobile-menu-link mobile-link">文档</a>
<a href="#community" class="mobile-menu-link mobile-link">社区</a>
<a href="#ai-plan" class="mobile-menu-link mobile-link">活动</a>
<a href="https://github.com/qingchencloud/clawpanel" target="_blank" rel="noopener" class="mobile-menu-link">GitHub ↗</a>
</div>
</div>
@@ -506,7 +508,7 @@
</a>
</div>
<div class="reveal hero-image-wrap" data-delay="300">
<img src="./00.png" alt="ClawPanel AI 助手" onclick="openLightbox(this.src)" loading="eager">
<img src="./01.png" alt="ClawPanel AI 助手 — 8 大技能卡片" onclick="openLightbox(this.src)" loading="eager">
<div class="hero-glow"></div>
</div>
</div>
@@ -562,149 +564,132 @@
<p class="reveal section-desc">一个面板,管理 OpenClaw 的方方面面</p>
</div>
<!-- 🔥 AI 助手(工具调用) -->
<!-- 仪表盘 -->
<div class="showcase-row">
<div class="reveal screenshot-frame img-first" onclick="openLightbox('./00.png')"><img src="./00.png" alt="AI 助手 — 8 大技能卡片" loading="lazy"></div>
<div class="reveal screenshot-frame img-first" onclick="openLightbox('./00.png')"><img src="./00.png" alt="ClawPanel 仪表盘" loading="lazy"></div>
<div>
<div class="reveal showcase-tag" style="color:#f43f5e;background:rgba(244,63,94,0.1)"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09z"/><path d="M18.259 8.715L18 9.75l-.259-1.035a3.375 3.375 0 00-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 002.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 002.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 00-2.456 2.456z"/></svg> 🔥 核心亮点</div>
<h3 class="reveal showcase-title">内置 AI 助手 — 帮你管理 OpenClaw</h3>
<p class="reveal showcase-desc">不只是聊天——AI 助手能<strong>一键安装 OpenClaw</strong>、自动读取配置、浏览目录、执行命令帮你诊断问题、修复错误。8 大技能卡片一键触发,新手也能轻松管理</p>
<div class="reveal showcase-tag" style="color:#f43f5e;background:rgba(244,63,94,0.1)"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/></svg> 全景概览</div>
<h3 class="reveal showcase-title">仪表盘 — 运行状态一目了然</h3>
<p class="reveal showcase-desc">Gateway 运行状态、版本信息、Agent 数量、模型池总览,搭配内网穿透状态、基础服务监控和实时日志流。一屏掌握 OpenClaw 所有运行指标</p>
<ul class="reveal showcase-list">
<li><span class="check"></span> 一键安装 &amp; 升级 OpenClaw</li>
<li><span class="check"></span> 终端执行 &amp; 文件读写 &amp; 目录浏览</li>
<li><span class="check"></span> 4 种模式(聊天/规划/执行/无限)</li>
<li><span class="check"></span> 危险操作二次确认,安全可控</li>
<li><span class="check"></span> 独立模型配置,兼容任意 OpenAI 格式 API</li>
<li><span class="check"></span> Gateway / 隧道 / 服务实时状态卡片</li>
<li><span class="check"></span> 配置版本标识 &amp; 最近备份时间</li>
<li><span class="check"></span> 并行推理队列 &amp; 工作区文件隔离</li>
<li><span class="check"></span> 重启 / 检查更新 / 创建备份快捷操作</li>
</ul>
</div>
</div>
<!-- AI 助手实战:工具调用 -->
<!-- AI 助手设置 — 模型配置 + 公益 AI 接口 -->
<div class="showcase-row">
<div>
<div class="reveal showcase-tag" style="color:#f43f5e;background:rgba(244,63,94,0.1)"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg> AI 实战</div>
<h3 class="reveal showcase-title">AI 自动调用工具诊断问题</h3>
<p class="reveal showcase-desc">点击「检查配置」技能卡片AI 自动执行:获取系统信息 → 列出目录 → 读取 openclaw.json → 读取 models.json → 生成健康检查报告。全程可视化,每步工具调用的参数和结果一目了然</p>
<div class="reveal showcase-tag" style="color:#f43f5e;background:rgba(244,63,94,0.1)"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09z"/><path d="M18.259 8.715L18 9.75l-.259-1.035a3.375 3.375 0 00-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 002.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 002.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 00-2.456 2.456z"/></svg> 开箱即用</div>
<h3 class="reveal showcase-title">公益 AI 接口 — 零成本开始</h3>
<p class="reveal showcase-desc">内置<strong>公益 AI 接口计划</strong>GPT-5 全系列模型免费使用Token 费用由项目组内部承担。选择模型、一键接入,无需注册、无需付费。也支持接入任意 OpenAI 兼容 API</p>
<ul class="reveal showcase-list">
<li><span class="check"></span> 实时工具调用可视化(参数 + 结果 + 状态)</li>
<li><span class="check"></span> AI 自动编排多步骤诊断流程</li>
<li><span class="check"></span> 生成结构化健康检查报告</li>
<li><span class="check"></span> 发现问题自动给出修复建议</li>
<li><span class="check"></span> 公益接口一键接入,零门槛</li>
<li><span class="check"></span> GPT-5 全系列模型可选</li>
<li><span class="check"></span> 兼容 Chat Completions &amp; Responses API</li>
<li><span class="check"></span> 独立配置,无需安装 OpenClaw</li>
</ul>
</div>
<div class="reveal screenshot-frame" onclick="openLightbox('./11.png')"><img src="./11.png" alt="AI 助手工具调用实战" loading="lazy"></div>
<div class="reveal screenshot-frame" onclick="openLightbox('./02.png')"><img src="./02.png" alt="AI 助手设置 — 公益 AI 接口一键接入" loading="lazy"></div>
</div>
<!-- AI 助手设置 -->
<!-- AI 助手人设 — Agent 灵魂 -->
<div class="showcase-row">
<div class="reveal screenshot-frame img-first" onclick="openLightbox('./12.png')"><img src="./12.png" alt="AI 助手设置" loading="lazy"></div>
<div class="reveal screenshot-frame img-first" onclick="openLightbox('./05.png')"><img src="./05.png" alt="AI 助手人设 — Agent 灵魂加载" loading="lazy"></div>
<div>
<div class="reveal showcase-tag" style="color:#f43f5e;background:rgba(244,63,94,0.1)"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/></svg> 灵活配置</div>
<h3 class="reveal showcase-title">独立模型配置,开箱即用</h3>
<p class="reveal showcase-desc">AI 助手使用独立的模型配置,不依赖 OpenClaw Gateway。填入任意兼容 OpenAI 格式的 APIDeepSeek、Kimi、通义千问等即可开始使用。自动兼容 Chat Completions 和 Responses 两种 API 格式</p>
<div class="reveal showcase-tag" style="color:#f43f5e;background:rgba(244,63,94,0.1)"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg> 借尸还魂</div>
<h3 class="reveal showcase-title">继承 Agent 人格与记忆</h3>
<p class="reveal showcase-desc">从 OpenClaw Agent 加载完整灵魂——SOUL.md人格、IDENTITY.md身份、USER.md用户偏好、AGENTS.md行为规则、TOOLS.md工具一键注入。让 AI 助手拥有你 Agent 的全部能力</p>
<ul class="reveal showcase-list">
<li><span class="check"></span> 支持所有 OpenAI 兼容 API</li>
<li><span class="check"></span> 模型配置、工具权限、助手人设三合一</li>
<li><span class="check"></span> 一键测试连通性 &amp; 自动拉取模型列表</li>
<li><span class="check"></span> 无需安装 OpenClaw 也能使用 AI 助手</li>
<li><span class="check"></span> 一键加载 Agent 灵魂5/6 核心文件)</li>
<li><span class="check"></span> 多 Agent 灵魂自由切换</li>
<li><span class="check"></span> 保留 ClawPanel 工具调用能力</li>
<li><span class="check"></span> 工具权限细粒度控制</li>
</ul>
</div>
</div>
<!-- AI 图片识别 -->
<div class="showcase-row">
<div>
<div class="reveal showcase-tag" style="color:#f43f5e;background:rgba(244,63,94,0.1)"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/></svg> 多模态</div>
<h3 class="reveal showcase-title">图片识别 — AI 一眼看懂</h3>
<p class="reveal showcase-desc">直接粘贴截图或拖拽图片到对话框AI 自动识别图片内容并给出详细分析。支持截图、照片、文档图片等多种格式,真正的多模态交互体验。</p>
<ul class="reveal showcase-list">
<li><span class="check"></span> Ctrl+V 粘贴截图直接发送</li>
<li><span class="check"></span> 拖拽图片文件到对话框</li>
<li><span class="check"></span> AI 自动识别并分析图片内容</li>
<li><span class="check"></span> 图文混排 · 多模态对话</li>
</ul>
</div>
<div class="reveal screenshot-frame" onclick="openLightbox('./13.png')"><img src="./13.png" alt="AI 图片识别" loading="lazy"></div>
</div>
<!-- 实时聊天 -->
<div class="showcase-row">
<div>
<div class="reveal showcase-tag c-indigo" style="background:var(--accent-10)"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> 核心功能</div>
<h3 class="reveal showcase-title">实时 AI 对话</h3>
<p class="reveal showcase-desc">WebSocket 直连 Gateway流式响应实时显示。支持图片附件、多模态交互、Markdown 渲染、会话管理与快捷指令。</p>
<h3 class="reveal showcase-title">实时聊天 — 多模型流式对话</h3>
<p class="reveal showcase-desc">WebSocket 直连 Gateway流式响应逐字显示。自动列出所有已配置模型(含公益接口),支持图片附件、Markdown 渲染快捷指令。</p>
<ul class="reveal showcase-list">
<li><span class="check"></span> 流式传输,逐字显示</li>
<li><span class="check"></span> 多 Provider 模型自动聚合</li>
<li><span class="check"></span> 多会话管理与历史记录</li>
<li><span class="check"></span> 图片拖拽上传 &amp; 灯箱预览</li>
<li><span class="check"></span> 图片拖拽 &amp; 多模态对话</li>
<li><span class="check"></span> / 快捷指令系统</li>
</ul>
</div>
<div class="reveal screenshot-frame" onclick="openLightbox('./02.png')"><img src="./02.png" alt="实时聊天" loading="lazy"></div>
<div class="reveal screenshot-frame" onclick="openLightbox('./07.png')"><img src="./07.png" alt="实时聊天" loading="lazy"></div>
</div>
<!-- 模型配置 -->
<div class="showcase-row">
<div class="reveal screenshot-frame img-first" onclick="openLightbox('./09.png')"><img src="./09.png" alt="模型配置" loading="lazy"></div>
<div>
<div class="reveal showcase-tag" style="color:#a855f7;background:rgba(168,85,247,0.1)"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/></svg> 配置中心</div>
<h3 class="reveal showcase-title">模型灵活调配</h3>
<p class="reveal showcase-desc">支持 OpenAI、DeepSeek、Kimi 等多家服务商。可视化管理模型列表,一键设为主模型,自动备选切换</p>
<h3 class="reveal showcase-title">服务商统一管理</h3>
<p class="reveal showcase-desc">OpenAI、公益接口、DeepSeek、Kimi 等多家服务商统一管理。内置公益 AI 接口一键添加全部模型。可视化主模型 + 备选自动切换,批量测试连通性</p>
<ul class="reveal showcase-list">
<li><span class="check"></span> 多 Provider 统一管理</li>
<li><span class="check"></span> 批量连通性测试</li>
<li><span class="check"></span> 公益接口一键添加全部模型</li>
<li><span class="check"></span> 批量连通性测试 &amp; 延迟检测</li>
<li><span class="check"></span> 主模型 + 备选自动切换</li>
<li><span class="check"></span> 拖拽排序 &amp; 实时保存</li>
</ul>
</div>
<div class="reveal screenshot-frame" onclick="openLightbox('./05.png')"><img src="./05.png" alt="模型配置" loading="lazy"></div>
</div>
<!-- 记忆文件 -->
<div class="showcase-row">
<div class="reveal screenshot-frame img-first" onclick="openLightbox('./08.png')"><img src="./08.png" alt="记忆文件" loading="lazy"></div>
<div>
<div class="reveal showcase-tag" style="color:#22d3ee;background:rgba(34,211,238,0.1)"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z"/></svg> 数据管理</div>
<h3 class="reveal showcase-title">让 Agent 拥有记忆</h3>
<p class="reveal showcase-desc">在线编辑 Agent 核心配置文件AGENTS.md、SOUL.md 等),管理工作记忆和记忆归档。支持 ZIP 一键打包导出</p>
<p class="reveal showcase-desc">在线编辑 Agent 工作记忆、浏览记忆归档、管理核心配置文件SOUL.md、AGENTS.md 等)。支持 ZIP 一键打包导出,多 Agent 记忆完全隔离</p>
<ul class="reveal showcase-list">
<li><span class="check"></span> 核心文件在线编辑</li>
<li><span class="check"></span> 工作记忆 &amp; 记忆归档</li>
<li><span class="check"></span> 工作记忆 &amp; 记忆归档 &amp; 核心文件</li>
<li><span class="check"></span> 在线编辑 &amp; 实时预览</li>
<li><span class="check"></span> 多 Agent 记忆隔离</li>
<li><span class="check"></span> ZIP 打包下载</li>
</ul>
</div>
<div class="reveal screenshot-frame" onclick="openLightbox('./13.png')"><img src="./13.png" alt="记忆文件" loading="lazy"></div>
</div>
<!-- Gateway -->
<!-- Gateway 安全认证 -->
<div class="showcase-row">
<div class="reveal screenshot-frame img-first" onclick="openLightbox('./11.png')"><img src="./11.png" alt="Gateway 安全认证与工具权限" loading="lazy"></div>
<div>
<div class="reveal showcase-tag" style="color:#10b981;background:rgba(16,185,129,0.1)"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"/><path d="M2 12h20"/></svg> 网关管控</div>
<h3 class="reveal showcase-title">安全访问,可视化配置</h3>
<p class="reveal showcase-desc">Gateway 端口、绑定范围、运行模式、Token / 密码认证式,卡片式选项直观配置,即改即生效</p>
<div class="reveal showcase-tag" style="color:#10b981;background:rgba(16,185,129,0.1)"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg> 安全防护</div>
<h3 class="reveal showcase-title">安全认证 + 工具权限管控</h3>
<p class="reveal showcase-desc">Token 密钥 / 密码认证双模式,卡片式直观选择。Agent 工具调用权限三档可调(完整 / 受限 / 禁用),会话可见性细粒度控制。安全与灵活兼得</p>
<ul class="reveal showcase-list">
<li><span class="check"></span> 本地 / 局域网模式切换</li>
<li><span class="check"></span> Token &amp; 密码双认证模式</li>
<li><span class="check"></span> Tailscale Funnel 支持</li>
<li><span class="check"></span> 高级选项按需展开</li>
<li><span class="check"></span> Agent 工具权限三档管控</li>
<li><span class="check"></span> 会话可见性控制</li>
<li><span class="check"></span> 改完自动重启生效</li>
</ul>
</div>
<div class="reveal screenshot-frame" onclick="openLightbox('./07.png')"><img src="./07.png" alt="Gateway 配置" loading="lazy"></div>
</div>
<!-- Agent 管理 -->
<div class="showcase-row">
<div class="reveal screenshot-frame img-first" onclick="openLightbox('./06.png')"><img src="./06.png" alt="Agent 管理" loading="lazy"></div>
<div>
<div class="reveal showcase-tag" style="color:#f97316;background:rgba(249,115,22,0.1)"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="10" x="3" y="11" rx="2"/><circle cx="12" cy="5" r="2"/><path d="M12 7v4"/><line x1="8" x2="8" y1="16" y2="16"/><line x1="16" x2="16" y1="16" y2="16"/></svg> 智能体</div>
<h3 class="reveal showcase-title">多 Agent 协作管理</h3>
<p class="reveal showcase-desc">创建和管理多个 AI Agent配置各自的身份、模型和独立工作区。支持备份、编辑与一键切换。</p>
<p class="reveal showcase-desc">创建和管理多个 AI Agent各自配置名称、模型和独立工作区。支持备份、编辑与默认 Agent 快速切换。</p>
<ul class="reveal showcase-list">
<li><span class="check"></span> 多 Agent 独立工作区</li>
<li><span class="check"></span> 身份与模型单独配置</li>
<li><span class="check"></span> Agent 配置备份</li>
<li><span class="check"></span> Agent 配置备份 &amp; 编辑</li>
<li><span class="check"></span> 默认 Agent 快速切换</li>
</ul>
</div>
<div class="reveal screenshot-frame" onclick="openLightbox('./10.png')"><img src="./10.png" alt="Agent 管理" loading="lazy"></div>
</div>
</div>
</section>
@@ -719,15 +704,19 @@
</div>
<div class="gallery-grid">
<div class="reveal gallery-card" onclick="openLightbox('./03.png')"><img src="./03.png" alt="服务管理" loading="lazy"><div class="gallery-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:inline;vertical-align:-2px"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/></svg> 服务管理</div></div>
<div class="reveal gallery-card" onclick="openLightbox('./04.png')"><img src="./04.png" alt="日志查看" loading="lazy"><div class="gallery-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:inline;vertical-align:-2px"><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/><path d="M15 2H9a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1z"/><path d="M12 11h4"/><path d="M12 16h4"/><path d="M8 11h.01"/><path d="M8 16h.01"/></svg> 日志查看</div></div>
<div class="reveal gallery-card" onclick="openLightbox('./09.png')"><img src="./09.png" alt="扩展工具" loading="lazy"><div class="gallery-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:inline;vertical-align:-2px"><path d="M12 22v-5"/><path d="M9 8V2"/><path d="M15 8V2"/><path d="M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z"/></svg> 扩展工具</div></div>
<div class="reveal gallery-card" onclick="openLightbox('./10.png')"><img src="./10.png" alt="系统诊断" loading="lazy"><div class="gallery-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:inline;vertical-align:-2px"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg> 系统诊断</div></div>
<div class="reveal gallery-card" onclick="openLightbox('./06.png')"><img src="./06.png" alt="知识库" loading="lazy"><div class="gallery-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:inline;vertical-align:-2px"><path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20"/></svg> 知识库</div></div>
<div class="reveal gallery-card" onclick="openLightbox('./12.png')"><img src="./12.png" alt="安全设置" loading="lazy"><div class="gallery-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:inline;vertical-align:-2px"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg> 安全设置</div></div>
<div class="reveal gallery-card" onclick="openLightbox('./14.png')"><img src="./14.png" alt="扩展工具" loading="lazy"><div class="gallery-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:inline;vertical-align:-2px"><path d="M12 22v-5"/><path d="M9 8V2"/><path d="M15 8V2"/><path d="M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z"/></svg> 扩展工具</div></div>
<div class="reveal gallery-card" onclick="openLightbox('./15.png')"><img src="./15.png" alt="系统诊断" loading="lazy"><div class="gallery-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:inline;vertical-align:-2px"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg> 系统诊断</div></div>
<div class="reveal gallery-card" onclick="openLightbox('./16.png')"><img src="./16.png" alt="关于" loading="lazy"><div class="gallery-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:inline;vertical-align:-2px"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg> 关于</div></div>
</div>
<div class="info-grid">
<div class="reveal info-card"><div class="ic"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/></svg></div><h4>服务管理</h4><p>启停控制、版本检测、一键升级、配置备份与恢复</p></div>
<div class="reveal info-card"><div class="ic"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/><path d="M15 2H9a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1z"/><path d="M12 11h4"/><path d="M12 16h4"/><path d="M8 11h.01"/><path d="M8 16h.01"/></svg></div><h4>日志查看</h4><p>多日志源实时查看、关键字搜索、自动滚动跟踪</p></div>
<div class="reveal info-card"><div class="ic"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22v-5"/><path d="M9 8V2"/><path d="M15 8V2"/><path d="M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z"/></svg></div><h4>扩展工具</h4><p>cftunnel 内网穿透、ClawApp 移动客户端管理</p></div>
<div class="reveal info-card"><div class="ic"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg></div><h4>系统诊断</h4><p>全面健康检测、WebSocket 测试、一键修复配对</p></div>
<div class="reveal info-card"><div class="ic"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/></svg></div><h4>服务管理</h4><p>启停控制、版本检测、一键升级、npm 源切换、配置备份与恢复</p></div>
<div class="reveal info-card"><div class="ic"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20"/></svg></div><h4>知识库</h4><p>自定义知识注入 AI 助手Markdown 格式,对话时自动激活</p></div>
<div class="reveal info-card"><div class="ic"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg></div><h4>安全设置</h4><p>访问密码保护、无视风险模式切换、面板访问安全管控</p></div>
<div class="reveal info-card"><div class="ic"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22v-5"/><path d="M9 8V2"/><path d="M15 8V2"/><path d="M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z"/></svg></div><h4>扩展工具</h4><p>cftunnel 内网穿透、ClawApp 移动客户端一键安装</p></div>
<div class="reveal info-card"><div class="ic"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg></div><h4>系统诊断</h4><p>全面健康检测、WebSocket 测试、网络日志、一键修复配对</p></div>
<div class="reveal info-card"><div class="ic"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg></div><h4>关于</h4><p>版本信息、社群入口QQ / 微信 / 抖音)、相关项目链接</p></div>
</div>
</div>
</section>
@@ -983,7 +972,7 @@
<div class="orb orb-2" style="top:auto;bottom:-100px"></div>
<div class="container-sm" style="position:relative;z-index:10">
<div class="section-header">
<div class="reveal download-version"><span class="pulse"></span> v0.5.7 最新版</div>
<div class="reveal download-version"><span class="pulse"></span> v0.6.0 最新版</div>
<h2 class="reveal section-title"><span class="gradient-text">下载安装</span></h2>
<p class="reveal section-desc">选择你的操作系统,一键下载安装</p>
</div>
@@ -993,11 +982,11 @@
<h3>macOS</h3>
<p class="dl-desc">支持 Apple Silicon 和 Intel 芯片</p>
<div class="dl-links">
<a class="dl-link" href="https://github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.5.7_aarch64.dmg" target="_blank" rel="noopener">
<a class="dl-link" href="https://github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.6.0_aarch64.dmg" target="_blank" rel="noopener">
Apple Silicon (M1/M2/M3/M4)
<span class="dl-format">.dmg</span>
</a>
<a class="dl-link" href="https://github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.5.7_x64.dmg" target="_blank" rel="noopener">
<a class="dl-link" href="https://github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.6.0_x64.dmg" target="_blank" rel="noopener">
Intel 芯片
<span class="dl-format">.dmg</span>
</a>
@@ -1008,11 +997,11 @@
<h3>Windows</h3>
<p class="dl-desc">支持 Windows 10 及以上版本</p>
<div class="dl-links">
<a class="dl-link" href="https://github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.5.7_x64-setup.exe" target="_blank" rel="noopener">
<a class="dl-link" href="https://github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.6.0_x64-setup.exe" target="_blank" rel="noopener">
安装程序
<span class="dl-format">.exe</span>
</a>
<a class="dl-link" href="https://github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.5.7_x64_en-US.msi" target="_blank" rel="noopener">
<a class="dl-link" href="https://github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.6.0_x64_en-US.msi" target="_blank" rel="noopener">
MSI 安装包
<span class="dl-format">.msi</span>
</a>
@@ -1023,11 +1012,11 @@
<h3>Linux</h3>
<p class="dl-desc">支持主流 Linux 发行版</p>
<div class="dl-links">
<a class="dl-link" href="https://github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.5.7_amd64.AppImage" target="_blank" rel="noopener">
<a class="dl-link" href="https://github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.6.0_amd64.AppImage" target="_blank" rel="noopener">
通用版
<span class="dl-format">.AppImage</span>
</a>
<a class="dl-link" href="https://github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.5.7_amd64.deb" target="_blank" rel="noopener">
<a class="dl-link" href="https://github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.6.0_amd64.deb" target="_blank" rel="noopener">
Debian / Ubuntu
<span class="dl-format">.deb</span>
</a>
@@ -1049,7 +1038,7 @@
<h2 class="reveal section-title"><span class="gradient-text">社区交流</span></h2>
<p class="reveal section-desc">加入社区,交流使用心得、反馈问题、获取最新动态</p>
</div>
<div class="community-grid">
<div class="community-grid" style="grid-template-columns:repeat(3,1fr)">
<div class="reveal community-card">
<img class="community-qr" src="./qr-qq.png" alt="QQ 群二维码">
<h3>QQ 交流群</h3>
@@ -1062,6 +1051,12 @@
<p class="desc">加入微信群,获取最新版本通知和使用技巧分享</p>
<a href="https://qt.cool/c/OpenClawWx" target="_blank" rel="noopener" class="btn btn-sm btn-outline">加入微信群</a>
</div>
<div class="reveal community-card">
<img class="community-qr" src="https://qt.cool/c/OpenClawDY/qr.png" alt="抖音群二维码" style="object-fit:contain;background:#fff">
<h3>抖音交流群</h3>
<p class="desc">关注抖音账号,观看教程视频和最新动态</p>
<a href="https://qt.cool/c/OpenClawDY" target="_blank" rel="noopener" class="btn btn-sm btn-outline">加入抖音群</a>
</div>
</div>
<div class="community-extra">
<a href="https://discord.gg/U9AttmsNHh" target="_blank" rel="noopener" class="reveal community-link">
@@ -1084,6 +1079,50 @@
</div>
</section>
<!-- ══════════════ 公益 AI 接口计划 ══════════════ -->
<section id="ai-plan" class="section" style="padding-top:64px;padding-bottom:64px">
<div class="grid-bg"></div>
<div class="container" style="position:relative;z-index:10">
<div class="section-header">
<h2 class="reveal section-title"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:inline;vertical-align:-6px;margin-right:4px;color:var(--accent)"><path d="M20 12v10H4V12"/><path d="M2 7h20v5H2z"/><path d="M12 22V7"/><path d="M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z"/><path d="M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z"/></svg> <span class="gradient-text">公益 AI 接口计划</span></h2>
<p class="reveal section-desc">Token 费用?我们帮你出了。</p>
</div>
<div class="reveal" style="max-width:800px;margin:0 auto;border-radius:20px;background:linear-gradient(135deg,#0f0c29 0%,#302b63 50%,#24243e 100%);color:#fff;position:relative;overflow:hidden;box-shadow:0 8px 40px rgba(48,43,99,0.3)">
<div style="position:absolute;top:-60px;right:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(99,102,241,0.15) 0%,transparent 70%);pointer-events:none"></div>
<div style="position:absolute;bottom:-40px;left:-40px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(168,85,247,0.1) 0%,transparent 70%);pointer-events:none"></div>
<div style="padding:40px 48px;position:relative">
<div style="font-size:15px;color:rgba(255,255,255,0.8);line-height:1.9;margin-bottom:24px">
<p style="margin-bottom:12px">ClawPanel 公益 AI 接口测试计划已开放。<strong style="color:#a78bfa">调用成本由项目组内部承担</strong>,用户无需注册、无需付费。</p>
<p style="margin-bottom:12px">支持 GPT-5 全系列模型,兼容 OpenAI <code style="background:rgba(255,255,255,0.1);padding:2px 6px;border-radius:4px;font-size:13px">/v1/chat/completions</code><code style="background:rgba(255,255,255,0.1);padding:2px 6px;border-radius:4px;font-size:13px">/v1/responses</code> 接口。</p>
<p>在 ClawPanel 内置助手设置中,选择模型 → 点击「测试」→「一键接入」即可开始使用。如需独立密钥,可前往活动站签到领取。</p>
</div>
<div style="display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px">
<div style="background:rgba(255,255,255,0.06);border-radius:12px;padding:16px;text-align:center;border:1px solid rgba(255,255,255,0.08)">
<div style="margin-bottom:6px"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#a78bfa" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z"/><path d="m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"/><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"/><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"/></svg></div>
<div style="font-weight:700;font-size:14px;margin-bottom:4px">GPT-5 全系列</div>
<div style="font-size:12px;color:rgba(255,255,255,0.5)">10+ 模型开箱即用</div>
</div>
<div style="background:rgba(255,255,255,0.06);border-radius:12px;padding:16px;text-align:center;border:1px solid rgba(255,255,255,0.08)">
<div style="margin-bottom:6px"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#a78bfa" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8"/><path d="M12 18V6"/></svg></div>
<div style="font-weight:700;font-size:14px;margin-bottom:4px">费用全包</div>
<div style="font-size:12px;color:rgba(255,255,255,0.5)">Token 成本项目组承担</div>
</div>
<div style="background:rgba(255,255,255,0.06);border-radius:12px;padding:16px;text-align:center;border:1px solid rgba(255,255,255,0.08)">
<div style="margin-bottom:6px"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#a78bfa" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="m21 2-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0 3 3L22 7l-3-3m-3.5 3.5L19 4"/></svg></div>
<div style="font-weight:700;font-size:14px;margin-bottom:4px">独立密钥</div>
<div style="font-size:12px;color:rgba(255,255,255,0.5)">签到即可免费领取</div>
</div>
</div>
<div style="display:flex;flex-wrap:wrap;gap:12px;justify-content:center">
<a href="https://gpt.qt.cool/checkin" target="_blank" rel="noopener" style="display:inline-flex;align-items:center;gap:8px;padding:10px 24px;border-radius:12px;background:linear-gradient(135deg,#6366f1,#a855f7);color:#fff;font-weight:600;font-size:14px;text-decoration:none;box-shadow:0 4px 16px rgba(99,102,241,0.4);transition:transform 0.2s"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M8 12l2 2 4-4"/></svg> 签到领密钥</a>
<a href="https://gpt.qt.cool/user" target="_blank" rel="noopener" style="display:inline-flex;align-items:center;gap:8px;padding:10px 24px;border-radius:12px;border:1px solid rgba(255,255,255,0.2);color:#fff;font-size:14px;font-weight:500;text-decoration:none;transition:all 0.2s"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><path d="m19 9-5 5-4-4-3 3"/></svg> 用量查询</a>
<a href="https://gpt.qt.cool/" target="_blank" rel="noopener" style="display:inline-flex;align-items:center;gap:8px;padding:10px 24px;border-radius:12px;border:1px solid rgba(255,255,255,0.2);color:#fff;font-size:14px;font-weight:500;text-decoration:none;transition:all 0.2s"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg> GPT-AI 网关</a>
</div>
</div>
</div>
</div>
</section>
<!-- ══════════════ Sponsors ══════════════ -->
<section class="section" id="sponsors">
<div class="container">
@@ -1107,7 +1146,7 @@
<div class="footer-inner">
<div class="footer-logo">
<img src="./logo.png" alt="Logo">
<span>ClawPanel &copy; 2025</span>
<span>ClawPanel &copy; 2026</span>
</div>
<div class="footer-links">
<a href="https://github.com/qingchencloud/clawpanel" class="footer-link">GitHub</a>