基于 Tauri 2.0 + React + TypeScript + Claude Agent SDK 构建的桌面 AI 助手应用。
项目核心目的是为了学习使用Claude Agent SDK来开发任意专属功能的AI Agent,该SDK不但内置了完整的模型调用、任务分解与调度能力,还提供了内置的本地文件读写Tools,能够提供基本的Claude Code同等能力。
只要在其基础上增加新的Tools,和特定目的的系统提示词,就可以将它封装成一个功能完善的专属的AI Agent。
而且兼容所有已经为Claude Code提供了兼容接口的国产模型平台的接口。
- 🚀 流式对话:实时打字机效果,体验流畅
- 💬 多轮对话:保持上下文记忆,支持复杂任务
- ⚙️ 系统提示词:预设四种专业模式(通用助手、数据分析、文案专家、深度调研)
- 🛠️ 工具调用:支持文件读写、代码执行、文本搜索等
- 🎨 现代UI:基于 Ant Design X,界面美观易用
- ⏱️ 执行计时:实时显示对话持续时间
- 💾 本地存储:配置信息本地保存,无需重复设置
桌面应用:Tauri 2.0 + React 19 + TypeScript + Ant Design X + Vite
后端服务:Node.js + Express + Claude Agent SDK + SSE(流式通信)
命令行客户端:TypeScript + Claude Agent SDK + Chalk + Ora
本项目包含三个部分:
- 桌面应用 - 跨平台的图形界面应用
- 后端服务 - 提供 API 接口
- 命令行客户端 - 交互式 CLI 工具(独立使用)
# 前端依赖
npm install
# 后端依赖
cd backend && npm install && cd ..方式一:使用启动脚本(推荐)
# macOS/Linux
./start.sh
# Windows
start.bat方式二:手动启动
# 终端 1 - 启动后端
cd backend && npm run dev
# 终端 2 - 启动前端
npm run tauri dev- 应用启动后打开"设置"
- 选择系统提示词类型(通用助手/数据分析/文案专家/深度调研)
- 填写 API Key 或 Auth Token(至少一项)
- 保存后即可开始对话
命令行客户端不依赖桌面应用和后端服务,可以单独使用:
# 进入客户端目录
cd agentClient
# 安装依赖
npm install
# 复制并配置
cp config.example.json config.json
# 编辑 config.json 填写 API Key 等信息
# 运行
npm run dev详细使用说明请查看 agentClient/README.md
| 类型 | 说明 | 适用场景 |
|---|---|---|
| 通用助手 | 全能型 AI 助手 | 编程、分析、写作等通用任务 |
| 数据分析 | 数据分析专家 | 数据处理、统计分析、可视化建议 |
| 文案专家 | 内容创作专家 | 营销文案、技术文档、创意写作 |
| 深度调研 | 调研分析专家 | 市场研究、竞品分析、趋势预测 |
每种类型都有完整的专业提示词,可在设置中查看和自定义修改。
AIAgentDesktop/
├── src/ # 前端源码
│ ├── components/ # React 组件
│ │ ├── ChatInterface.tsx # 主聊天界面
│ │ └── SettingsModal.tsx # 设置对话框
│ ├── types/ # TypeScript 类型
│ ├── utils/ # 工具函数(API、存储)
│ └── App.tsx # 应用入口
│
├── backend/ # 后端源码
│ ├── server.ts # Express 服务器
│ └── package.json # 后端依赖
│
├── agentClient/ # 命令行客户端
│ ├── client.ts # CLI 主程序
│ ├── config.json # 配置文件(需创建)
│ └── README.md # 使用说明
│
├── src-tauri/ # Tauri 配置
│ ├── src/lib.rs # Rust 主程序
│ └── tauri.conf.json # Tauri 配置
│
└── package.json # 前端依赖
| 接口 | 方法 | 说明 |
|---|---|---|
/health |
GET | 健康检查 |
/api/agent/prompts |
GET | 获取预设提示词列表 |
/api/agent/create |
POST | 创建 Agent 会话 |
/api/agent/query-stream |
POST | 流式查询(SSE) |
/api/agent/query |
POST | 非流式查询 |
/api/agent/close |
POST | 关闭会话 |
const result = query({
prompt: fullPrompt,
options: {
permissionMode: 'acceptEdits',
maxTurns: 50,
allowedTools: ['Read', 'Write', 'Bash', 'Grep', 'Glob'],
includePartialMessages: true, // 启用流式输出
}
});npm run tauri build构建产物位置:
- macOS:
src-tauri/target/release/bundle/macos/通用Agent.app - Windows:
src-tauri/target/release/bundle/msi/ - Linux:
src-tauri/target/release/bundle/deb/
后端需要独立部署和运行:
- 将
backend/目录复制到服务器或用户机器 - 安装依赖:
cd backend npm install - 启动后端服务:
或开发模式(支持热重载):
npm start
npm run dev
后端默认运行在 http://localhost:3000,前端应用会自动连接此地址。
# 查找占用进程
lsof -i :3000
# 或修改 backend/server.ts 中的 PORT 变量- 确认后端服务是否运行
- 验证 API Key 是否正确
- 检查网络连接
- 查看浏览器控制台和后端日志
确保后端使用了 includePartialMessages: true 选项。
- API Key 或 Auth Token 至少填写一项
- 配置保存在本地 localStorage
- Base URL 默认为
https://api.anthropic.com
Read- 读取文件Write- 写入文件Bash- 执行命令Grep- 文本搜索Glob- 文件查找
- 计时器:对话执行时显示持续时间
- 停止按钮:随时中断长时间运行的任务
- 清空对话:清除历史记录,重新开始
- 欢迎界面:提供快捷提示词,快速开始对话
MIT License