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. 代码审计 Skilldata/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 sandboxallow-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
  ├── 数据库(SQLiteusers/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 中的 switchSettingsTabwindow.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 更新哈文

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