# 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 文件或联系老王团队。*