ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

我的第一款通过智能体生成的完整跨平台桌面应用

我的第一款通过智能体生成的完整跨平台桌面应用 应用说明纯AI智能体开发本人只负责监督、试用和反馈期间尝试了codex、claude、deepseek harness以及多智能体编排多智能体编排参照: 多agent协作开发实例-CSDN博客 和 Harness engineering 第一课-CSDN博客项目地址: Uni-lovenix/data-migration2可直接安装使用的release版本https://github.com/Uni-lovenix/data-migration2/releases目前已支持 mac/windows以下正式介绍此应用(工具)DataMigrator v0.1.0DataMigrator 的整体架构采用「Electron 桌面壳 React UI Go 迁移引擎 SQLite 状态存储」的分层设计。用户通过 React 界面发起迁移请求经 Electron 主进程的安全 IPC 转发给 Go 引擎执行引擎将任务进度与状态写入 SQLite 持久化整体调用关系如下图所示各模块职责如下Electron 桌面壳负责应用生命周期、窗口管理与安全 IPC 通信是 React UI 与 Go 引擎之间的桥梁同时承载多数据库连接配置的本地持久化。React UI提供连接管理、迁移发起、任务中心、模板管理、智能体对话与 Token-In 控制台等交互界面将用户操作转换为具体的迁移指令。esmigrator面向 Elasticsearch 的迁移引擎负责索引数据的导出、导入与端到端直传。pgmigrator面向 PostgreSQL 的迁移引擎负责表数据的导出、导入与端到端直传。dispatcher并行调度器负责任务分发、进度上报、取消与断点续传是保证大文件流式传输稳定性的核心。SQLite 状态存储持久化任务队列、断点信息、迁移模板与会话数据保证应用重启后任务状态可恢复。首个公开版本PostgreSQL / Elasticsearch 数据导出与导入的跨平台桌面工具内置 Go 迁移引擎支持大文件流式传输、断点续传与多任务并行调度。⚡ 一句话摘要✅ PostgreSQL Elasticsearch 7.10.2 的导出 / 导入 / 端到端直传✅ Go 引擎esmigratorESpgmigratorPGdispatcher并行调度✅ 任务队列、进度上报、取消、断点续传、SQLite 状态持久化✅ 迁移模板保存常用配置一键批量执行✅ LLM 配置Ollama / Anthropic / OpenAI 智能体对话AIIP 风格 function calling✅ Token-In 控制台通过 API Token 在远程机器以 curl / 简化 UI 触发迁移✅ macOS dmg / zip、Windows NSIS 安装包绿色版可执行文件 快速开始Windows:: 双击安装或在 cmd 中 DataMigrator-0.1.0-win-x64.exe :: 或者直接运行绿色版 release\win-unpacked\DataMigrator.exe启动后默认进入总览页。首次使用「连接」→ 新增 PostgreSQL / Elasticsearch 连接连接信息持久化在 userData。「迁移」→ 选择源/目标、索引或表、批量参数发起任务。「任务中心」→ 查看进度、取消、续传。「模板」→ 把常用迁移保存为模板下次一键批量执行。「智能体」→ 用自然语言发起迁移AIIP 风格 function calling。「Token-In」→ 生成 API Token在远程用 curl 调用。「LLM 配置」→ 配置 Ollama / Anthropic / OpenAI启用智能体与日志路由。macOS后续补充桌面与 UI桌面壳Electron 33 React 19 TypeScript 5安全 IPC多数据库连接配置 CRUD 与本地持久化。迁移模板TemplatesPage 提供模板 CRUD UI、多选 checkbox、ExecuteModal 单模板执行、BatchExecuteModal 并行多模板执行变量占位符{DATE}/{NOW}/{TIMESTAMP} 自定义变量。Agentic 智能体参考 AIIP 项目11 个工具 schemalist_connections / list_templates / execute_template / list_tasks / cancel_task / run_postgres_export / run_postgres_import / run_elasticsearch_export / run_elasticsearch_import / list_llm_configs3 种 Provider 序列化器会话 消息历史持久化到agent_sessions.db。Token-In 控制台独立 tabtoken 验证后展示连接列表 / 模板列表 / 任务列表「执行」按钮调用 REST API主进程通过restApi:callIPC 转发请求避免 CORS。API Token 管理在 LLM 配置页底部创建 / 列表 / 复制 / 吊销 API Token格式dtm_48位十六进制吊销后立即生效无需重启。打包与交付macOSnpm run package:mac→release/DataMigrator-0.1.0-mac-arch.{dmg,zip}。Windowsnpm run package:win→release/DataMigrator-0.1.0-win-x64.exeNSISrelease/win-unpacked/绿色版。NSIS 安装时用户可选安装目录并自动生成桌面 / 开始菜单快捷方式。✅ 验收清单构建期已通过[x]npm run check通过typecheck 单元测试 Go 单元测试[x]npm run build通过electron-vite 产出out/[x]npm run build:go:win通过Go 引擎 Windows x64 交叉编译[x]npx electron-builder --win通过NSIS 安装包 win-unpacked 绿色版[x] Docker PostgreSQL 16 集成测试通过[x] Docker Elasticsearch 7.10.2 / 9.5.0 集成测试通过[x] 打包后esmigrator.exe --help烟测通过⚠️ 已知问题任务队列当前为单并发顺序执行并行迁移能力已在 Go 引擎层就绪--parallel NUI 层入口计划在下一迭代补齐。断点续传以批量边界为粒度批量写入中途取消可能产生重复或缺失。连接密码尚未加密存储建议发布前接入系统钥匙串或 ElectronsafeStorageLLM 配置已使用 safeStorage连接密码暂未。Windows NSIS 安装包需在 Windows 环境或 CI 构建本地 macOS 无法直接验证 NSIS 安装流程。electron-builder默认publish通道指向本仓库Uni-lovenix/data-migration2如不发布到 GitHub Releases 可在package.json中设置publish: null。️ 从源码构建需要 Node.js ≥ 18、Go ≥ 1.22。git clone https://github.com/Uni-lovenix/data-migration2.git cd data-migration2 npm install npm run check # 类型检查 单元测试 Go 单元测试 npm run dev # 开发模式启动 Electron # 打包当前平台 npm run package:mac # macOS dmg / zip npm run package:win # Windows NSIS需在 Windows 或交叉编译环境启动脚本start.cmdWindows和start.shmacOS / Linux会自动检测 Go 是否在 PATH、探测常见安装目录并在缺失依赖时执行npm install。 文档README.mddocs/release.md — 发布说明与产物清单docs/PROCESS.md — RUP 过程协议docs/architecture.md — 架构说明progress.md — 当前会话进度 致谢AIIP — 智能体对话 / function calling 模式参考Electron、React、Vite、sql.js、pg、pg-query-stream、go-elasticsearch、lib/pq 等开源依赖/p/p
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进