Skip to content

基于Claude Agent SDK开发自己的专用AI Agent的项目脚手架

Notifications You must be signed in to change notification settings

unfish/AI-Agent-Desktop

Repository files navigation

Claude Agent Desktop

基于 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

📦 快速开始

本项目包含三个部分:

  1. 桌面应用 - 跨平台的图形界面应用
  2. 后端服务 - 提供 API 接口
  3. 命令行客户端 - 交互式 CLI 工具(独立使用)

桌面应用 + 后端服务

前提条件

  1. Node.js >= 18.0.0 (下载)
  2. Rust >= 1.70.0 (安装指南)
  3. Anthropic API Key (获取地址)

安装依赖

# 前端依赖
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

配置使用

  1. 应用启动后打开"设置"
  2. 选择系统提示词类型(通用助手/数据分析/文案专家/深度调研)
  3. 填写 API Key 或 Auth Token(至少一项)
  4. 保存后即可开始对话

命令行客户端(独立使用)

命令行客户端不依赖桌面应用和后端服务,可以单独使用:

# 进入客户端目录
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              # 前端依赖

🔌 API 接口

后端服务(默认端口 3000)

接口 方法 说明
/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 关闭会话

Claude Agent SDK 关键配置

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/

部署后端服务器

后端需要独立部署和运行:

  1. backend/ 目录复制到服务器或用户机器
  2. 安装依赖:
    cd backend
    npm install
  3. 启动后端服务:
    npm start
    或开发模式(支持热重载):
    npm run dev

后端默认运行在 http://localhost:3000,前端应用会自动连接此地址。

⚠️ 常见问题

后端无法启动 - 端口被占用

# 查找占用进程
lsof -i :3000

# 或修改 backend/server.ts 中的 PORT 变量

初始化失败

  1. 确认后端服务是否运行
  2. 验证 API Key 是否正确
  3. 检查网络连接
  4. 查看浏览器控制台和后端日志

流式输出不工作

确保后端使用了 includePartialMessages: true 选项。

📝 配置说明

认证配置

  • API KeyAuth Token 至少填写一项
  • 配置保存在本地 localStorage
  • Base URL 默认为 https://api.anthropic.com

允许的工具

  • Read - 读取文件
  • Write - 写入文件
  • Bash - 执行命令
  • Grep - 文本搜索
  • Glob - 文件查找

🎨 界面功能

  • 计时器:对话执行时显示持续时间
  • 停止按钮:随时中断长时间运行的任务
  • 清空对话:清除历史记录,重新开始
  • 欢迎界面:提供快捷提示词,快速开始对话

📄 许可证

MIT License

🔗 相关链接

About

基于Claude Agent SDK开发自己的专用AI Agent的项目脚手架

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published