Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iotaCode

基于 DeepSeek 的多 Agent 协作 AI 编程助手 — 桌面端 + 服务端 + Web 客户端全栈项目

iotaCode 是一款面向软件工程场景的 Multi-Agent 协作式 AI 编程助手。它围绕一个"主 Agent"调度三个"子 Agent"(技术侦查员、开发工程师、技术研究员)协同工作,内置代码编辑、文件系统、MCP 协议集成等 13+ 工具,支持流式对话、对话上下文图谱、工作区隔离等特性。


项目结构

iotaCode/
├── client/          # React + Fluent UI 前端(Vite 构建)
│   ├── src/         # 组件、页面、状态管理
│   └── dist/        # 构建产物(被 server 作为 SPA 静态文件服务)
├── desktop/         # Tauri 桌面壳(Rust + Tauri v2)
│   └── src-tauri/   # Tauri Rust 后端
├── server/          # Node.js 后端(核心)
│   ├── src/
│   │   ├── index.ts           # 入口
│   │   ├── app.ts             # Hono 应用(路由 + CORS + 静态文件)
│   │   ├── types.ts           # 类型定义
│   │   ├── agent/             # 🧠 Agent 核心系统
│   │   │   ├── index.ts       # 主 Agent 循环(streamText)
│   │   │   ├── compress.ts    # 对话压缩执行引擎(/compact)
│   │   │   ├── prompt-builder.ts # 模块化 Prompt 组装器
│   │   │   ├── subagent-runner.ts # 子 Agent 运行器
│   │   │   ├── prompts/       # .prompt.md 系统提示词模块
│   │   │   ├── subagents/     # 子 Agent 身份提示词
│   │   │   └── tools/         # 内置工具实现
│   │   │       └── compress/  # 压缩专用工具(save_topic)
│   │   ├── routes/            # 8 个 API 路由
│   │   ├── db/                # SQLite 数据库层
│   │   ├── lib/               # 工具库(env/token计数/端口)
│   │   └── mcp/               # MCP 协议集成(JSON-RPC over stdio)
│   ├── mcp.json               # MCP Server 注册配置
│   └── .env                   # DeepSeek API Key 配置
├── examples/        # 示例代码
└── README.md        # ← 你在这里

技术栈

层级 技术 版本
AI 模型 DeepSeek (via @ai-sdk/deepseek)
AI SDK Vercel AI SDK (ai) ^7.0.11
Web 框架 Hono ^4.9.0
运行时 Node.js 22+
语言 TypeScript ~6.0
数据库 SQLite(node:sqlite 内置)
前端 React 19 + Fluent UI 9 + Vite 8
桌面 Tauri v2 + Rust
MCP 协议 纯 Node.js 自实现(JSON-RPC 2.0)

核心架构

🧠 Multi-Agent 系统

iotaCode 采用 Swarm 架构,一个主 Agent 负责与用户交互、理解需求,并按需派发三个专用子 Agent 并行工作:

                  ┌──────────────┐
                  │    用户      │
                  └──────┬───────┘
                         │
                  ┌──────▼───────┐
                  │  主 Agent    │ ← 13 个内置工具
                  │   (iota)     │    + N 个 MCP 工具
                  └──┬───────┬───┘
                     │       │
           ┌─────────▼──┐ ┌──▼──────────┐
           │ 技术侦查员   │ │ 开发工程师   │
           │ (explore)   │ │ (code)       │
           │ 只读·代码搜索│ │ 读写·编码实现│
           └─────────────┘ └─────────────┘
           ┌──────────────┐
           │ 技术研究员    │
           │ (research)   │
           │ 只读·文档调研 │
           └──────────────┘

📦 模块化 Prompty 系统

系统提示词拆分为 8 个独立 .prompt.md 模板文件,通过 PromptBuilder 按需组装:

  • identity — 角色身份
  • system — 系统行为规则
  • tasks — 任务执行指南
  • tools — 工具使用说明
  • caution — 谨慎操作清单
  • code-style — 代码风格约束
  • tone — 语气与风格
  • env — 环境信息

子 Agent 按角色组合不同区块,支持 {placeholder} 变量替换。

📊 对话上下文压缩

点击"压缩对话"按钮即可触发 /compact 命令,由 deepseek-v4-flash 自动识别话题边界并生成摘要。压缩后主 Agent 只看到话题摘要(注入系统提示),需通过 retrieve_topic 工具按需查阅完整历史。支持增量压缩——每次只压缩上次压缩之后的新消息。

🔌 MCP 协议集成

纯 Node.js 实现的轻量化 MCP 客户端(零外部 MCP SDK),通过 child_process.spawn 管理多个 MCP Server 的 stdio 连接,遵循 JSON-RPC 2.0 协议,支持自动将 MCP 工具注册为 AI SDK 工具。


API 端点

方法 路径 描述
POST /api/chat 流式聊天(SSE)
GET /api/sessions 获取会话列表
POST /api/sessions 创建会话
DELETE /api/sessions/:id 删除会话
GET /api/workspace 获取/设置工作区
POST /api/workspace 切换工作区
GET /api/fs/* 文件浏览器
GET /api/mcp MCP 服务器状态
POST /api/mcp/:name/toggle 启用/禁用 MCP 服务器
GET /api/skills 获取 Agent Skills 元数据
GET /api/models 获取可用模型列表
GET /api/context-usage 对话上下文使用情况
GET /api/health 健康检查

本地开发

前置要求

服务端

cd server

# 安装依赖
pnpm install

# 配置 API Key
# 编辑 .env,填入 DEEPSEEK_API_KEY

# 启动开发服务器(tsx watch 热重载)
pnpm dev

客户端

cd client
pnpm install
pnpm dev  # Vite 开发服务器

桌面端

cd desktop
pnpm install
pnpm tauri dev  # Tauri 开发模式

架构决策记录

决策 选择 理由
Multi-Agent 架构 Swarm(主 Agent + 子 Agent) 任务分层,专业分工,可并行
Agent 工具 自实现 13 个工具 精确控制行为,不走第三方 SDK 抽象
提示词系统 模块化 .prompt.md 文件 关注点分离,复用组合,易于调试
对话压缩 AI 手动触发 + retrieve_topic 工具 用户主动控制,Agent 按需查阅,避免上下文膨胀
数据库 SQLite(node:sqlite 零配置、单文件、工作区级隔离
MCP 集成 纯 Node.js JSON-RPC 避免外部 SDK 依赖,轻量化
前端 UI React 19 + Fluent UI 9 微软设计语言,适合 IDE 风格工具
桌面壳 Tauri v2 (Rust) 相比 Electron 更轻量、更安全

许可证

MIT

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages