Harven AI 文档中心

欢迎来到 Harven AI 哈文文档中心。哈文是一个纯本地运行的私有AI平台,永久免费,数据主权在用户。

📚
技术详解 v7.0
完整架构设计、29项核心功能、Skill系统、协作模式、面板系统、流程编辑器等
1437行 · 15个章节 · 2026-08-09
📖
使用指南 v1.0
新手向完整教程:安装、选模型、外脑、协作、任务、手机端、渠道接入、代码调用
17个章节 · 2026-08-11
📦
安装指南 v2.0
系统要求、安装步骤、API Key获取、功能配置、常见问题
330行 · 10个章节 · 2026-08-09
🛒
HarvenHub
社区市场 — Skill/Agent/模板/知识包/模型
harvenhub.com
💻
GitHub 仓库
源代码、Issue反馈、Pull Request
Apache 2.0 开源

✨ 核心特性

特性说明
🏠 本地优先所有数据存储在用户本地,不外传
🆓 永久免费不做付费会员,不做功能阉割
🔧 Skill系统10个内置Skill + 可视化流程编辑器
🤝 多模型协作通用模型+垂直模型+工具链式编排
📊 面板系统7种字段+卡片视图+统计图表
🔒 安全防护沙箱隔离+协作模式开关+触发词管理

Harven AI 哈文 技术详解 v6.3

版本:v6.3 | 更新日期:2026-08-03 | 适用版本:哈文 v0.2.1+ 作者:AmenMonk | 许可证:Apache 2.0


目录


第一部分:项目概述

1.1 产品定位

Harven AI(哈文) 是一个纯本地运行的私有AI平台。

定位 说明
产品名 Harven AI(哈文)
中文名 哈文
定位 纯本地运行私有AI平台
价格 永久免费,不做付费会员
数据主权 所有数据存储在用户本地,不外传
目标用户 注重隐私的中产高知家庭 + 小微个体户

1.2 核心差异化

差异化 说明
全能一体化 模型+知识库+操作电脑+垂直模型+设备管理,一个平台全搞定
数据主权在用户 纯本地,不依赖云端
全生活场景 不只管智能家居,是家庭财务+菜谱+学习+提醒
普通人可用 对话驱动,不需要编程

1.3 技术栈

层级 技术 说明
Web框架 Flask 3.1.3 Python Web服务
AI推理 Ollama / 外部API 本地模型+外部模型
向量检索 FAISS 1.14.2 知识库语义搜索
数据库 SQLite 所有数据本地存储
桌面UI PySide6 6.11.1(LGPL) 桌面版界面
AI SDK openai 2.41.0 兼容SDK连接Ollama/云端
模型下载 modelscope 1.37.1 ModelScope模型下载
多模型 litellm 1.88.0 多模型统一接口
浏览器 playwright 1.58.0 浏览器自动化
PDF解析 pypdf 6.13.0 + pdfplumber PDF文字+表格提取
语音 faster-whisper 1.2.1 本地语音转写

1.4 目标硬件

哈文是给大众用的,支持各种配置:

配置 哈文怎么适配
24GB显存(4090) 硬件检测→推荐跑32B模型(70B需40GB+显存)
12GB显存(4070) 硬件检测→推荐跑14B模型
8GB显存(3060) 硬件检测→推荐跑7B模型
没有独立显卡 硬件检测→推荐CPU跑或外脑模式
不想用本地模型 外脑模式→用云端模型(不占显存)

第二部分:架构设计

2.1 整体架构图

用户浏览器
    ↓ HTTP
Flask Web服务(web_app.py)
    ↓
对话引擎(engine.py)
    ├── 查询模式选择(本地/外脑)
    ├── 知识库搜索(knowledge_base.py)
    ├── Skills注入(skill_manager.py)
    ├── 用户画像+习惯注入
    ├── 模型调用(MultiModelManager)
    ├── 工具执行(tool_executor.py)
    └── 记忆系统(memory.py)
        ↓
    模型输出
        ↓
    tool_executor提取代码块→执行→返回结果

2.2 两种查询模式

两种查询模式共享同一套能力:知识库 + Skills + 用户画像 + 习惯 + 诚实

模式 通用模型 知识库 Skills 画像 习惯 垂直模型
🏠本地模式 本地通用模型(Ollama是备选) ✅ ✅ ✅ ✅ 独立调用
🤖外脑模式 外部模型(DeepSeek/GLM/豆包等) ✅ ✅ ✅ ✅ 独立调用

区别:只是通用推理模型不同(本地 vs 外部),其他能力完全一样。

2.3 协作模式(独立开关)

协作模式是独立开关,与查询模式配合使用:

协作模式 流程 知识库 Skills
☁️云地协作 外脑分析→调垂直参数→给建议→本地垂直模型执行 ❌不加 ❌不加
🏠本地双模 本地通用模型调度→调垂直参数→给建议→垂直模型执行 ❌不加 ❌不加

协作模式只调参数+给建议,不加知识库和Skills(会干扰调参数)。

协作模式开启时,互联网搜索自动关闭(避免冲突)。

2.4 垂直模型

垂直模型独立调用,不经过知识库/Skills/画像/习惯:

用户说"做一首音乐"
    ↓
通用模型理解需求 → 调出MusicGen参数(description=音乐, duration=10s)
    ↓
垂直模型执行:MusicGen接收参数 → 生成音乐 → 返回
不经过知识库/Skills/画像/习惯

2.5 代码执行机制

模型生成 ```python 代码块
    ↓
tool_executor.py 提取代码块
    ↓
安全检查(黑名单+危险模块)
    ↓
拦截检查(越权调用+搜索代码)
    ↓
写入临时文件 → 用.venv的python执行
    ↓
返回 stdout/stderr 结果
    ↓
结果注入对话上下文 → 模型看到结果继续回答

关键:用 .venv\Scripts\python.exe 执行(modelscope/openai等库装在.venv里)。

★ v6.0 新增机制:

  1. 工具执行后二次推理:代码执行完毕后,引擎自动发起第二次模型调用,让模型看到执行结果并继续解读(不再"说完就停")

  2. stderr 智能过滤:自动过滤 Triton/xformers 等无害警告,只保留真正的错误信息。成功时 stderr 截断到 500 字符,失败时保留 3000 字符

  3. 代码块格式强制(★ v6.2修订):FC未启用时,系统提示词强制模型使用 ```python 代码块格式;FC启用时,改为强制调用FC工具(不写代码)——两者互斥,按FC状态自动切换

  4. 联网意图不阻断(★ v6.2修订):分类器误判为搜索请求时不再 return 阻断流程;FC启用时走web_search工具,FC未启用时走内置Bing搜索——按FC状态选择路径

  5. 目录结构注入:系统提示词包含完整项目目录结构(web_app.py/data/sqlite/data/skills等),模型不再猜测路径

  6. 代码审计 Skill:data/skills/code_audit/ 可执行技能,说"检测废代码"自动触发,系统性扫描9类问题(废import/断链路由/废工具/静默吞错/超时/截断等),直接格式化输出报告(不经过模型解读,避免跑偏)

  7. Skill 触发词自动执行(★ v6.2修订):引擎检测用户消息匹配 Skill 触发词时自动执行脚本。FC启用时优先走FC的execute_skill工具;FC未启用或模型不调FC时走触发词自动执行——FC路径优先,触发词兜底

  8. 记忆系统方案C:只在用户说"记住/我喜欢/我叫"等关键词时才做 AI 提取(不是每轮都提);用引擎当前模型(DeepSeek/ModelScope/Ollama)提取,不硬编码 Ollama;L0 原始对话始终保存

  9. iframe sandbox:allow-scripts allow-forms allow-modals(allow-modals 让 confirm() 对话框正常工作)

2.6 三层安全防护

层级 功能 说明
第一层 文件扫描 5层检查:扩展名/大小/Magic Bytes/内容模式/杀毒扫描
第二层 代码沙箱 Docker容器隔离(优先)/ 子进程隔离(降级),拦截越权调用+联网搜索代码
第三层 注入审查 上传文档时LLM复核内容,防止提示注入

第三部分:核心功能详解(29项)

3.1 本地知识库(三层架构)

存储和查询用户上传的文档。

三层架构:

文档层:上传txt/md/csv/pdf/docx/xlsx/pptx → 存储到data/knowledge/
向量层:自动向量化 → FAISS索引 → 语义搜索
注入层:对话时自动搜索相关内容 → 注入回答

使用方式: - 点📚知识库按钮 → 拖拽文件或粘贴文本 - 对话时自动搜索知识库,注入相关内容辅助回答

3.2 代码执行

编写Python代码→系统自动运行→返回结果。

这是操控电脑的核心方式。

