当前位置: 首页 > news >正文

Multi-Agent AI 真人化聊天室

## 项目亮点

- **真正的多 AI 群聊**:一个房间可加入多个 AI 成员,成员不仅响应用户,也会结合上下文相互接话;调度器负责选择发言成员和顺序,避免机械式轮流回答。
- **可长期复用的聊天成员**:每个成员可独立配置名称、头像、角色设定、模型和行为参数,保存后可以反复加入不同房间,重启应用后仍会保留。
- **灵活的模型连接**:通过 OpenAI-compatible API 接入云端服务、兼容网关或本地模型,并允许不同成员使用不同连接和模型。
- **面向长期对话的上下文与记忆**:提供上下文预算、历史消息裁剪、成员记忆、房间记忆和相似度检索,避免长对话无限堆叠上下文。
- **本地优先与隐私保护**:房间、成员和消息默认保存在本机 SQLite;Windows 使用当前用户作用域 DPAPI 加密 API Key,日志、导出和错误信息执行敏感字段脱敏。
- **完整的数据管理能力**:支持备份、恢复、导入预览、事务化导入和导出,并覆盖头像、记忆、历史数据及卸载数据保留等生命周期场景。
- **可交付的 Windows 桌面应用**:Electron/React 前端与 FastAPI 后端独立开发、组合打包,后端由桌面进程监管,同时提供安装包和便携 ZIP。
- **可验证的工程体系**:前后端与共享协议分离,统一维护 OpenAPI、WebSocket 事件和 TypeScript 类型;仓库包含后端、协议、Electron 与 Playwright 测试,以及安全扫描、SBOM、第三方许可证清单和 GitHub CI。

## 前置条件

- Windows 10/11 与 PowerShell
- Python 3.12 或 3.13
- Node.js 20+ 与 npm
- 首次安装后约需 1 GB 空间(Electron、Playwright Chromium 和 Python 依赖)

## 安装

在仓库根目录执行:

```powershell
python -m venv backend\.venv
.\backend\.venv\Scripts\Activate.ps1
python -m pip install -e "backend[dev]"

cd packages\protocol
npm.cmd install
cd ..\..\frontend
npm.cmd install
npx.cmd playwright install chromium
cd ..
```

## 分别启动后端与前端

打开第一个 PowerShell,在仓库根目录启动后端:

```powershell
.\backend\.venv\Scripts\python.exe scripts\dev_backend.py
```

浏览器开发后端只监听本机专用端口 `18000`,默认地址为 `http://127.0.0.1:18000`。健康检查是 `http://127.0.0.1:18000/health`,交互式 API 文档是 `http://127.0.0.1:18000/docs`。如需覆盖端口,可在启动前设置 `MULTIAGENT_BACKEND_PORT`,并同步修改前端回退地址。

打开第二个 PowerShell,独立启动前端开发服务器:

```powershell
cd frontend
npm.cmd run dev
```

Vite 默认显示 `http://127.0.0.1:5173`,浏览器会通过内置的本地回退配置连接 `http://127.0.0.1:18000`。若页面显示“后端离线”,先确认第一个终端仍在运行且 `/health` 返回成功。Electron 打包会另外构建 `frontend/src/main/` 和 `frontend/src/preload/`;日常页面开发只需上述两个独立进程。前端代码和依赖始终留在 `frontend/`。

## 模型连接配置

全新工作区会自动打开首次使用引导,按“创建并测试模型连接 → 聊天成员 → 房间 → 第一条消息”展示真实配置进度。连接测试成功后才会进入下一步,首条消息发送成功才记录完成;“已完成”和“已跳过”分别保存在本机浏览器存储中。引导不会阻挡熟练用户,之后也可在“数据与设置”中重新打开。

新建连接时可选择三种可编辑预设:

- `自定义 OpenAI-compatible`:所有字段留给用户填写;
- `OpenAI API`:预填官方兼容地址和一个可修改的模型 ID,不包含 API Key;
- `本地 Ollama`:预填 `http://127.0.0.1:11434/v1` 和 `qwen2.5:7b`,API Key 可留空。

预设只是表单起点,不会锁定服务地址或模型名称,也不会静默发起外部请求。保存后仍应使用“测试连接”确认本机或远端服务确实可用。

启动产品后按以下 UI 顺序完成配置,无需手工调用 API:

1. 进入“模型连接”,点击“新建连接”,填写连接名称、OpenAI-compatible Base URL、API Key 和聊天模型名称并保存。Base URL 通常以 `/v1` 结尾。
2. 进入“聊天成员”,点击“新建成员”,选择刚保存的连接,确认模型 ID,填写成员名称和角色设定;需要时可上传头像,然后保存。
3. 进入“房间与聊天”,点击“新建房间”,填写房间名称并勾选至少一位已有成员。创建后,在输入框发送消息即可让该房间的成员参与对话。

房间默认最多 4 轮、每周期 2 位成员、单次生成 60 秒、8192 Token 和 1 USD 成本预算。这些值可在“房间设置 → 执行边界”编辑;“显式无限模式”必须主动勾选,暂停与停止始终可用。成本预算需要同时填写输入、输出的每 Token 单价;若供应商公布的是每百万 Token 价格,应先除以 `1,000,000`。两项单价留空时,成本会如实显示为未知且成本预算不生效,Token、轮次与超时边界仍然生效。

