本地优先的编码 Agent 后端,以 Server-Centric 架构通过 WebSocket 统一驱动 CLI、桌面及自定义客户端,支持持久化会话、12 个 LLM Provider、MCP 协议与 Skills 系统。
agent-coworker 是一个本地优先(local-first)的编码 Agent 后端服务,采用 Server-Centric 架构设计。所有 Agent 业务逻辑(推理轮次、工具执行、会话持久化、MCP 对接、Provider 管理)均运行在服务端,CLI、Electron 桌面应用及自定义客户端作为薄客户端通过 JSON-RPC over WebSocket(cowork.jsonrpc.v1)统一通信。
核心特性包括:基于 SQLite 的持久化会话与跨重启恢复机制;丰富的内置工具链(Shell 执行、文件读写、工作区搜索、网页搜索与抓取、工作流控制等);基于 SKILL.md 指令包的多层 Skills 发现系统;完整的 MCP(Model Context Protocol)支持(stdio / HTTP/SSE 传输,三层配置,API-key 与 OAuth 认证);子 Agent 创建与管理;以及 OpenTelemetry + Langfuse 可观测性集成。
项目支持 12 个 LLM Provider(Google、OpenAI、Anthropic、Bedrock、Together、Fireworks、NVIDIA、LM Studio、Baseten、OpenCode Go/Zen、Codex CLI),可通过环境变量、CLI /connect 流程或桌面 UI 灵活切换。安全模型提供危险操作审批与 --yolo 跳过模式,会话支持检查点备份与恢复。
基于 Bun 运行时与 TypeScript 构建(94.4% TypeScript),可编译为独立 cowork-server 二进制用于无头部署。桌面端通过 Electron(electron-vite)构建,移动端目录(Expo/React Native)存在但发布状态未明确。采用自定义源码可用许可证("Forking and Attribution License with Commercial Permission Requirement 1.0"),允许 fork 和修改但商业化销售需作者书面许可。作者声明架构已足够稳定可供构建,但协议层面、桌面打磨和 Provider/运行时行为仍在快速迭代。
安装与运行
前置要求:安装 Bun
git clone https://github.com/mweinbach/agent-coworker.git
cd agent-coworker
bun install
export OPENAI_API_KEY=...
bun run cli # CLI REPL
bun run start # Electron 桌面应用(开发模式)
bun run serve # 独立服务器(无头模式)
构建独立二进制:
bun run build:server-binary
./dist/cowork-server --host 0.0.0.0 --port 7337
CLI REPL 常用命令
| 命令 | 功能 |
|---|---|
/connect <provider> | 启动 Provider 认证流程 |
/provider <name> | 切换 Provider |
/model <id> | 切换模型 |
/new | 新建会话 |
/resume <sessionId> | 恢复历史会话 |
/sessions | 列出会话 |
/tools | 列出可用工具 |
/cwd <path> | 切换工作目录 |
核心源码结构
| 路径 | 职责 |
|---|---|
src/agent.ts | 核心 Agent 轮次逻辑 |
src/server/ | WebSocket 服务器、JSON-RPC 路由、会话编排 |
src/tools/ | 内置服务端工具 |
src/providers/ | 12 个 Provider 适配 |
src/mcp/ | MCP 配置与客户端生命周期 |
src/skills/ | Skill 发现与触发提取 |
apps/desktop/ | Electron 桌面应用 |
apps/mobile/ | Expo 移动应用 |