能做什么: - 执行Python代码(```python代码块自动执行) - 读写文件(open/os.listdir) - 安装Python包(subprocess.run(['pip','install','包名'])) - 运行系统命令(subprocess.run()) - 打开文件(os.startfile()) - 下载文件(urllib.request.urlretrieve()) - 安装模型(ollama pull / modelscope / huggingface / git clone)

不能做什么: - rm -rf / del /S / format / shutdown / reboot(危险命令) - ctypes / winreg / win32api / win32com(危险模块) - 超时120秒的代码会被终止(下载类5分钟) - 不要自己写requests搜索网页(系统有内置Bing搜索)

执行环境: 用 .venv\Scripts\python.exe 执行(预装了所有依赖)

3.3 文件管理

通过Python代码读写本地文件、列出目录。

import os
# 列出D盘文件
files = os.listdir('D:\\')
for f in files:
    print(f)

3.4 任务自动化(软件安装)

帮用户下载和安装软件/模型。

五种安装方式: - pip安装:subprocess.run(['pip', 'install', '包名'], timeout=120) - HuggingFace:from huggingface_hub import snapshot_download; snapshot_download('模型名') - ModelScope:from modelscope import snapshot_download; snapshot_download('模型名') - Ollama:subprocess.run(['ollama', 'pull', '模型名'], timeout=300) - GitHub:subprocess.run(['git', 'clone', 'URL'], timeout=120)

3.5 专项培养

给对话设定专职角色。

角色 效果
翻译助手 发什么都翻译
代码审查员 审查代码质量
周报生成器 自动生成周报

创建方式: 点🤖专项按钮新建,或对话里说"创建翻译助手"

3.6 监控中心

自动追踪关注话题的最新动态。

RSS源(6个): 36氪 / IT之家 / 开源中国 / InfoQ / Solidot / 少数派

使用: 添加主题+关键词(如"AI动态"+关键词"AI,GPT,大模型")→ 系统定时抓取匹配新闻

3.7 垂直模型

多种专业垂直模型的统称(已内置6种+支持动态扩展)。

模型 图标 说明
音乐生成 🎵 MusicGen / ACE-Step
图片生成 🎨 Stable Diffusion
语音合成 🔊 Coqui TTS
代码生成 💻 代码辅助
数据分析 📊 数据处理
文档翻译 🌐 多语言翻译

使用: 点🎨垂直按钮选择模型 → 填参数 → 执行

★ 垂直模型独立调用,不经过知识库/Skills/画像/习惯。

3.8 图片识别

查看和分析用户上传的图片。

  • 视觉模型:minicpm-v:8b
  • 上传图片→系统自动分析→返回描述
  • 不支持视觉时提示"请切换到minicpm-v:8b或外脑模式"

3.9 联网搜索

Bing内置+SearXNG可选增强。

触发方式 说明
点🌐互联网按钮 手动开启
关键词触发 消息含"搜索/天气/新闻/股价/上证/指数"等
SearXNG可选 用户自建后填写URL,优先使用SearXNG聚合搜索
  • 事实查询(天气/股价)直接展示搜索结果卡片
  • 知识查询经模型整合回答
  • 协作模式开启时自动关闭(避免冲突)

3.10 模型安装

对话驱动安装各种模型。

用户说"帮我装MusicGen/装华佗模型/装个qwen模型"→哈文直接生成代码块执行。

预装的库(不需要再安装): modelscope / openai / flask / faiss / requests / beautifulsoup4 / faster-whisper / pillow / pypdf / playwright / apscheduler / litellm

3.11 通用模型管理

Ollama管理本地通用模型。

  • 🏠本地模式用的通用模型通过Ollama管理(ollama pull qwen2.5等)
  • Ollama是备选引擎,不是唯一方式
  • 用户可在设置→模型管理→本地模型中下载GGUF模型文件

3.12 查询模式

两种模式可选(共享知识库+Skills+画像+习惯)。

模式 模型 数据
🏠本地模式 本地通用模型(Ollama是备选) 不外传
🤖外脑模式 外部模型(DeepSeek/GLM/豆包等) 远程推理

区别:只是通用推理模型不同,其他能力完全一样。

3.13 协作模式(独立开关)

模式 流程
☁️云地协作 外脑分析→调垂直参数→给建议→本地垂直模型执行
🏠本地双模 本地通用模型调度→调垂直参数→给建议→垂直模型执行

协作模式只调参数+给建议,不加知识库和Skills(会干扰调参数)。

3.14 硬件检测

检测电脑配置,推荐合适模型。

  • 检测CPU/GPU/内存
  • 21个模型数据库
  • 同步API+前端动画进度条

3.15 多模型管理

配置多个外部模型API。

支持28家厂商: - 国内:元宝/百川/智谱/零一/阶跃/MiniMax/文心/星火/天工/硅基流动 - 国际:OpenAI/Claude/Gemini/Grok/Groq/Perplexity/Mistral/Together/OpenRouter/HuggingFace等

3.16 插件管理

安装/管理扩展插件(设置→🧩插件管理)。

3.17 Skills系统

★ v6.0 中级可执行脚本系统(2026-07-14 升级):

Skills 从纯提示词升级为可执行脚本技能,支持实际运行代码。

创建方式 说明
手动创建 设置→🧩插件管理→创建Skill
AI自动生成 设置→🧩插件管理→Skill Builder
对话创建 说"帮我创建翻译技能"→自动生成
上传ZIP POST /api/skills/scripts 上传完整技能包

Skill 目录格式(可执行脚本版):

data/skills/<name>/
├── SKILL.md          ← 技能描述 + 触发词
└── scripts/
    └── main.py       ← 可执行脚本(AST沙箱 + subprocess执行)

脚本执行引擎(src/core/scripts_runner.py): - AST 沙箱:静态分析拦截危险调用 - subprocess 隔离执行 - 禁用的模块:subprocess/socket/ctypes(防止越权) - 新增端点:/api/skills/scripts(列表/运行/信息/上传ZIP)

示例 — 记账助手(data/skills/accounting/): - add: 记一笔账 → SQLite 写入 - query: 查账 → SQLite 查询 - summary: 月度汇总 → 统计计算 - delete: 删除记录

Skill 触发词自动执行:引擎检测用户消息匹配 Skill 触发词时自动执行脚本,不依赖 FC(Function Calling),所有模式共享。

原理(旧版兼容): 用户消息含触发词→自动注入Skill的prompt→模型按规则执行

3.18 Agent智能体

专项子角色(比Skill更完整)。

类型 说明
预置Agent 代码审查员/数据分析师/coder等(4个内置)
自定义Agent 设置→🧩插件管理→🧩Agent(注册中心,填写ID/名称/角色/提示词/模型偏好/触发词)
Agent工坊 设置→🧩插件管理→🏭工坊(创建Agent包,含Skill+模板+知识包组合)

关系: Agent包含多个Skill,Skill是Agent的工具 区别: Skill是"工具"(翻译工具),Agent是"工人"(翻译员带工具) 路径: Agent注册中心和工坊都已从独立主标签移至插件管理子导航(2026-07-20重构)

3.19 安全防护(三层)

层级 功能 说明
文件扫描 5层检查 扩展名/大小/Magic Bytes/内容模式/杀毒扫描
代码沙箱 隔离执行 Docker容器隔离(优先)/ 子进程隔离(降级)
注入审查 LLM复核 上传文档时LLM复核内容,防止提示注入

3.20 杀毒扫描

可挂载第三方杀毒软件(ClamAV)。

  • 配置:设置→安全隐私→第三方杀毒软件路径
  • 未装杀毒时跳过,前4层文件扫描仍生效

3.21 设备管理

IoT设备驱动控制。

驱动类型: MQTT / HTTP / WebSocket / AI临时生成驱动

3.22 手机联动

手机扫码连接哈文,远程对话。

  • 配置:设置→关于→📱手机+公网

3.23 IM连接

企业微信/钉钉/飞书接入。

  • 配置:设置→关于→📡渠道接入

3.24 数据保险箱

备份/恢复所有数据。

  • 配置:设置→💾数据

3.25 品牌定制

自定义名称/图标/外观。

  • 配置:设置→🎨外观定制

3.26 受控进化

用户说"帮我加功能/改代码/优化XX"→生成修改提案→用户审批→应用。

能改: skills/(技能脚本)、templates/(页面)、static/(样式)、config.yaml(配置) 不能改: engine.py/web_app.py等核心代码(安全黑名单)

流程: 用户说需求→哈文生成提案→用户看描述→批准/拒绝→可回滚

3.27 知识包

整理好的知识库文档打包,可分享给其他用户。

操作 方式
制作 用户说"帮我把知识库里的XX打包成知识包"→生成代码打包
安装 用户说"帮我安装XX知识包"→生成代码解压→导入知识库
格式 知识包.zip(documents/ + metadata.yaml)

3.28 Bundle(集合包)

多个Skill+Agent+知识包的组合,完整解决方案。

操作 方式
制作 用户说"帮我创建Bundle,包含记账Skill+健康Agent+营养学知识包"→生成代码打包
安装 用户说"帮我安装Bundle"→生成代码解压→自动安装所有Skill/Agent/知识包
使用 安装后Skill/Agent/知识包自动生效(不需要额外操作)

Bundle格式:

Bundle名称.zip
├── bundle.yaml    ← 配置清单
├── skills/        ← Skill文件
├── agents/        ← Agent配置
└── knowledge/     ← 知识包文档

3.29 HarvenHub 社区市场

哈文的社区市场,用户上传/下载/分享内容。

Hub支持的内容类型:

类型 说明
⚡ Skill 技能脚本
🤖 Agent 智能体
📚 知识包 知识库文档包
📦 Bundle 集合包(Skill+Agent+知识包)
📋 模板 画板/工作流模板
🧠 模型/工具 66个预置模型+工具下载链接

Hub分类: 🏠家庭 / 🏢企业 / 🏭工厂 / 🏫学校 / 🏥医疗 / 🍽️餐饮 / 🌾农业 / 🛒电商 / 🔧工具 / 📦其他

预置内容(66个): - 通用模型24个(qwen2.5/deepseek-r1/llama3/gemma2/phi3/yi/mistral等) - 垂直模型13个(MusicGen/SD/TTS/Whisper/Bark/华佗等) - 工具12个(Ollama/Python/Git/Docker/FFmpeg/winget安装) - 代码模型7个(codellama/deepseek-coder/qwen2.5-coder等) - 推理模型5个(deepseek-r1系列) - 视觉模型5个(minicpm-v/llava/moondream)

Hub架构:

哈文客户端(5000端口)
  └── ☁️ Hub云端Tab → 连接Hub服务端

Hub服务端(5001端口,独立项目 H:\HarvenHub\)
  ├── API服务(Flask)
  ├── 数据库(SQLite:users/items/reviews/requests/downloads/reports)
  ├── 文件存储(storage/files/)
  ├── 自动审核(4层:文件类型/大小/病毒/代码扫描)
  ├── 用户系统(注册/登录/快速登录)
  └── 管理后台(http://127.0.0.1:5001/admin)

Hub API:

API 功能
GET /api/hub/list 内容列表
GET /api/hub/search 搜索
GET /api/hub/detail/ 详情
GET /api/hub/download/ 下载
POST /api/hub/upload 上传
POST /api/hub/review 评价
POST /api/hub/request 发布需求
POST /api/hub/report 举报
GET /api/hub/categories 分类
GET /api/hub/stats 统计
POST /api/user/register 注册
POST /api/user/login 登录
POST /api/user/quick_login 快速登录
POST /api/hub/install 下载并自动安装(哈文后端)
POST /api/hub/execute 执行安装命令(哈文后端)

模型/工具安装方式: - Ollama模型 → ollama pull 模型名 - pip安装 → pip install 包名 - winget安装 → winget install 工具名(Windows快速安装) - ModelScope → snapshot_download('模型名') - GitHub → git clone URL - URL → 打开浏览器下载

3.30 CLI-Anything B+ 集成(2026-07-17)

将 79 个创意软件 CLI 封装一键接入哈文,通过对话直接控制 Blender/GIMP/Inkscape 等软件。

集成方式 说明
推荐工具卡片 设置→🧩插件管理→🛠️技能顶部,一键安装 CLI-Anything Hub
FC 工具 cli_anything_list / cli_anything_execute / cli_anything_install(3个工具)
增强上下文 对话中检测关键词(blender/gimp 等)→ enhanced_context 自动注入安装提示

设计原则(B+方案): Skill 模式 + 设置面板被动提醒,不内置代码只内置安装能力。目标软件由用户自行安装。

3.31 UI 面板系统 V1(2026-07-14)

用户可安装自定义 UI 管理面板(记账/宠物/健身等),ifarme 沙盒隔离。

组件 说明
PanelManager 单例,扫描 data/panels/,自动建 SQLite 表
panel_routes.py Blueprint /api/panels(列表/安装/卸载/创建/数据CRUD)
面板格式 data/panels/<id>/panel.json + index.html + panel.css + panel.js
前端通信 iframe 沙盒 + postMessage(HarvenPanel API)
前端组件 sidebar-panels.html + panel-viewer.html + modal-panel-manage.html + app-panels.js

3.32 外部模型安装器(零推荐+搜索优先)

2026-07-20 重写:所有模型不推荐,用户根据配置自行选择。

特性 说明
搜索融合 两层数据源:安装器 MODEL_CATALOG(6个)+ model_catalog.json(44个),去重
硬件检测 API GET /api/models/installer/hardware 检测 VRAM/RAM
分类标准化 中文→英文映射("音乐"→"music")
界面 页面加载时空白,用户搜索后才显示结果

3.33 SearXNG 三态检测

Bing 搜索已内置(无需 Docker/Key),SearXNG 为可选增强。新增实时连通性检测:

状态 显示 触发条件
✅ 已启用 绿色 SearXNG URL 已配置 + 连通性检测通过
⚠️ 已配置但未响应 黄色 URL 已填但 5 秒内无响应
✅ Bing 已就绪 绿色 使用内置 Bing 搜索(默认)

检测 API: POST /api/settings/searxng-test,真实请求 SearXNG API(5秒超时)


第四部分:设置面板(8个Tab)

Tab 内容
①基本设置 联网搜索(Bing/SearXNG)+ 语言 + 数据库状态
②模型管理 本地模型 + 外部模型(搜索优先安装器)+ 协作外脑
③个人画像 用户偏好/性格/职业
④外观定制 名称/图标/主题
⑤安全隐私 杀毒 + 代码沙箱 + 隐私模式 + 管理员密码
⑥💾数据 数据保险箱(备份/恢复)+ 设备命令日志
⑦🧩插件管理 5个子Tab:🛠️技能(含CLI-Anything推荐)/🧱构建/🧩Agent/🏭工坊/📦外部模型
⑧关于&连接 手机 + 公网 + IM连接 + HarvenHub + 版本信息

第五部分:安装部署

5.1 环境要求

要求 说明
操作系统 Windows 10/11(64位)
Python 3.13+(或使用嵌入式Python)
内存 最低8GB,推荐16GB+
显卡 可选(没有显卡可用外脑模式)
磁盘 最低5GB(含依赖包)

5.2 安装步骤

# 1. 克隆项目
git clone https://github.com/AmenMonk/HarvenAI.git
cd HarvenAI

# 2. 创建虚拟环境
python -m venv .venv

# 3. 激活虚拟环境
.venv\Scripts\activate

# 4. 安装依赖
pip install -r requirements.txt

# 5. 启动
python web_app.py

5.3 预装库列表(requirements.txt)

类别 库 版本
Web框架 flask / flask-cors / Werkzeug 3.1.3 / 6.0.4 / 3.1.8
AI/模型 openai / modelscope / llama-cpp-python / litellm 2.41.0 / 1.37.1 / 0.3+ / 1.88.0
向量检索 faiss-cpu / numpy 1.14.2 / 2.4.6
数据处理 PyYAML / requests / beautifulsoup4 / pillow / tiktoken 6.0.3 / 2.34.2 / 4.15.0 / 12.2.0 / 0.13.0
语音 faster-whisper / opencv-python-headless 1.2.1 / 4.13.0.92
桌面UI PySide6(LGPL) 6.11.1
PDF解析 pypdf / pdfplumber 6.13.0 / 0.11.9
浏览器 playwright 1.58.0
调度 apscheduler / watchdog 3.11.1 / 6.0.0

5.4 按需安装库

库 用途 安装命令
audiocraft MusicGen音乐生成 pip install audiocraft
diffusers Stable Diffusion图片生成 pip install diffusers
TTS Coqui语音合成 pip install TTS
torch 深度学习 pip install torch

5.5 启动方式

方式 命令
命令行 python web_app.py
桌面快捷方式 双击"Harven AI.lnk"
批处理 双击"启动HarvenAI.bat"

5.6 首次启动流程

首次启动
    ↓
config.yaml default_model为空 → 跳转/first_run
    ↓
硬件检测 → CPU/GPU/内存检测
    ↓
模型推荐 → 根据配置推荐合适模型
    ↓
用户选择 → 下载安装模型
    ↓
管理员密码设置 → 初始密码harven2026,首次登录强制改密
    ↓
进入主界面

第六部分:开发者指南

6.1 目录结构

HarvenAI/
├── src/
│   ├── core/                    # 核心模块
│   │   ├── engine.py            # 对话引擎(核心)
│   │   ├── morality.py          # 诚实原则+系统提示词
│   │   ├── tool_executor.py     # 代码执行层
│   │   ├── memory.py            # 记忆系统
│   │   ├── knowledge_base.py    # 知识库
│   │   ├── multi_model_manager.py  # 多模型管理
│   │   ├── hardware_detector.py # 硬件检测
│   │   ├── model_installer.py   # 模型安装器
│   │   ├── file_scanner.py      # 文件安全扫描
│   │   ├── code_sandbox.py      # 代码沙箱
│   │   ├── agent_registry.py    # Agent注册表
│   │   ├── skill_manager.py     # Skill管理
│   │   ├── scripts_runner.py    # Skill脚本执行引擎(AST沙箱)
│   │   ├── panel_manager.py     # UI面板管理器
│   │   ├── panel_routes.py      # 面板API路由
│   │   ├── task_manager.py      # 任务管理
│   │   ├── collab_manager.py    # 协作模式管理
│   │   └── device_manager.py    # 设备管理
│   ├── models/
│   │   └── database.py          # 数据库模型
│   ├── utils/
│   │   └── config.py            # 配置管理
│   └── ui/
│       └── main_window.py       # PySide6桌面窗口
├── templates/
│   ├── index.html               # 主页面
│   └── includes/                # 30个include文件
├── static/
│   ├── css/                     # 样式
│   ├── js/
│   │   ├── app.js               # 主JS
│   │   └── modules/             # 18个JS模块
│   └── icons/                   # 图标
├── skills/                      # 技能脚本(旧版兼容)
├── data/
│   ├── skills/                  # 可执行Skill(accounting/code_audit/music-gen等)
│   ├── panels/                  # UI面板(accounting等)
│   └── sqlite/
│       └── lingzhi.db           # SQLite数据库
├── config.yaml                  # 配置文件
├── web_app.py                   # Flask入口
├── requirements.txt             # 依赖列表
└── 启动HarvenAI.bat             # 启动脚本

6.2 核心模块

模块 文件 职责
对话引擎 engine.py 管理对话流程、模型调用、工具执行
诚实原则 morality.py 系统提示词、身份、能力说明
工具执行 tool_executor.py 提取代码块、安全检查、执行
记忆系统 memory.py 短期记忆、长期记忆、跨对话记忆
知识库 knowledge_base.py 文档上传、向量化、语义搜索
多模型管理 multi_model_manager.py 本地模型+外部模型统一管理
硬件检测 hardware_detector.py CPU/GPU/内存检测、模型推荐
文件扫描 file_scanner.py 5层安全扫描
Agent注册 agent_registry.py 预置+自定义Agent
协作管理 collab_manager.py 云地协作+本地双模

6.3 前端JS模块(18个)

模块 文件 职责
核心框架 app-core.js 主框架
对话 app-conversation.js 对话+查询模式
发送 app-send.js 消息发送
模型管理 app-model-manager.js 模型配置
知识库 app-knowledge.js 知识库管理
设置 app-settings.js 设置面板
Skills app-skills.js 技能管理(兼容旧版)
硬件 app-hardware.js 硬件检测
网络 app-network.js 联网搜索
设备 app-devices.js IoT设备
插件 app-plugins.js 插件管理 + Skills核心功能(1423行)+ CLI-Anything推荐工具
进化 app-evolution.js 受控进化
统计 app-stats.js 统计模块
保底 app-fallback.js 保底机制
知识萃取 app-extraction.js 知识萃取
版本检查 app-version-check.js 版本检测
HarvenHub app-harvenhub.js 社区市场
媒体 app-media.js 媒体播放

6.4 数据库结构

表名 说明
user_profile 用户信息
user_preferences 用户偏好
specializations 专项培养
conversations 对话记录
messages 消息记录
devices IoT设备
device_commands 设备命令
device_permissions 设备权限
structured_tasks 任务列表
cognitive_locks 长期记忆

6.5 配置文件(config.yaml)

# 核心配置
default_model: ""              # 默认模型(空=首次启动硬件检测)
admin_password: "harven2026"   # 管理员密码(首次登录强制修改)
search_provider: "bing"        # 搜索引擎(bing/searxng)
tool_execution_enabled: true   # 代码执行开关
searxng_url: ""                # SearXNG自建实例URL(可选)

# 查询模式
default_query_mode: "auto"     # kb_only/direct/auto(auto行为同direct)

# 协作模式
collab_mode: "off"             # off/cloud_local/local_dual
collab_enabled: false          # 协作模式开关

# 模型配置
ollama:
  base_url: "http://localhost:11434"

backends:
  local:
    default_model: "qwen2.5:14b"  # 本地默认模型
  external:
    default_model: ""              # 外脑默认模型(空=使用设置面板选择)

6.6 ⚠️ 开发者五大铁律(踩坑总结)

这些是实际开发中反复踩坑后总结的关键教训,对维护者至关重要:

# 铁律 说明
1 重启铁律 改 Flask 后重启前必须 netstat -ano \| findstr :7000 确认无残留进程;debug=False 时模板被缓存,taskkill 可能遗漏后台进程
2 HTML 铁律 改 templates/includes/*.html 后必须检查 <div> 开闭平衡(少一个 </div> → 后续面板全失效,已踩坑 2 次)
3 Flask 线程铁律 app.run() 必须 threaded=True(单线程一个请求挂起拖垮整个服务)
4 config.yaml 铁律 保存 config 用 yaml.dump(dict(config),...) 而非 yaml.dump(config,...),否则 PyYAML 写 !!python/object/new: 导致 safe_load 崩溃
5 NUCLEAR 覆盖铁律 index.html 中的 switchSettingsTab 用 window.switchSettingsTab = function(){...} 完全覆盖 app-settings.js 版本。改设置面板切换逻辑必须改 index.html 的 NUCLEAR 版,改 app-settings.js 不生效

第七部分:能力边界

7.1 能做什么(29项功能)

  1. 本地知识库(三层架构)
  2. 代码执行(操控电脑的核心方式)
  3. 文件管理(读写/目录/打开文件)
  4. 任务自动化(软件安装/模型下载)
  5. 专项培养(对话角色设定)
  6. 监控中心(RSS话题追踪)
  7. 垂直模型(6种内置+动态扩展)
  8. 图片识别(视觉模型)
  9. 联网搜索(Bing+SearXNG三态检测)
  10. 模型安装(pip/HF/ModelScope/Ollama/GitHub)
  11. 通用模型管理(Ollama管理)
  12. 查询模式(本地/外脑)
  13. 协作模式(云地协作/本地双模)
  14. 硬件检测(自动推荐模型)
  15. 多模型管理(28家厂商)
  16. 插件管理(5个子Tab)
  17. Skills系统(可执行脚本+Skill Builder)
  18. Agent智能体(注册中心+Agent工坊)
  19. 安全防护(三层)
  20. 杀毒扫描(ClamAV)
  21. 设备管理(IoT驱动)
  22. 手机联动(远程对话)
  23. IM连接(企微/钉钉/飞书)
  24. 数据保险箱(备份/恢复)
  25. 品牌定制(名称/图标/外观)
  26. 受控进化(提案/审批/应用/回滚)
  27. CLI-Anything集成(79个软件CLI封装,FC工具+推荐卡片)
  28. UI面板系统V1(iframe沙盒+postMessage,自定义管理面板)
  29. 外部模型安装器(零推荐+搜索优先+硬件检测)

7.2 不能做什么

限制 说明
控制桌面界面 不能移动鼠标/点击按钮
打开GUI应用窗口 不能直接控制其他软件窗口
rm -rf / del /S / format / shutdown / reboot 危险命令黑名单
ctypes / winreg / win32api / win32com 危险模块黑名单
超时120秒(下载5分钟) 代码执行超时限制

7.3 安全限制

限制类型 具体内容
危险命令 rm -rf / del /S / format / shutdown / reboot
危险模块 ctypes / winreg / win32api / win32com
越权调用 通用模型不能直接调用垂直模型
联网搜索代码 模型不能自己写requests搜索(系统有内置Bing)
文件上传 5层安全扫描(扩展名/大小/Magic Bytes/内容模式/杀毒)
代码执行 120秒超时(下载类5分钟)

7.4 代码执行环境

项目 说明
Python环境 .venv\Scripts\python.exe(预装所有依赖)
预装库 modelscope / openai / flask / faiss / requests 等12个
超时 普通代码120秒,下载/安装类5分钟
沙箱 Docker容器隔离(优先)/ 子进程隔离(降级)

附录

A. 版本历史

版本 日期 主要变更
v6.3 2026-08-03 引擎优先架构(FC→Skill转变):_try_quick_command扩展(list_dir/read_file/check_software加到快速命令,正则匹配"下载了什么"→秒回不经过模型);代码执行优先(模型写的代码先execute_python_code()执行,不再直接过滤);去掉FC误导警告(不再说"应该用内置工具",改为"安全限制未执行");多模型设置修复:8个内置模型全显示(之前只4个);模型选择改为input+datalist(可输入任意模型名如glm-5.2);保存API Key修复(之前只存4个→现在全存,空输入不清空已有key);外脑下拉框动态加载(含自定义模型);底部状态简化(只显示当前模型);GLM配置修复:删除错误的"哈文GLM"自定义provider,正确配置zhipu的base_url;对话上下文:查看旧对话后发消息→自动开新对话;历史≥6条→显示"建议新对话"提示
v7.0 2026-08-09 出站控制改革:默认不拦截(正常模式)——_whitelist_enabled默认False,新安装即可使用任意外脑API(DeepSeek/GLM/OpenAI/Claude/Gemini等),不再被"不在允许域名列表中"拦截;内置17个常用API域名+config.yaml可扩展;出站请求日志记录(_outbound_log,最多200条);新增/api/outbound/status+/api/outbound/toggleAPI;严格模式可选开启(independence.whitelist_enabled: true);沙箱防护恶意代码(Skill脚本禁subprocess/socket),白名单只作可选功能
v6.2 2026-08-02 HarvenHub云端集成:新增/api/harvenhub-cloud/browse端点代理harvenhub.com;skill安装自动下载+解压到data/skills/;文件名解析修复(RFC 5987);FC工具安装后自动重新加载(不需重启);工具检测改为子进程(避免import windows_use崩溃主进程);正确import名映射(python-docx→docx, python-pptx→pptx);二维码修复:SVG→base64 PNG(1.3KB);手机IP自动检测(切tab时触发);FC工具扩展:list_dir+read_file注册到TOOL_REGISTRY(共40个工具);HarvenHub后端:需求广场/评价/下载外键约束修复(users表加guest/anonymous);重试3次解决database locked;管理后台加需求删除+用户删除按钮;/version.json路由;端口5000→7000(解决Windows Docker/macOS AirPlay冲突);版本0.2.0→0.2.1
v6.1 2026-07-20 设置面板重构(独立💾数据Tab+插件管理5子Tab);Agent注册中心/工坊移至插件管理子导航;Skills升级为可执行脚本系统(scripts_runner.py);CLI-Anything B+集成;UI面板系统V1;外部模型安装器零推荐重写;SearXNG三态检测;config.yaml修正(default_query_mode);目录结构补齐;开发者五大铁律
v6.0 2026-07-18 超时30→120秒;工具执行后二次推理;stderr智能过滤;代码审计Skill;Skill触发词自动执行;记忆系统方案C(按需提取+用引擎模型);联网意图不阻断;目录结构注入提示词;iframe allow-modals;代码块格式强制;P0/P1/P2全归零;134条垃圾记忆清理
v5.0 2026-07-08 清理功德行残留+auto模式残留+DuckDuckGo残留;LOCAL_CAPABILITIES强化;.venv Python修复
v4.0 2026-07-03 功德行删除,纯诚实原则
v3.0 2026-06-13 模式架构重构

B. 许可证

  • 主许可证:Apache 2.0
  • PySide6:LGPL(与Apache 2.0兼容)
  • 禁止使用:PyQt6(GPL-3.0)、PyMuPDF(AGPL-3.0)

C. 项目信息

  • 项目路径:H:\HarvenAI\
  • 数据库:data/sqlite/lingzhi.db
  • 配置文件:config.yaml
  • 启动命令:python web_app.py
  • 联系邮箱:38552540@qq.com

本文档由 Harven AI 团队维护,最后更新:2026-08-02


附录D:v6.2变更详解(2026-08-02)

D.1 HarvenHub云端集成

功能 端点 说明
云端浏览 GET /api/harvenhub-cloud/browse 代理harvenhub.com的API,自动转换字段名(type→item_type)
云端下载 POST /api/harvenhub-cloud/download/<id> 下载skill→自动安装到data/skills/<name>/SKILL.md
云端上传 POST /api/harvenhub-cloud/upload 上传skill/tool到社区
连接检查 GET /api/harvenhub-cloud/check 检查与harvenhub.com的连接状态

前端改动:hhMarketLoad()从本地/api/harvenhub-market/browse改为云端/api/harvenhub-cloud/browse,显示102个云端内容(21 skill + 14 tool + 67 model)。

安装流程:

用户点"安装" → POST /api/harvenhub-cloud/download/<id>
  → hub_download() 下载文件到data/downloads/
  → 获取item信息判断类型
  → 如果type=skill:复制/解压到data/skills/<name>/
  → 返回安装成功

文件名解析修复:Content-Disposition头用正则+RFC 5987正确解析,解决中文文件名[Errno 22]问题。

D.2 FC工具系统

改动 说明
安装后自动加载 install_recommended_tool()调用load_fc_wrappers(),不需重启
工具检测子进程化 用subprocess.run([python, '-c', 'import xxx'])检测,避免import windows_use崩溃主进程
正确import名映射 PKG_IMPORT_MAP:python-docx→docx, python-pptx→pptx, windows-use→windows_use
去掉pip show兜底 pip show有假阳性(包存在但import崩溃),只用子进程import检测
新增FC工具 list_dir(列目录)+ read_file(读文件),TOOL_REGISTRY共40个工具
方案A扩展 当模型有FC工具但不主动调用时,引擎自动检测关键词并执行:A-1检查软件、A-2列目录("下载了什么"→自动list_dir)、A-3读文件("看看文件"→自动read_file)

D.3 HarvenHub后端修复

问题 原因 修复
需求广场500 user_id='anonymous'外键约束失败 users表加guest/anonymous用户 + PRAGMA foreign_keys=OFF
下载500 downloads.user_id='anonymous'同上 同上
评价500 reviews.user_id同上 同上 + 重试3次
上传500 items插入外键约束 users表已有system用户,修复后正常
database locked SQLite并发写入 PRAGMA busy_timeout=5000 + 重试3次 + WAL模式

D.4 手机连接

改动 说明
二维码格式 SVG→base64 PNG(1.3KB vs 67KB),<img src="data:image/png;base64,...">
IP自动检测 切到"手机+公网"tab时调用detectLocalAddr(),从API获取真实IP
端口5000→7000 解决Windows Docker/macOS AirPlay冲突,防火墙规则已加
二维码API修复 返回JSON而非raw SVG,int()→float()支持小数小时参数

D.5 其他改动

改动 文件 说明
版本0.2.1 version.json/config.yaml/evolution_manager.py 版本号+changelog更新
出站白名单 config.yaml 加harvenhub.com到allowed_domains
管理后台按钮 admin.html 需求删除+用户删除按钮
version.json路由 HarvenHub init.py GET /version.json返回版本信息
插件子导航 index.html NUCLEAR覆盖 切到关于tab时隐藏插件子导航

附录E:v7.0变更详解(2026-08-09)

E.1 引擎6层流程(v7.0核心架构)

用户发消息
  ↓
第1层:_try_quick_command(正则匹配,秒回,不经过模型)
  ├─ "下载了什么|什么.*下载|下了.*啥|最近.*下载|昨天.*下载" → list_dir(Downloads)
  ├─ "目录.*什么|文件夹.*什么|有什么文件|看看.*目录|查看.*目录" → list_dir(指定路径)
  ├─ "安装.*模型|下载.*模型" → 模型安装
  ├─ "卸载.*模型|删掉.*模型" → 模型卸载
  ├─ "本地.*模型|查看本地模型" → 列出已装模型
  └─ 没匹配 ↓

第2层:_try_smart_split(智能拆分,阈值≥1)
  ├─ 检测金额:正则 (\d+(?:\.\d+)?)\s*元
  ├─ ≥1个金额 → 拆分多条记账
  ├─ 检测提醒:该(.+?)了|记得(.+?)|提醒我(.+?)|别忘了(.+?)
  ├─ 含提醒词 → 生成提醒
  ├─ 分类推断:买菜/交通/学习/餐饮(关键词匹配)
  └─ 没匹配 ↓

第3层:协作模式检查(安全开关)
  ├─ OFF → _collab_on = False
  │   ├─ 安全Skill可用(accounting/finance_report/code_audit/health_tracker)
  │   └─ 垂直Skill被阻止(music-gen/song_production)
  └─ ON → _collab_on = True
      └─ 所有Skill可用 ↓

第4层:_try_skill_trigger_match → run_skill_script_streaming(流式执行)
  ├─ 扫描所有Skill的trigger词(支持|分隔+正则)
  ├─ 匹配 → 检查协作模式(垂直Skill在OFF时阻止)
  ├─ 执行 → run_skill_script_streaming() 逐行yield stdout
  ├─ Skill名称动态显示:f"检测到【{skill_name}】触发词"
  └─ 没匹配 ↓

第5层:旧协作逻辑(fallback)
  ├─ cloud_local:外脑分析→调垂直参数→垂直执行
  ├─ local_dual:本地模型调度→调垂直参数→垂直执行
  ├─ 失败 → 提示"模型未返回内容"(含协作模式建议)
  └─ 非协作模式 → 跳过 ↓

第6层:通用模型回答
  ├─ 本地模式 → Ollama模型
  └─ 外脑模式 → DeepSeek/GLM/豆包等

消息存储:所有层级(1-4)执行结果都存入conversations+messages表,解决空对话问题。

流式执行:run_skill_script_streaming()使用subprocess.Popen逐行读取stdout,通过yield实时显示进度。

E.2 Skill系统v2(10个Skill)

E.2.1 Skill完整清单

Skill 类型 触发词 功能
accounting 脚本 记一笔|记账.元|花了.元|支出.元|收入.元|月度汇总|查账|我的账单|花了多少|余额多少 家庭记账(SQLite CRUD)
code_audit 脚本 检测废代码|代码审计|代码健康|废命令|scan code|audit code 代码健康检测(P0/P1/P2)
finance_report 脚本 财务月结|财务报告|月度报告|财务汇总|收支报告|本月报告|月结 生成Markdown财务报告
health_tracker 脚本 记录运动|记录体重|健康追踪|运动记录|健身记录|健康数据 健康数据记录
music-gen 脚本 生成音乐|创作音乐|写首歌|作曲|写.音乐|做.音乐|乡村音乐|BGM|背景音乐|编曲 调MusicGen生成音乐
song_production 脚本 写一首歌|制作歌曲|做一首完整的歌|写歌配乐|歌曲制作|编一首歌 多模型编排(写词→作曲→配声→合成)
data_analyst 提示词 数据分析|分析数据|数据报表|统计图表 数据分析建议
python_expert 提示词 Python代码|python问题|写Python|python脚本 Python编程建议
tech_writer 提示词 技术文档|写文档|技术写作|API文档 技术写作建议
workflow-extractor 提示词 提取流程|工作流|流程分析|workflow 工作流分析

E.2.2 _helpers.py(7个函数)

# data/skills/_helpers.py
call_vertical(model_id, params)     # 调垂直模型(POST /api/vertical/execute)
call_model(prompt, model=None)      # 调通用模型(POST /api/chat/internal,支持多外脑)
ask_user(question, options=None)    # 问用户(文件通信:问题文件→回答文件,120秒超时)
check_gpu()                         # 检查GPU显存(nvidia-smi)
get_db_path()                       # 返回 data/sqlite/lingzhi.db 路径
get_media_dir()                     # 返回 data/media/ 路径(自动创建)
get_reports_dir()                   # 返回 data/reports/ 路径(自动创建)

E.2.3 沙箱配置

配置 值 说明
超时 300秒 支持长时间任务(MusicGen等)
禁用模块 subprocess/socket/shutil/ctypes/requests/urllib.request 防止越权
禁用函数 eval/exec/compile/import 防止注入
流式执行 run_skill_script_streaming() Popen逐行yield stdout
AST扫描 scan_script_security() 预扫描所有.py文件

E.2.4 song_production多模型编排

# Step 1: 通用模型写歌词
lyrics = call_model("写一首乡村风格歌词,4行")

# Step 2: MusicGen生成音乐
music = call_vertical('musicgen-small', {'genre': 'country', 'duration': 30})

# Step 3: Bark演唱歌词
vocals = call_vertical('bark', {'text': lyrics[:200]})

# Step 4: FFmpeg合成
subprocess.run(['ffmpeg', '-y', '-i', music, '-i', vocals,
    '-filter_complex', 'amix=inputs=2:duration=longest', output])

E.2.5 触发词管理

  • API:GET /api/skills/triggers(列表)、PUT /api/skills/triggers/<id>(更新)
  • UI:设置→高级功能→Skill触发词管理(可视化编辑)
  • 格式:trigger: 词1|词2|词.*正则(单数trigger,不是triggers)

E.2.6 触发词安全规则

  • 必须含特定前缀或后缀(如"记账.*元"要求"记账"后跟"元")
  • 短词(≤3字符)容易误触:BGM/月结/audit 保留,其他改严格
  • 协作OFF时垂直Skill的触发词不触发

E.3 协作模式v2(安全开关)

E.3.1 三种模式

模式 _collab_on 安全Skill 垂直Skill call_vertical 旧协作逻辑
🚫 OFF False ✅可用 ❌阻止 ❌阻止 ❌跳过
☁️ 智能协作 True ✅可用 ✅可用 ✅可用 ✅fallback
🏠 本地协作 True ✅可用 ✅可用 ✅可用 ✅fallback

E.3.2 垂直Skill阻止机制

_vertical_skills = ['music-gen', 'musicgen', 'bark', 'stable-diffusion', 'huatuo']
if not _collab_on and _skill_name and any(v in _skill_name.lower() for v in _vertical_skills):
    yield ("text", f"⚠️ 【{_skill_name}】需要开启协作模式才能执行。")
    return

E.3.3 多外脑支持

# call_model()支持model参数
lyrics = call_model("写歌词", model="deepseek")  # 临时切换到DeepSeek
analysis = call_model("分析乐理", model="zhipu")  # 临时切换到GLM
# 引擎:switch_foreign_model() → 调用 → 恢复原模型
  • API:GET /api/multi-model/list(列表)、POST /api/multi-model/switch(切换)
  • UI:顶部栏下拉框快速切换

E.3.4 ask_user交互机制

Skill脚本调ask_user("什么风格?")
  ↓
写问题到 data/tmp/ask_user/{id}_question.json
  ↓
前端每2秒轮询 /api/ask_user/pending
  ↓
检测到问题 → 显示模态框 → 用户回答
  ↓
POST /api/ask_user/answer → 写 {id}_answer.txt
  ↓
Skill脚本读取回答 → 继续执行

E.4 面板系统v2

E.4.1 创建面板功能

功能 说明
模板选择 5种预设:空白/💰记账/💪健身/✅待办/📦库存
图标选择 8个emoji:💰💪✅📦📅📊🏠🎯
统计图表 汇总卡片(总记录/分类数/数值合计)+分类柱状图
搜索筛选 可选生成搜索框+类型筛选
预览 创建前预览面板效果
卡片视图 表格↔卡片视图切换(toggleView)
字段类型 7种:文本/数字/日期/下拉/多行文本/时间/图片

E.4.2 面板JS新功能

函数 说明
toggleView() 切换表格/卡片视图
renderCards(records) 渲染卡片视图
renderTable(records) 渲染表格视图
formatValue(f, val) 格式化字段值(图片缩略图/多行文本截断)

E.4.3 记账API

端点 方法 说明
/api/accounting/summary GET 总收入/总支出/分类统计/月度对比
/api/accounting/records GET 收支明细(去重,200条)

E.5 流程编辑器

E.5.1 可选模型(8种)

模型 标识 说明
🤖 通用模型 call_model 写词/分析/总结
🎵 MusicGen call_vertical_musicgen 生成音乐
🎤 Bark call_vertical_bark 文字转语音
🎨 SD call_vertical_sd 生成图片
🏥 华佗 call_vertical_huatuo 医疗问答
🎬 FFmpeg ffmpeg_merge 合并音频/视频
💾 SQLite sqlite_query 查数据库
📝 写文件 write_file 保存到文件

E.5.2 代码生成

流程编辑器自动生成Python脚本: - 导入_helpers.py - 每步生成调用代码 - 支持参数传递(上一步结果→下一步输入) - 保存为Skill(调/api/skills/generate)

E.6 高级功能面板

设置→⚙️高级功能:

功能 API 说明
触发词管理 GET/PUT /api/skills/triggers 可视化编辑所有Skill触发词
定时任务 GET/POST/DELETE /api/scheduler/* 添加/删除/查看定时任务
Obsidian同步 POST /api/knowledge/obsidian 输入vault路径→同步.md到知识库
AI生成Skill POST /api/skills/generate 输入描述→AI生成Python脚本
AirLLM状态 GET /api/airllm/status 显示安装状态+说明
硬件信息 GET /api/hardware/gpu GPU型号+显存

E.7 定时任务调度器

# src/core/task_scheduler.py
# 后台线程每60秒检查 data/scheduler.json
# 到时间自动执行对应Skill

# 任务格式:
{
    "id": "1234567890",
    "name": "每日财务报告",
    "skill": "finance_report",
    "time": "07:00",
    "enabled": true,
    "last_run": "2026-08-09 07:00"
}

E.8 AirLLM集成

# src/core/airllm_integration.py
# 检查AirLLM安装状态
# 4GB显存可跑70B模型(逐层推理)
# 24GB显存用户不需要(Ollama直接跑32B以下更快)

# API: GET /api/airllm/status
# 返回: {installed, description, benefit, warning, install_cmd, models}

E.9 智能消息拆分详细规则

E.9.1 触发条件

# 阈值≥1(单个金额也拆分)
amounts = re.findall(r'(\d+(?:\.\d+)?)\s*元', user_message)
remind_words = re.findall(r'该(.+?)了|记得(.+?)|提醒我(.+?)|别忘了(.+?)', user_message)

if len(amounts) < 1 and len(remind_words) < 1:
    return None  # 不拆分

E.9.2 金额检测正则

# 3种匹配模式
patterns = [
    r'买(\w+?)\s*(?:花(?:费)?|用)?\s*(\d+(?:\.\d+)?)\s*元',  # 买海鲜50元
    r'(\w+?)\s*(?:花费|花了|支出|用)\s*(\d+(?:\.\d+)?)\s*元',  # 加油花了600元
    r'(\w+?)\s+(\d+(?:\.\d+)?)\s*元',                          # 咖啡30元
]

E.9.3 分类推断

cat_map = {
    '菜': '买菜', '海鲜': '买菜', '肉': '买菜', '水果': '买菜',
    '加油': '交通', '油': '交通', '车': '交通', '打车': '交通',
    '书': '学习', '包': '学习', '笔': '学习',
    '饭': '餐饮', '吃': '餐饮', '餐': '餐饮', '咖啡': '餐饮',
}

E.10 设置面板(10个Tab)

Tab 内容
①基本设置 联网搜索(Bing/SearXNG三态)+语言+数据库状态
②模型管理 本地模型+外部模型(搜索优先安装器)+多模型设置(8个提供商)+协作外脑
③个人画像 用户偏好/性格/职业
④外观定制 名称/图标/主题
⑤安全隐私 杀毒+代码沙箱+隐私模式+管理员密码
⑥💾数据 数据保险箱(备份/恢复)+设备命令日志
⑦🧩插件管理 5个子Tab:🛠️技能/🧱构建/🧩Agent/🏭工坊/📦外部模型
⑧关于&连接 手机+公网+IM连接+HarvenHub+版本信息
⑨⚙️高级功能 触发词管理+定时任务+Obsidian+AI生成+AirLLM+硬件
⑩📋流程编辑器 可视化创建多模型流程(8种模型+步骤排序+代码预览)

E.11 API完整清单(v7.0)

记账API

端点 方法 说明
/api/accounting/summary GET 收支汇总
/api/accounting/records GET 收支明细

Skill/流程API

端点 方法 说明
/api/skills/triggers GET 列出所有触发词
/api/skills/triggers/ PUT 更新触发词
/api/skills/generate POST AI自动生成Skill
/api/flows GET 流程列表
/api/flows//test POST 测试运行流程
/api/hub/flows GET 可分享流程列表

对话/协作API

端点 方法 说明
/api/chat/internal POST 内部模型调用(多外脑)
/api/chat/smart-split POST 智能拆分消息
/api/conversations/by-mode GET 按模式筛选对话
/api/multi-model/list GET 外脑列表
/api/multi-model/switch POST 切换外脑

高级功能API

端点 方法 说明
/api/ask_user/pending GET 检查待回答问题
/api/ask_user/answer POST 提交回答
/api/hardware/gpu GET GPU信息
/api/airllm/status GET AirLLM状态
/api/knowledge/obsidian POST Obsidian目录同步
/api/scheduler/list GET 定时任务列表
/api/scheduler/add POST 添加定时任务
/api/scheduler/ DELETE 删除定时任务

面板API

端点 方法 说明
/api/panels GET 面板列表
/api/panels/create POST 创建面板(支持with_chart/with_search参数)
/api/panels//data GET/POST 面板数据CRUD
/api/panels//data/ PUT/DELETE 更新/删除记录

E.12 GitHub开源准备

文件 说明
.gitignore 排除config.yaml/db/venv/pycache/模型缓存/临时文件
config.example.yaml 配置模板(空API Key,8个提供商)
README.md 项目介绍+安装+功能+技术栈+贡献指南
CONTRIBUTING.md 贡献流程+代码规范+方向

E.13 新增文件清单

文件 说明
src/core/task_scheduler.py 定时任务调度器(后台线程)
src/core/airllm_integration.py AirLLM集成模块
data/skills/_helpers.py Skill辅助函数(7个)
data/skills/song_production/ 多模型编排Skill
templates/includes/tab-流程编辑器.html 流程编辑器UI
templates/includes/tab-高级功能.html 高级功能面板UI
.gitignore Git忽略文件
config.example.yaml 配置模板
README.md 项目说明
CONTRIBUTING.md 贡献指南
VERSION 版本信息

E.14 开发者六大铁律(v7.0新增第6条)

# 铁律 说明
1 重启铁律 改Flask后重启前必须netstat确认无残留进程
2 HTML铁律 改templates/includes/*.html后检查div开闭平衡
3 Flask线程铁律 app.run()必须threaded=True
4 config.yaml铁律 保存config用yaml.dump(dict(config),...)
5 NUCLEAR覆盖铁律 switchSettingsTab的NUCLEAR版在index.html
6 面板类名铁律 新面板必须用class="tab-panel"(不是settings-subpanel),否则_showPanel找不到

E.15 v7.0版本信息

版本: v0.3.0
构建: 2026-08-09
Python文件: 112个
JS文件: 25个
Skill: 10个(6脚本+4提示词)
API端点: 20+
_helpers.py函数: 7个

本文档由 Harven AI 团队维护,最后更新:2026-08-09

Harven AI 安装详解 v2.0

更新日期:2026-08-09 | 适用版本:哈文 v0.3.0+


一、系统要求

1.1 最低配置

项目 最低 推荐
操作系统 Windows 10 64位 Windows 11
Python 3.12 3.13+
内存 8GB 32GB
磁盘 5GB(不含模型) 50GB(含模型)
GPU 不需要(用外脑API) RTX 3060 12GB+

1.2 可选组件

组件 用途 是否必须
Ollama 本地模型推理 推荐(免费模型)
外脑API Key DeepSeek/GLM等 至少1个
CUDA GPU加速 有GPU时需要
FFmpeg 音视频合成 可选

二、安装步骤

2.1 一键安装(推荐)

# Windows
1. 下载哈文安装包
2. 解压到任意目录(如 H:\HarvenAI)
3. 双击「一键安装启动.bat」
4. 等待安装完成(自动创建虚拟环境+安装依赖)
5. 首次启动会要求设置管理员密码

2.2 手动安装

Step 1:安装Python

# 下载 Python 3.12+
# https://www.python.org/downloads/
# 安装时勾选 "Add Python to PATH"

Step 2:安装Ollama(可选,推荐)

# 下载 Ollama
# https://ollama.ai
# 安装后拉取模型:
ollama pull qwen2.5:14b

Step 3:克隆仓库

git clone https://github.com/YOUR_USERNAME/HarvenAI.git
cd HarvenAI

Step 4:创建虚拟环境

python -m venv .venv
.venv\Scripts\activate

Step 5:安装依赖

pip install -r requirements.txt

Step 6:配置

# 复制配置模板
copy config.example.yaml config.yaml

# 编辑 config.yaml,填入你的API Key:
# model_keys:
#   deepseek: "sk-xxxxx"     # DeepSeek API Key
#   zhipu: "xxxxx"           # 智谱GLM API Key
# ollama:
#   default_model: "qwen2.5:14b"
# collab_mode: "off"
# port: 7000

Step 7:启动

python web_app.py

或双击启动HarvenAI.bat。


三、获取API Key

3.1 外脑模型(至少选1个)

提供商 注册地址 免费额度 推荐
DeepSeek platform.deepseek.com 有 ⭐⭐⭐
智谱GLM open.bigmodel.cn 有 ⭐⭐⭐
豆包 volcengine.com 有 ⭐⭐
通义千问 dashscope.aliyun.com 有 ⭐⭐
Kimi platform.moonshot.cn 有 ⭐⭐
零一万物 platform.lingyiwanwu.com 有 ⭐
百川 platform.baichuan-ai.com 有 ⭐
阶跃星辰 platform.stepfun.com 有 ⭐

3.2 配置多个外脑

# config.yaml
model_keys:
  deepseek: "sk-xxxxx"
  zhipu: "xxxxx"
  doubao: "xxxxx"

配置后可在哈文顶部栏下拉切换外脑。


四、功能配置

4.1 查询模式

模式 说明 需要
🏠 本地模式 本地模型+知识库 Ollama
🤖 外脑模式 外部模型+知识库 API Key

4.2 协作模式

模式 说明
🚫 关闭 纯对话,安全
☁️ 智能协作 Skill编排+外脑+垂直模型
🏠 本地协作 Skill编排+本地模型+垂直模型

4.3 垂直模型(可选)

模型 用途 安装方式
MusicGen 生成音乐 垂直面板安装
Bark 文字转语音 垂直面板安装
Stable Diffusion 生成图片 垂直面板安装
华佗 医疗问答 ollama create huatuo -f Modelfile

五、Skill系统

5.1 内置Skill(10个)

Skill 触发词 功能
记账助手 记一笔/记账.*元 收支管理
代码审计 代码审计/代码健康 代码检测
财务月结 财务月结/月度报告 生成报告
健康追踪 记录运动/健康追踪 健康记录
音乐生成 生成音乐/写首歌 MusicGen
歌曲制作 写一首歌/歌曲制作 多模型编排
数据分析 数据分析/统计图表 分析建议
Python专家 Python代码/python问题 编程建议
技术写作 技术文档/写文档 写作建议
工作流提取 提取流程/工作流 流程分析

5.2 自定义Skill

  1. 创建目录:data/skills/你的skill名/
  2. 写SKILL.md(含trigger触发词)
  3. 写scripts/main.py(可执行脚本)
  4. 可用_helpers.py的函数

六、面板系统

6.1 创建面板

设置→我的面板→"+"→创建面板: - 5种模板(记账/健身/待办/库存/空白) - 7种字段类型(文本/数字/日期/下拉/多行文本/时间/图片) - 图标选择、统计图表、卡片视图

6.2 记账面板

  • 汇总卡片(总收入/支出/净收支)
  • 分类柱状图
  • 收支明细表格
  • 卡片视图切换

七、高级功能

7.1 设置→高级功能

功能 说明
触发词管理 可视化编辑所有Skill的触发词
定时任务 添加/删除定时执行Skill
Obsidian同步 输入vault路径→同步.md到知识库
AI生成Skill 输入描述→AI生成Python脚本
AirLLM状态 显示安装状态(低显存跑大模型)
硬件信息 GPU型号+显存

7.2 设置→流程编辑器

可视化创建多模型协作流程: - 8种模型可选(通用/MusicGen/Bark/SD/华佗/FFmpeg/SQLite/写文件) - 步骤排序(上移/下移) - 预览生成的Python代码 - 保存为Skill


八、常见问题

Q: 启动后白屏

  • 检查Python版本是否3.12+
  • 检查.venv是否创建成功
  • 检查依赖是否安装完整

Q: 外脑无响应

  • 检查API Key是否正确
  • 检查网络是否通畅
  • 尝试切换其他外脑

Q: 本地模型加载失败

  • 检查Ollama是否运行:ollama list
  • 检查显存是否足够
  • 尝试更小模型:ollama pull qwen2.5:7b

Q: Skill执行失败

  • 检查协作模式是否开启(垂直Skill需要ON)
  • 检查沙箱是否阻止了必要模块
  • 查看日志:logs/目录

Q: 面板不显示新功能

  • 按Ctrl+Shift+R强制刷新浏览器
  • 完全关闭哈文窗口重新打开
  • 检查panel.js是否最新版本

九、文件结构

HarvenAI/
├── web_app.py              # Flask主应用
├── config.yaml             # 配置文件(不上传GitHub)
├── config.example.yaml     # 配置模板
├── .gitignore              # Git忽略
├── README.md               # 项目说明
├── CONTRIBUTING.md         # 贡献指南
├── requirements.txt        # Python依赖
├── 启动HarvenAI.bat         # 启动脚本
├── src/
│   ├── core/
│   │   ├── engine.py       # 对话引擎
│   │   ├── scripts_runner.py # Skill沙箱
│   │   ├── panel_manager.py  # 面板管理
│   │   ├── task_scheduler.py # 定时调度
│   │   ├── airllm_integration.py # AirLLM
│   │   ├── knowledge_base.py # 知识库
│   │   └── vertical_api.py   # 垂直模型API
│   ├── models/
│   │   └── database.py      # 数据库
│   └── ui/
│       └── main_window.py   # 桌面窗口
├── data/
│   ├── skills/              # Skill目录(10个)
│   │   ├── _helpers.py      # Skill辅助函数
│   │   ├── accounting/      # 记账
│   │   ├── code_audit/      # 代码审计
│   │   ├── finance_report/  # 财务月结
│   │   ├── health_tracker/  # 健康追踪
│   │   ├── music-gen/       # 音乐生成
│   │   ├── song_production/ # 歌曲制作(多模型编排)
│   │   └── ...
│   ├── panels/              # 面板目录
│   ├── sqlite/              # 数据库文件
│   ├── media/               # 生成的音频/图片
│   ├── reports/             # 生成的报告
│   └── scheduler.json       # 定时任务
├── templates/               # HTML模板
│   └── includes/
│       ├── tab-流程编辑器.html
│       ├── tab-高级功能.html
│       └── ...
├── static/                  # 静态资源
│   └── js/modules/
│       ├── app-conversation.js
│       ├── app-panels.js
│       └── ...
└── docs/                    # 文档
    └── HarvenAI_技术详解_v7.md

十、更新日志

v2.0(2026-08-09)

  • 全面更新:Skill系统/面板系统/流程编辑器/高级功能
  • 新增10个Skill(6脚本+4提示词)
  • 新增7种面板字段类型
  • 新增流程编辑器
  • 新增多外脑切换
  • 新增定时任务
  • 新增AirLLM集成
  • 新增GitHub开源准备

v1.2

  • 基础安装说明

Harven AI 哈文 — 完整使用指南

写给不太熟悉电脑的人 — 每一步都说清楚,照着做就行

版本 v0.3.0 | 2026-08-11

一、哈文能帮你干什么

1.1 哈文是什么?

哈文就像一个住在你电脑里的智能助手。你可以用打字的方式跟它聊天,也可以用语音说话让它听写,它会帮你写文章、查资料、翻译外语、管理家里的开销。所有聊天记录都保存在你自己的电脑里,不用联网也能用。

1.2 能帮我做什么? 举几个例子

  • 聊天问答:有什么不懂的,直接打字问它。不会打字? 按键盘上的 F9 键,用嘴说就行。
  • 写东西:工作报告、朋友圈文案、给孩子的请假条,告诉它需求就行。
  • 翻译:贴一段英文进去翻成中文,或者反过来。
  • 看图片:截一张图,按 Ctrl+V 粘贴到输入框,问它"这上面写的是什么"。
  • 查最新信息:点对话区的互联网按钮,哈文会先上网搜再回答你。
  • 家庭记账:左边面板有家庭记账,记录每天花了多少钱。
  • 定时提醒:让哈文在指定时间提醒你做事。
  • 知识库:把常用文档放进去,以后问哈文就能找到答案。

1.3 用哈文需要什么?

一台普通电脑就行。哈文安装包不包含任何模型 -- 你需要什么模型,根据自己的电脑配置和需求自己下载。也可以不用本地模型,直接用"外脑模式"(让网上大模型替你回答)。

二、怎么安装哈文

2.1 第一步: 双击安装

把安装包解压,里面有一个 安装哈文.bat 文件。鼠标左键双击它。屏幕会弹出一个黑色窗口,里面有一些文字在跑 -- 这是哈文在自动安装需要的东西,不用担心。

2.2 安装过程中会发生什么?

整个过程大概5-15分钟,看网速。安装完成后,桌面上会出现一个黄色小鸭子图标,名字叫"Harven AI"。同时浏览器会自动打开哈文的主界面。如果没自动打开,自己在浏览器里输入 http://localhost:7000 按回车。

初始密码: harven2026
首次登录后建议改成你自己的密码。

2.3 第一次打开要做什么?

输入密码 harven2026 点确定就进去了。然后哈文会弹出一个3步引导:(1)改密码 (2)填API Key(可选) (3)拉模型(可选)。不急的话随时可以关掉,以后再补。

2.4 出问题了怎么办?

黑窗口一闪就没了:杀毒软件拦了。关掉杀毒软件再试。
浏览器打不开:哈文没启动成功。重新双击桌面鸭子图标。
提示缺少什么:重新双击安装哈文.bat就行。

三、怎么选模型

3.1 什么是"模型"?

模型就是哈文的大脑。不同的模型擅长不同的事:有的擅长聊天,有的擅长写代码,有的擅长翻译。

3.2 本地模型 -- 用你自己电脑算

优点:完全免费,不联网,对话内容不会上传。
缺点:速度取决于电脑配置。内存越小越慢。

选模型看你自己

哈文安装包不带任何模型。你的电脑配置决定能跑多大模型:内存小的选小模型(7b之类),内存大的可以选大模型(14b之类)。拿不准就先从小模型开始试,不够再换。

3.3 外脑模式 -- 让网上大模型替你回答

优点:回复快、质量高,不需要好配置。
缺点:需要申请API Key(免费),每次回复有少量费用。

3.4 到底选哪个?

不确定就先试外脑模式 -- 回复快、质量好。用熟了再考虑拉本地模型。两个随时切换。

四、怎么拉模型

4.1 去哪里拉模型

哈文 -> 设置 -> 模型管理 -> 往下找"一键拉模型"按钮。

哈文安装包不带任何模型

哈文刚装完是什么模型都没有的。你需要根据自己的电脑配置和需求自己拉。没有"标准配置"。

4.2 怎么选模型?

哈文会列出所有可用模型。你根据电脑配置选:内存小于8GB选带"7b"的,8-16GB选"14b"的,更大内存选更大的。拿不准先装小的,不够再换。

4.3 拉模型要等多久?

模型通常2-5GB。网速快5-10分钟,慢的话15-30分钟。下载时按钮旁边有进度,可以关掉设置页去干别的。

4.4 除了"一键拉"还能怎么装模型?

设置里还有一个模型市场页面,能搜魔搭(ModelScope)和HuggingFace上的模型。如果你在网上下载了 .gguf 格式的模型文件,也可以在已安装页面直接导入,不用联网下载。

4.5 本地双模配置是什么?

如果你有两个模型 -- 比如一个用来聊天,一个用来生成音乐 -- 可以在设置的本地双模配置页面分别指定:一个当"大脑模型"(负责对话),一个当"工具模型"(负责垂直任务)。两个模型各自独立启停,互不影响。

4.6 拉模型失败了怎么办?

下载断了:重新点"一键拉模型",会从断的地方继续。
空间不足:清理硬盘或换小模型。
连接失败:网络不稳定,换时间再试。

五、怎么用外脑

5.1 什么是API Key?

API Key就像一张门禁卡。你去大模型公司网站免费注册一个账号,他们会给你一串字母数字。填到哈文里,哈文就能用他们的模型帮你回答了。

5.2 去哪里申请?

哈文支持多家外脑,选一个注册就行(不用全部注册):

提供商申请地址特点
DeepSeekplatform.deepseek.com推理强,新用户送免费额度
智谱AI (GLM)open.bigmodel.cn中文好,免费额度大方
豆包 (火山引擎)console.volcengine.com字节跳动,风格多样
通义千问 (阿里)dashscope.aliyun.com阿里云,企业场景适用
Kimi (Moonshot)platform.moonshot.cn长文本处理能力强
零一万物 (Yi)platform.lingyiwanwu.com开源模型,中文不错
百川 (Baichuan)platform.baichuan-ai.com医疗/法律垂直领域强
阶跃星辰 (Step)platform.stepfun.com多模态,图文均可

每家申请方式一样:注册账号 -> 找"API Key" -> 点创建 -> 复制那串字母数字。选一家就够了,日常用 DeepSeek 或智谱最稳。

5.3 怎么填到哈文里?

(1)哈文 -> 设置 -> 模型管理
(2)找到对应栏(如"DeepSeek")
(3)粘贴字母数字到输入框
(4)点 保存
(5)在"当前使用的外脑"下拉框选 DeepSeek
(6)回到对话页,底部选 外脑 模式。开始打字!

5.4 外脑要花钱吗?

每个API Key都有免费额度。DeepSeek新用户送几十万token,日常聊天用一个月没问题。用完免费额度后充10块钱能用很久。每次对话大概1-3毛钱,比订会员便宜得多。

六、对话区操作技巧 -- 你可能不知道的功能

6.1 用嘴说话代替打字 (F9语音输入)

不会打字? 或者打字太慢? 按键盘上的 F9 键,哈文开始录音。对着麦克风说话,说完再按一次 F9 停止。哈文会自动把你说的内容转成文字,填到输入框里。

第一次用语音输入时,哈文可能需要下载语音识别模型。下载完之后就能离线用了,不联网也行。

6.2 让哈文上网搜最新信息 (互联网按钮)

有时候你问的东西需要最新信息 -- 比如"今天天气怎么样"或者"最近的新闻是什么"。这时候:

(1)看对话区底部,找到一个 互联网 按钮(可能显示为🌐图标)
(2)点一下让它亮起来
(3)然后正常打字问问题
(4)哈文会先上网搜,再根据搜索结果回答你

开了互联网搜索后,回复会慢10-20秒(因为要先搜网页)。不需要联网信息的时候关掉它,回复会快很多。

6.3 截图直接粘贴问哈文 (Ctrl+V粘贴图片)

看到一张图片有不懂的内容? 直接操作:

(1)按 Win + Shift + S 截屏(或者用其他截图工具)
(2)回到哈文的输入框
(3)按 Ctrl + V 粘贴
(4)图片会出现在输入框上方
(5)打字问它"这上面写的是什么"或者"帮我翻译这张图里的英文"
(6)哈文会看图回答你

这个功能需要你的模型支持看图(视觉模型)。如果模型不支持,哈文会提示你。

6.4 键盘快捷操作

按键作用
Enter发送消息
Shift + Enter换行(不发送,继续输入)
F9开始/停止语音录入
Ctrl + V粘贴图片或文字
Ctrl + Shift + R强制刷新页面(页面卡住时用)

6.5 输入 /help 随时查帮助

在输入框里打 /help 然后发送,哈文会直接返回一份帮助清单,不用打开这个网页。还支持搜索:

  • /help -- 看所有帮助主题
  • /help 模型 -- 查看模型相关帮助
  • /help 外脑 -- 查看外脑配置帮助
  • /help 手机 -- 查看手机端帮助
  • /help 密码 -- 查看改密码帮助

这个命令不走模型推理,秒回,不花钱。

6.6 系统操作会弹窗确认 (安全!)

当你想让哈文帮你做电脑上的事情(比如截图、打开D盘、安装软件),哈文会先弹出确认框问你是不是真的要执行。这是为了防止聊天时不小心触发系统操作。点"确认执行"才会真的做,点"取消"就当普通聊天。

在协作模式下,系统操作会直接执行不弹窗。因为协作模式本身就是你主动开启的"干活模式",不需要反复确认。

七、垂直模型 -- 音乐、图片、代码

7.1 什么是垂直模型?

普通模型擅长"聊天"。但有些事需要专门的模型 -- 比如生成音乐、看图识别。这些专门做一件事的模型,哈文里叫"垂直模型"。

哈文安装包不带任何模型

哈文的安装包本身不包含任何本地模型,也不包含任何垂直模型。所有模型都是用户根据自己的电脑配置和需求自己选择下载的。不要把作者的电脑配置当成标准。

7.2 哈文支持哪些垂直模型?

哈文支持以下类型,但都不预装。你需要哪种自己去下载:

类型能做什么需要的模型怎么下载
音乐生成根据描述创作音乐musicgen设置->模型管理->搜索
图片理解看图回答问题minicpm-v设置->模型管理->搜索
代码生成写代码、查bugdeepseek-r1等设置->模型管理->搜索

注意:上面是举例,不是推荐。你根据需求决定要不要装。日常聊天写文章用本地模型或外脑就够了,不一定需要垂直模型。

7.3 怎么用垂直模型?

对话区底部点 垂直 按钮,右边会展开一个画板。在画板里描述你要什么 -- 比如"帮我生成一首轻快的钢琴曲"。画板可以和对话区同时使用,左边聊天,右边生成内容。

八、协作模式 -- 本地+外脑配合

8.1 什么是协作模式?

本地模型想个草稿,外脑来润色。两个模型一起干活,比单一模型效果好。像你写文章初稿(本地),再请专家修改(外脑)。

8.2 什么时候用?

  • 写重要文档:本地出框架,外脑润色语言
  • 翻译长文:本地先翻译,外脑检查语法
  • 复杂分析:本地提取信息,外脑做推理
  • 敏感内容:本地处理隐私部分,只把脱敏摘要发给外脑

8.3 怎么开启?

对话区底部的"协作"按钮有三种状态:关闭(只用本地)、外脑(直接让外脑回答)、协作(本地+外脑配合)。选协作模式后,哈文自动决定哪些部分用本地、哪些请外脑帮忙。

隐私保护:协作模式下,本地模型先处理你的问题,然后把"需求摘要"发给外脑。外脑只看到摘要,看不到你的原始文字。在设置->模型管理里可以调隐私档位:全量(传全部)、平衡(隐藏手机号身份证)、严格(只传摘要)。建议选平衡。

8.4 实际例子

例子1 -- 写商业计划书:
你说"帮我写一份奶茶店创业计划书"
-> 本地模型:列出大纲(市场分析/成本预算/营销方案)
-> 外脑:根据大纲逐段撰写详细内容
-> 最终答案:结构清晰、内容专业
例子2 -- 隐私处理:
你说"我身份证号是320xxx,帮我查账户"
-> 本地模型:检测到身份证号,替换为[身份证号]
-> 外脑:只看到"请[身份证号]用户查询..."
-> 你的隐私没有泄露给外脑

九、长效任务 -- 让哈文自己干活

9.1 什么是长效任务?

普通对话是你打一行字,哈文回一行。但有些事需要花很长时间 -- 比如翻译200页的书、处理100个Excel文件。这些就叫"长效任务"。设置后你可以关掉浏览器,哈文在后台自己跑。跑完了通过飞书/钉钉通知你。

9.2 哪些事适合做长效任务?

  • 批量翻译:把50个文件翻译成中文
  • 数据清洗:处理100个CSV文件,提取关键字段
  • 定时监控:每小时检查某网站是否更新
  • 文档生成:根据知识库自动生成月度报告
  • 代码审查:逐一审查今天的所有代码提交

9.3 怎么创建?

直接在对话里告诉哈文你要做什么。比如:"帮我把 data/docs/ 文件夹下所有PDF翻译成中文,结果放到 data/output/ 目录,完成后通过飞书通知我"。哈文会自动列出文件、逐个翻译、保存、通知。

9.4 流程编辑器

设置里有一个流程编辑器页面。如果你想要更复杂的多步骤自动化流程,可以在这里可视化地拖拽节点来编排。比如"读取文件 -> 翻译 -> 生成摘要 -> 发送通知"这样的流程。编排好之后保存为模板,以后可以反复用。

十、设置里每个按钮是干嘛的

10.1 基本设置

改端口号(一般不用动)、设置开机自动启动。

10.2 模型管理(最重要)

填API Key、拉模型、切换外脑、加自定义模型、设置隐私档位。

10.3 个人画像

告诉哈文你的名字、职业、兴趣。填了之后回答更贴合你的情况。哈文也会从日常对话中自动学习你的偏好,越用越懂你。

10.4 外观定制

改主题颜色、字体大小。手机上同步生效。

10.5 安全隐私(重要!)

改密码:把初始密码换成自己的。
隐私档位:控制外脑能看到多少你的信息。建议"平衡"。
数据保险箱:加密存储你的敏感信息(密码、银行卡号等),只有输入主密码才能查看。

10.6 高级功能

硬件检测:看你的电脑能不能跑本地模型。
手机+公网:获取IP地址,手机上输入这个地址就能用哈文。
渠道接入:把哈文接到飞书/钉钉群。

10.7 代码沙箱

设置里有一个代码沙箱页面。如果你(或者哈文)需要运行Python/JS/Shell代码,可以在这里安全地跑 -- 15秒超时自动终止,不会搞坏你的电脑。普通用户不用管这个。

10.8 语言设置

哈文支持中英文界面切换。如果你需要其他语言,可以自行导入语言包。

10.9 保底模式

万一哈文的核心服务出了问题,保底模式会自动启动,保证基本功能还能用。设置里有"自动修复"按钮,遇到故障点一下试试。

10.10 数据备份

备份和恢复对话记录。建议每月备份一次。备份文件在你自己电脑里,不会上传到网上。

十一、左边那些面板是什么

11.1 知识库

上传文件让AI查阅回答。支持 txt/pdf/docx/md,文件不超过50MB。

11.2 专项培养(Agent)

让哈文扮演不同角色(如"英语老师")。创建方法有两种:

  • 手动创建:点专项培养 -> 新建 -> 起名字 -> 写说明 -> 保存
  • Agent工坊(推荐):用自然语言一句话描述你要什么角色,AI自动帮你生成。比如输入"我需要一个能帮我纠正英语语法的老师",它自动创建好。

11.3 任务管理

定时提醒、周期任务、查看长效任务状态。

11.4 监控中心

查看哈文内存占用、CPU使用情况。出问题时排查用。

11.5 HarvenHub

哈文的"应用商店" -- 浏览和安装别人写的工具。

11.6 家庭记账

记录收支,月度统计。

11.7 居家管理 + 我的面板

菜谱、家务、购物清单。我的面板可自定义组合功能。

十二、手机也能用哈文

12.1 怎么在手机上打开

电脑和手机连同一个WiFi。哈文 -> 设置 -> 高级功能 -> 手机+公网,会显示一个地址如 192.168.1.57:7000。手机浏览器里输入这个地址就能看到哈文了。

12.2 iPhone用户注意

左上角有一个菜单按钮,点它拉出侧边栏。不点只能看到对话区。

12.3 手机上能做什么?

聊天、查知识库、用外脑 -- 全部功能都有了。唯一限制是不能拉模型(只能在电脑上操作)。

十三、怎么接到飞书/钉钉群

13.1 飞书群

电脑打开飞书 -> 目标群 -> 群设置 -> 群机器人 -> 添加自定义机器人 -> 复制Webhook URL -> 哈文 设置->高级功能->渠道接入 -> 选"飞书机器人" -> 粘贴 -> 添加。

13.2 钉钉群

步骤一样,选"钉钉机器人"。钉钉的Webhook在群设置->智能群助手->添加机器人里。

飞书/钉钉机器人是单向通知(哈文->群)。要双向对话用手机浏览器打开哈文。

十四、HarvenHub 应用商店

14.1 能装什么?

Skill(工具插件)、Agent(专业角色)、Template(流程模板)、Prompt(提示词模板)。

14.2 怎么装?

左边面板点 HarvenHub -> 浏览分类 -> 点进去看介绍 -> 点"安装"。安装前哈文会告诉你需要什么额外的软件包,缺的自动帮你装。

14.3 自己也能做Skill

设置里有Skill制作向导。你用自然语言描述"我想要一个能帮我把CSV转成Excel的Skill",AI会自动帮你生成代码。生成后可以测试、保存、甚至上传到HarvenHub分享给别人。

十五、用代码远程调用哈文

15.1 什么是API?

哈文除了能聊天,还是一个"API服务器" -- 你写Python脚本就能远程调用哈文的能力。比如你在另一个程序里想生成一首歌,不用自己写模型,直接调哈文就行。

15.2 能调什么?

API做什么请求方式
/api/vertical/generate调用垂直模型生成POST JSON
/api/vertical/models列出所有垂直模型GET
/api/multi-model/switch切换当前外脑POST JSON
/api/channels管理渠道(增删查)GET/POST/DELETE
/api/webhook/<channel_id>接收外部渠道消息POST JSON

15.3 Python调用示例

import requests

# 列出所有垂直模型
r = requests.get('http://localhost:7000/api/vertical/models')
print(r.json())

# 切换外脑为智谱GLM
r = requests.post('http://localhost:7000/api/multi-model/switch', json={
    "provider": "zhipu"
})
print(r.json())

# 添加飞书渠道
r = requests.post('http://localhost:7000/api/channels', json={
    "type": "feishu",
    "name": "我家群",
    "webhook": "https://open.feishu.cn/open-apis/bot/v2/hook/xxx"
})
print(r.json())
安全提醒:不要在公网暴露7000端口。API只在局域网内使用。一定要公网访问就先改复杂密码。

十六、常见问题

Q1: 为什么打开哈文是空白的?
按 Ctrl+Shift+R 强制刷新。不行就关掉浏览器重开。
Q2: 对话记录消失了?
可能被自动分类到别的分类了。在左边对话列表找,或用顶部搜索框搜。
Q3: 外脑选了,回答的还是本地模型?
切换后等3秒。检查设置->模型管理里,外脑状态是不是"已配置"。
Q4: 忘了密码怎么办?
在哈文安装目录找 config.yaml 文件,用记事本打开,admin_password 那一行就是密码。
Q5: 外脑花多少钱?
每次对话大概1-3毛钱。充10块能用大概100次对话。
Q6: 本地模型跑得很慢?
换小一点的模型(如7b),或者直接切外脑。
Q7: 安装时黑窗口报错?
截图发给我们,常见的是网络问题或杀毒软件拦截。
Q8: iPhone看不到输入框?
Safari底部工具栏挡住了。上滑一点。或者把哈文添加到主屏幕单独打开。
Q9: 知识库上传了文件,问它说找不到?
把内容复制粘贴到txt文件里再上传。txt最稳。
Q10: 语音输入没反应?
第一次用需要下载语音识别模型,等几分钟。下载完就能离线用了。
Q11: 协作模式比外脑模式慢?
正常。因为要先用本地模型处理再给外脑。多等几秒,质量会更好。
Q12: 长效任务中途断了怎么办?
在任务管理面板查看进度。断了的任务点"继续"会从断点重新开始。
Q13: 哈文突然不能用了?
去设置找"保底模式"页面,点"自动修复"按钮试试。还不行就重启哈文。
Q14: 怎么随时查帮助?
在输入框里打 /help 发送,秒回帮助清单。也可以点侧边栏的"帮助"按钮打开这个完整指南。

十七、让哈文更安全更好用

17.1 改掉默认密码

去 设置 -> 安全隐私 -> 换一个只有你自己知道的密码。

17.2 不要让陌生人访问

不要把 http://你的IP:7000 发给不认识的人。

17.3 外脑隐私档位

全量:全部内容发给外脑。
平衡(推荐):自动隐藏身份证号、手机号等。
严格:最安全但质量可能下降。

17.4 用数据保险箱存敏感信息

设置->安全隐私里有数据保险箱。你的密码、银行卡号等敏感信息可以加密存在里面,只有输入主密码才能查看。比存在记事本里安全多了。

17.5 定期备份

去 设置 -> 数据 -> 备份。建议每月备份一次。

17.6 更新哈文

有新版本时下载新安装包覆盖安装即可。对话记录和设置都在。