assistant 的桌面优先客户端(Tauri + React + Vite),用于承载聊天交互与本地知识工作区(任务 / 知识)体验。
本子项目目前处于研发阶段,界面结构、交互细节与接口约定可能持续调整。
当前目标是完成可联调、可验证、可迭代的桌面客户端基础能力,不涉及生产化部署说明。
assistant-desktop 是 xiaoyu 的用户交互入口之一,负责:
- 聊天会话与流式回复展示(对接
assistant-agent) - 任务工作区(对接
assistant-mcp的tasks能力) - 知识工作区(对接
assistant-mcp的cards能力) - 桌面端壳集成(Tauri)
相关工程:
- assistant-agent - 主智能体运行时
- assistant-mcp - MCP 能力网关
- assistant-eval - 评测系统
- 会话列表加载、切换、新建、删除
- 会话历史加载
- 流式聊天回复(SSE)
- 推理内容 / 工具结果事件的前端归一化展示(基础能力)
- Agent 连通状态轮询(在线 / 离线 / 检查中)
待办面板- 任务日历视图
- 日期切换与跨月浏览
- 任务 Markdown 内容展示
知识面板- 知识树加载与展开
- 搜索过滤(目录 / 文档)
- 知识卡片内容展示(Markdown)
- Tauri dev/build 脚本已接入
- 本地窗口加载项目内前端(Vite dev server / dist)
- 桌面能力适配接口雏形(打开链接、通知;当前以 Web fallback 为主)
src/桌面端前端代码(React)src/components/页面组件(聊天区、侧边栏、工作区面板等)src/services/后端接口访问层(agent / mcp)src/stores/前端状态管理(聊天状态)src/platform/桌面能力适配层src/config/运行时配置(环境变量)src-tauri/Tauri Rust 壳与打包配置docs/desktop-plan.md桌面端设计/规划文档package.json前端与 Tauri 脚本
本项目本身是客户端,需要依赖本地服务提供接口:
assistant-agent:提供聊天与会话相关接口- 例如:
/api/sessions、/api/chat/stream
- 例如:
assistant-mcp:提供任务与知识数据接口- 例如:
/tasks、/cards/tree、/cards/content
- 例如:
如果未启动相关服务,客户端会出现离线状态或加载失败提示,这是当前预期行为。
通过 Vite 环境变量配置后端地址与请求行为:
VITE_API_BASE_URLassistant-agent的基础地址- 示例:
http://localhost:8080
VITE_MCP_BASE_URLassistant-mcp的基础地址- 示例:
http://localhost:8081
VITE_API_CREDENTIALSfetch的credentials配置- 可选值:
same-origin/include/omit - 默认值:
same-origin
说明:
- 若
VITE_API_BASE_URL/VITE_MCP_BASE_URL为空,则按当前页面同源地址请求。 - 客户端会自动识别当前运行环境(Web / Tauri Desktop)。
在本目录执行:
-
安装依赖
npm install
-
启动前端开发模式(Web)
npm run dev
-
启动桌面开发模式(Tauri)
npm run tauri:dev
-
代码检查
npm run lint
在本目录执行:
-
前端构建
npm run build
-
桌面打包(Tauri)
npm run tauri:build
说明:
- Tauri 会使用
src-tauri/tauri.conf.json中的配置:- 开发模式自动启动 Vite dev server(默认
http://localhost:5173) - 构建模式使用本目录
dist/作为前端静态资源
- 开发模式自动启动 Vite dev server(默认
- MCP 连通状态在顶部状态栏中尚未接入真实检测(当前为占位展示)
- 桌面原生能力仍以浏览器兼容实现为主(通知 / 打开链接)
- 后端自动发现与自动拉起尚未实现
- 增加桌面能力适配层(打开链接、通知、Reveal in Finder)
- 客户端内展示后端连接状态(含 MCP)
- 自动探测/配置本地
assistant-agent地址 - 自动拉起本地后端进程(第二阶段)