成员、房间和房间成员关系均保存在仓库本地 SQLite 中,停止并重新启动后端后仍会保留。连接表单字段含义如下:

- `provider_type`:提供商类型;当前兼容 OpenAI 的服务填写 `openai_compatible`;
- `default_model_id`:提供商实际支持的模型名;
- `embedding_model_id`:可选的向量模型名,仅在服务商支持 `/embeddings` 时填写;留空时明确回退到文本相似度;
- `base_url`:兼容 API 的根地址,必须包含 `http://` 或 `https://`;
- `api_key`:仅在创建或更新连接时提交。

产品表单中的“聊天模型名称”对应 API 的 `default_model_id`,“Embedding 模型名称”对应 `embedding_model_id`,两者不能混用。保存后可点击“测试连接”。测试失败时先检查 Base URL 是否重复包含 `/v1`、模型名是否存在、网络代理与额度是否正常。

Windows 桌面版使用当前 Windows 用户作用域 DPAPI 加密 API Key 后写入 SQLite,密文不能直接迁移给另一 Windows 用户。读取 API、日志、普通导出、备份、OpenAPI 响应定义、UI 响应和生成产物不会返回完整密钥。旧版明文记录仍可读取,编辑连接后会改写为 DPAPI 密文。非 Windows 开发环境仅在显式设置 `MULTIAGENT_ALLOW_PLAINTEXT_CREDENTIALS=1` 时允许保存密钥,该回退不适用于生产。不要把真实密钥写入仓库、截图、问题报告或命令行参数;发生泄露后应立即在提供商后台轮换。

## 常见启动检查

```powershell
# 后端是否在线
Invoke-RestMethod http://127.0.0.1:18000/health

# 后端测试(始终使用仓库虚拟环境)
.\backend\.venv\Scripts\python.exe -m pytest backend\tests -q

# 共享协议(在 packages/protocol 内)
npm.cmd run test
npm.cmd run typecheck

# 前端构建(在 frontend 内)
npm.cmd run build
```

端口被占用时,用 `Get-NetTCPConnection -LocalPort 18000` 或 `5173` 定位进程;导入错误通常表示虚拟环境未激活或后端依赖未安装;前端白屏时先查看浏览器/Electron 开发者工具,并确认 `npm.cmd install` 在 `frontend/` 内完成。
 
image

image

image

image

image

 

 

 

 
 
 
 
http://www.jsqmd.com/news/1222239/

相关文章:

  • 原生JavaScript钩子技术:函数拦截与无侵入式代码增强实战
  • UnityHFSM分层状态机入门:10分钟实现AI行为管理
  • 2026年7月最新爱彼扬州江都吾悦广场维修保养服务电话 - 爱彼中国官方服务中心
  • 从零掌握Locust:Python分布式性能测试实战指南
  • 2026泉州民宿推荐排行榜:半隐山也藏山守静,稳居口碑榜首的度假黑马 - 热点速览
  • 2026年07月:佛山铜马赛克瓷砖源头厂家——佛山市威耀安建材有限公司硬实力全解析 - 甄选服务推荐
  • FPGA实现IIR滤波器:Verilog代码设计与稳定性优化实践
  • XUnity.AutoTranslator游戏实时翻译插件:从安装配置到离线词典的完整指南
  • AM62L调试寄存器深度解析:DRM与CSTPIU配置实战指南
  • 【AI写Makefile安全红线】:3类静默崩溃风险、4种依赖链断裂陷阱,资深构建工程师紧急预警
  • 匠心精选:推荐一下全国不错的太空舱公司 - 品牌推广大师
  • 【Bug已解决】New updates remove pinned chats 解决方案
  • 武汉智工职业技术学校2026年招生简章+招生报名入口 - 武汉中职最新信息发布
  • TI AM62L DDR BIST实战:从寄存器配置到内存故障诊断
  • 数据不够怎么办?小样本下的预测性维护建模技巧
  • UI-TARS桌面版:5分钟开启你的AI智能办公助手新时代
  • 无限画布制作沙发换装视频,太有创意了!
  • Kimi智能补全与调试辅助实战指南(IDE集成避坑手册)
  • 2026年7月最新天梭嘉兴桐乡宝龙广场维修保养服务电话 - 天梭服务中心
  • 2026年7月最新劳力士杭州拱墅万达广场维修保养服务电话 - 劳力士官方服务中心
  • 积家中国官方售后服务中心|最新网点地址及热线权威信息声明(2026年7月最新) - 积家官方售后服务中心
  • 高管会议不敢用AI记录?我们压力测试了17家SaaS平台,仅3家通过GDPR+等保三级双认证(含实测对比表)
  • 湖北现代科技2026年最新招生咨询 - 武汉中职最新信息发布
  • Odoo12自定义弹窗实现与优化实践
  • 如何识别真实项目价值:从数据陷阱到决策实践
  • 2026年7月最新爱彼大连普兰店万达广场维修保养服务电话 - 爱彼中国官方服务中心
  • WD-40化学原理与精准操作:从除锈润滑到十大隐藏用法实战手册
  • Android定时任务:Handler与Timer的深度对比与实践
  • 开源软件评估与商业化潜力分析
  • 宝珀中国官方售后服务中心服务电话及详细网点地址实地考察报告多信源验证(2026年7月最新) - 宝珀官方售后服务中心