一个基于 Tauri 的桌面智能体应用,集成 火山方舟(Ark) AI 模型,提供可自由配置的 Workflow(YAML/JSON DAG),内置完整的「认知蒸馏」闭环。
快速开始 · 核心特性 · 架构说明 · Workflow 配置
| 特性 | 描述 |
|---|---|
| 🔌 Ark 原生接入 | 完整支持火山方舟 OpenAI 兼容接口,coding-plan 端点直接接入,API 密钥本地安全存储 |
| 🧩 可配置 Workflow | YAML/JSON 定义 DAG 工作流,支持 llm / synthesize / validate / generate_skill 等节点 |
| 🔄 智能闭环 | validate 节点验证不通过时自动回退重试,受 max 次数保护,防止死循环 |
| ⚡ 并行执行 | 拓扑分层自动并发,支持最大并发数配置,构建期自动做环检测 |
| 🧠 女娲蒸馏 | 内置 6 路并行研究 → 复核 → 合成 → 验证 → 生成 → 测试 → 双评审 完整蒸馏闭环 |
| 💬 蒸馏后对话 | 生成的 Skill 直接进入对话状态,可与蒸馏后的智能体多轮交流 |
💡 截图说明:运行
pnpm tauri dev启动应用后截图替换即可。
ark-nuwa-desktop/
├── 📁 src-tauri/ # Rust 后端内核
│ ├── src/
│ │ ├── llm.rs # LLM 客户端抽象层 (可 Mock)
│ │ ├── ark.rs # 火山方舟 SSE 流式客户端
│ │ ├── mock.rs # 测试用 Mock 客户端
│ │ ├── distill.rs # 女娲蒸馏工作流内嵌
│ │ ├── config.rs # 配置管理与密钥脱敏
│ │ ├── session.rs # 对话会话状态管理
│ │ ├── commands.rs # Tauri IPC 命令层
│ │ └── workflow/
│ │ ├── model.rs # Workflow 数据模型与解析
│ │ ├── context.rs # 变量上下文与模板插值
│ │ └── engine.rs # DAG 引擎:环检测 + 拓扑 + 并行 + 闭环
│ ├── Cargo.toml
│ └── tauri.conf.json
│
├── 📁 src/ # TypeScript 前端 (Vite)
│ ├── views/ # 四视图:设置 / 编辑器 / 运行 / 对话
│ ├── components/ # UI 组件
│ └── main.ts
│
├── 📁 workflows/ # 工作流配置示例
│ └── nuwa-distill.yaml # 女娲蒸馏完整 Workflow
│
├── 📁 scripts/ # 构建脚本
│ └── gen-icon.mjs # 应用图标生成器
│
└── package.json
- Rust 工具链 (1.77+):
rustup install stable - MSVC Build Tools + Windows SDK (Tauri 编译依赖)
- Node.js 18+ + pnpm:
npm install -g pnpm
# 1. 克隆项目
git clone https://github.com/reymondmeking-dot/ark-nuwa-desktop.git
cd ark-nuwa-desktop
# 2. 安装前端依赖
pnpm install
# 3. 开发模式启动
pnpm tauri dev
# 4. 生产构建
pnpm tauri build完整内核测试(零网络依赖,使用 MockClient):
cd src-tauri
cargo test✅ 测试覆盖:
- DAG 拓扑分层、环检测、非法依赖检测
- 同层并行执行与上下游数据传递
- 模板变量插值(变量/节点输出/缺失键报错)
- 闭环重试:验证失败 → 回退 → 通过 / 超限失败
- 端到端完整蒸馏流程验证
- Ark SSE 流解析
name: 我的认知蒸馏工作流
vars: { person: "段永平" }
max_concurrency: 6
nodes:
# 并行研究节点
- { id: research_1, type: llm, prompt: "从投资角度研究 {{person}}", output: angle_1 }
- { id: research_2, type: llm, prompt: "从管理角度研究 {{person}}", output: angle_2 }
# 合成节点
- id: synthesize
type: synthesize
depends_on: [research_1, research_2]
prompt: |
基于以下研究成果:
- {{angle_1}}
- {{angle_2}}
合成统一的认知框架
output: framework
# 验证门控(闭环)
- id: validation_gate
type: validate
depends_on: [synthesize]
criteria:
- 框架具有跨领域普适性
- 核心原则可预测行为
- 与其他认知体系有明确区分度
on_fail:
goto: synthesize # 验证不通过,回退到合成节点重试
max: 2 # 最多重试 2 次
# 生成 Skill
- id: generate
type: generate_skill
depends_on: [validation_gate]
output: skill- ✅ 启动:
pnpm tauri dev启动应用 - ✅ 配置:设置页填写 Ark Base URL、Model、API Key,点击「测试连接」
- ✅ 运行:运行页选择内置女娲蒸馏工作流,输入人物,观察执行
- ✅ 对话:蒸馏完成后切换到对话页,与蒸馏智能体多轮交流
- ✅ 自定义:编辑器页编写自定义 YAML Workflow,验证后运行
.
├── ⚙️ 配置文件
│ ├── package.json # 前端依赖与脚本
│ ├── tsconfig.json # TypeScript 配置
│ ├── vite.config.ts # Vite 构建配置
│ └── src-tauri/
│ ├── Cargo.toml # Rust 依赖
│ └── tauri.conf.json # Tauri 应用配置
│
├── 🎨 资源文件
│ └── src-tauri/icons/ # 应用图标集 (ico/png)
│
└── 📝 文档
└── README.md # 你正在看的文件 😉
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支:
git checkout -b feature/awesome-feature - 提交更改:
git commit -am 'Add awesome feature' - 推送到分支:
git push origin feature/awesome-feature - 提交 Pull Request
MIT License © 2026
蒸馏方法学参考:alchaincyf/nuwa-skill
Made with ❤️ using 🦀 Rust + ⚡ Tauri + 💙 TypeScript



