Files
2026-03-12 12:10:11 +08:00

168 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Qwen3.5-9B ToolHub 增强版 (Enhanced Edition)
> **版本标识**:原版基础功能 + 本地写作/记忆 + 混合云智能路由
> **作者**: 老王 (Lao Wang) & AI 协作伙伴
> **最后更新**: 2026-03-12
## 🚀 项目简介
本项目是基于 **Qwen3.5-9B** 多模态模型的本地一体化部署方案。它不仅具备原版的联网搜索、看图读图能力,更通过深度二次开发实现了从“只能看”到"**能写、能记、能感知**"的质变,并引入了混合云架构以应对复杂任务。
-**原生能力**:本地 GPU 推理、OpenAI 兼容 API、多模态输入。
-**核心增强**:原子化文件写入、持久化记忆注入、实时环境感知。
-**智能扩展**:混合云路由(本地+DeepSeek/GPT、粘性会话切换。
---
## 🆚 版本差异对比 (原版 vs 增强版)
| 功能模块 | 原版 (Original) | 增强版 (Enhanced v2.0+) |
| :--- | :--- | :--- |
| **模型推理** | 仅本地 Qwen3.5-9B | **本地 + 云端(DeepSeek/GPT) 混合路由** |
| **文件操作** | 🔒 只读浏览 | ✏️ **原子化写入 (白名单沙盒)** |
| **记忆系统** | ❌ 无长期记忆 | 🧠 **JSON 持久化偏好库 (热加载)** |
| **网络抓取** | 普通请求 | 🛡️ **反爬优化 (User-Agent + 重试机制)** |
| **环境感知** | 静态上下文 | ⏰ **动态注入时间/日期/星期** |
| **适用场景** | 简单问答、分析 | **代码编写、长程规划、隐私数据分析** |
---
## 🛠️ 快速开始 (Quick Start)
### 1. 环境要求
- **操作系统**: Windows 10 / 11
- **硬件**: NVIDIA 显卡 (显存 ≥ 8GB, 推荐 ≥ 12GB)
- **软件**: Python 3.10+, Git, Docker (可选)
### 2. 安装与启动
#### 首次安装 (下载约 6GB 模型)
*方法 A: 标准版 (推荐)*
```bat
# 双击运行
bootstrap.bat
```
*方法 B: Q8 量化版 (显存 ≥ 12GB占用约 10.2GB)*
```bat
# 双击运行
bootstrap_q8.bat
```
#### 启动服务
```bat
# 启动服务 (端口 8080)
.\start_8080_toolhub_stack.cmd start
# 停止服务
.\start_8080_toolhub_stack.cmd stop
```
#### 访问界面
打开浏览器访问:**http://127.0.0.1:8080**
*(注:首次启动需等待 30~60 秒加载模型)*
---
## ⚙️ 增强配置详解 (.env)
在启动前,请编辑项目根目录下的 `.env` 文件,根据需求开启增强功能。**注意路径不要带末尾斜杠**。
```ini
# ==========================================
# 🚀 核心运行模式
# ==========================================
# local = 仅使用本地 Qwen3.5-9B
# cloud = 仅使用云端模型 (需配置下方密钥)
MODEL_MODE=local
# ==========================================
# ☁️ 云端大脑配置 (DeepSeek / OpenAI 兼容)
# ==========================================
# 默认云端模型 ID (例如: deepseek-chat, gpt-4o-mini)
CLOUD_MODEL_ID=deepseek-chat
# 云端 API Base URL
CLOUD_BASE_URL=https://api.deepseek.com/v1
# 云端 API Key (请勿泄露)
CLOUD_API_KEY=sk-your-key-here
# ==========================================
# 🛠️ 文件系统增强 (写入功能)
# ==========================================
# [True/False] 是否允许 AI 物理写入本地文件
ENABLE_FILE_WRITE=True
# 📂 安全沙盒:只允许在此目录下写入 (支持多个路径用分号隔开)
# 示例: E:\AI_Workspace;D:\Projects\Temp
WRITEABLE_FS_ROOTS=E:\AI_Workspace
# ==========================================
# 🧠 持久记忆系统
# ==========================================
# 记忆文件绝对或相对路径 (必须确保目录存在)
MEMORY_FILE_PATH=./.tmp/super_agent_data/memory.json
```
---
## 🧠 核心高级功能说明
### 1. 混合云智能路由 (Hybrid Cloud Routing)
系统不再是非黑即白的单模型选择,而是基于**语义意图**和**手动指令**的智能切换:
- **自动分流**:
- **高频/隐私任务** -> 自动路由至本地 `Qwen3.5-9B` (零成本,高速度)。
- **复杂逻辑/大规模编程** -> 自动路由至云端 `DeepSeek/GPT` (强逻辑,长文本)。
- **手动干预 (粘性切换)**:
- 输入 `/cloud ...`: 强制当前及后续对话切换到云端,直到再次切换。
- 输入 `/local ...`: 强制切回本地模型。
- *特性*: 系统会记住您最近的切换指令,保持上下文一致性。
### 2. 原子化物理写入 (Atomic Write Engine)
赋予模型真正的“动手能力”,但处于严格保护中:
- **安全机制**: 只有 `WRITEABLE_FS_ROOTS` 指定的目录内的文件可被修改/创建。
- **应用场景**: 自动生成代码文件、整理日志、构建文档。
- **警告**: 严禁将 `SYSTEM``Program Files` 等系统目录加入白名单。
### 3. 持久化记忆热注入 (Persistent Memory)
- **原理**: 每次对话开始时,系统会自动读取 `memory.json` 中的内容,并将其作为 System Prompt 的一部分注入给 AI。
- **用途**: 记住您的昵称如“老王”、工作习惯如“代码必须加注释”、“Markdown 格式”)、偏好设置。
- **数据格式**: 支持纯列表 `["item1"]` 或对象包装 `{"items": [...]}`,系统自动容错。
### 4. 反侦察网页抓取
针对 GitHub、Google Scholar 等高防御网站进行了优化:
- 内置主流浏览器 User-Agent 伪装。
- 集成指数退避重试策略,自动处理 HTTP 429 (Too Many Requests) 错误。
---
## 🐞 故障排查 (Troubleshooting)
| 现象 | 可能原因 | 解决方案 |
| :--- | :--- | :--- |
| **Network Error** | 网关未注册 Write 工具 | 检查 `toolhub_gateway_agent.py` 是否包含 `import agent_runtime.write_tools` |
| **AI "失忆"** | `memory.json` 格式错误 | 检查 JSON 是否有**末尾逗号**;运行诊断脚本 `python diagnose_memory.py` |
| **无法写入文件** | 路径不在白名单 | 确认写入路径是否在 `WRITEABLE_FS_ROOTS` 列表中,且目录已存在 |
| **云端切换无效** | 指令格式错误 | 确保 `/cloud` 后紧跟一个空格再写内容,如 `/cloud 帮我写个算法` |
| **HTTP 429 报错** | 频繁刷新网页 | 等待几秒重试,新版已自动处理此类重试逻辑 |
---
## 📁 常用操作指令速查
| 指令类型 | 用法示例 | 作用 |
| :--- | :--- | :--- |
| **正常对话** | `(直接输入)` | 遵循 `.env` 默认路由模式 |
| **强制云端** | `/cloud 分析一下这个复杂的架构` | 立即切换至云端大模型 |
| **强制本地** | `/local 看看我的本地日志 file.log` | 立即切换回本地小模型,节省 Token |
| **查看状态** | `(询问系统信息)` | AI 会汇报当前时间、模型负载及路由状态 |
---
## 📝 开发者笔记
- **记忆文件格式**: 建议由用户手动维护或使用官方导出工具生成,避免手滑产生非法 JSON 字符。
- **日志查看**: Windows 下直接运行批处理脚本时,命令行窗口即为实时日志终端。
- **数据安全**: 所有的模型权重、记忆文件和日志均存储在本地 (`E:\Qwen3.5...`),不上传任何私有数据至公有云(除非明确使用 `/cloud` 处理非敏感数据)。
---
*祝你调试愉快!如有问题,请查阅 logs 文件或联系老王团队。*