# TalenWork **Repository Path**: johnnie_walker/TalenWork ## Basic Information - **Project Name**: TalenWork - **Description**: TalenWork 是一款本地优先的桌面 AI 客户端。你指挥的不是单个助手,而是一支团队:主 agent 掌握你的目标并召集子 agent,每个子 agent 调用技能来完成工作。你只要在对话里说清楚目标,不用先画流程图或搭自动化规则。 它运行在 Linux 和 Windows 上,工作区默认本地优先。你可以选择接入自有服务商;自有服务商的 Key 留在本机。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-16 - **Last Updated**: 2026-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TalenWork(泰能工场) > AI 办公工作台 —— Go 单二进制内核 + Electron / Wails / Web 三壳前端。 TalenWork 是一个本地优先(local-first)的 AI 办公工作台:你通过对话指挥 AI 团队与技能,完成网络搜索、文件读写、Office 文档处理、知识库检索等工作。数据与 API key 默认留在本地。 | 项 | 值 | |---|---| | 官网 | https://talenwork.ai | | 默认 API | `https://talenwork.ai/api`(`TALEN_API_BASE_URL` 可覆盖) | | 环境变量前缀 | `TALEN_` | | 数据目录 | `~/.talenwork`(macOS/Linux)或 `<非系统盘>:\.talenwork`(Windows) | | 后端二进制 | `talenworkd`(Go 单二进制,HTTP + WebSocket) | | 握手帧 | `TALEN_READY {"port":N,"token":"..."}` | ## 架构 ``` ┌──────────── 前端三壳(共享同一套 UI)────────────┐ │ Electron 壳 Wails 壳 Web 壳 │ │ (host/electron) (host/wails) (host/web) │ └──────────────┬───────────────────────────────────┘ │ HTTP POST /rpc/{channel} + WS 多路复用(stream/push) ┌──────────────▼───────────────────────────────────┐ │ talenworkd(Go 单二进制后端) │ │ internal/domain(业务域)· pkg/engine(内核) │ │ internal/rpc(通道层)· internal/parity(对照) │ └──────────────────────────────────────────────────┘ ``` - **后端**:仓库根 Go 模块 `talen-ai/talenwork`,一次编译为 `talenworkd`,自包含 HTTP/WebSocket 服务。 - **前端**:`frontend/shared/`(无打包原生 JS 渲染层)+ `frontend/host/`(壳差异层)+ 三壳(`electron` / `wails` / `web`)。 - **交互契约**:renderer → 后端只走 `POST /rpc/{channel}` + WS,壳内不新增 IPC 直连路径。 ## 核心特性 - **AI 团队**:内置多套 AI 团队(含 9 智能体团队等),查看详情后一键新建会话并选定团队。 - **技能市场**:内置系统技能与市场技能,支持安装/卸载/库管理。 - **会话与工作空间**:选择本地目录作为工作空间,发起工具调用任务(网络搜索、文件读写、Office 处理、知识库检索)。 - **本地优先**:数据、API key、嵌入模型默认留在本机;`TALEN_*` 环境变量统一覆盖。 ## 快速开始 ### 依赖 - Go ≥ 1.25(`go.mod` 要求 1.25.11,`GOTOOLCHAIN=auto` 可自动下载) - Node ≥ 18(前端壳)/ npm - Git Bash(Windows 下脚本均为 bash) - 国内网络环境请先 `source scripts/mirror-env.sh`(npm/Go/Electron/electron-builder 走国内镜像) ### Web 壳(最快体验) ```bash bash scripts/run-web.sh # 构建后端 → 启动 → 打印浏览器访问地址(Ctrl+C 退出) ``` ### Web 壳开发模式(Vite :5173 + 后端握手) ```bash bash scripts/run-web-dev.sh # 后端 TALEN_READY 握手 → token 注入 → http://127.0.0.1:5173 ``` ### Electron 桌面壳 ```bash cd frontend/electron npm install # 安装 electron + electron-builder npm run start:electron # 启动 npm run start:electron-dev # 启动并开放 --remote-debugging-port=9222 ``` 首次启动会自动准备依赖与资源(嵌入模型等);在 **设置 → AI 服务商** 配置 API key 或 OAuth 后即可对话。 ## 目录结构 ``` Go 后端在仓库根:cmd/ + internal/{domain,rpc,parity,...} + pkg/{engine,...} frontend/ electron(壳)· wails(壳)· web(vite 壳)· shared(渲染层)· host(壳差异层) resources/ 内置技能(builtin)· 运行时(runtime)· OfficeCLI · ripgrep · 嵌入模型 scripts/ 构建编排 build.cjs · 资源下载 fetch-resources.cjs · 资源校验 check-resources.cjs · 版本单源 sync-version.cjs · 镜像环境 mirror-env.sh · 启动脚本 testdata/ 测试样例(screenshots/ 走查截图 · user-docs/ 样例文档) version.json 单一版本源(P1 版本单源) ``` ## 常用命令 ```bash # 根级构建编排(gate → go build → 资源校验 → 壳打包) node scripts/build.cjs --list # 查看各目标状态 node scripts/build.cjs --shell web # 构建 web 壳 node scripts/build.cjs --shell electron --mode dist # electron 安装包 # 资源 node scripts/check-resources.cjs # 校验打包资源(officecli/runtime/embedding/ripgrep) node scripts/fetch-resources.cjs --probe # 探测 GitHub 加速代理延迟 node scripts/fetch-resources.cjs --kind all # 下载全部资源(含 whisper/ffmpeg/vc) # 门禁(仓库根) bash scripts/gate.sh # check.sh + brand_grep.sh + smoke.sh # 测试 cd frontend/web && npm test # 前端冒烟(vitest 12/12) go test ./... # 后端全量测试 # 版本 node scripts/sync-version.cjs --check # 校验三壳版本一致(version.json 为唯一来源) ``` ## License MIT