8000 GitHub - insmtx/Lework: 让 AI 像真正的团队成员一样参与项目、执行任务、协作交付的 AI Native 工作平台。 · GitHub
[go: up one dir, main page]

Skip to content
insmtxPublic

About

让 AI 像真正的团队成员一样参与项目、执行任务、协作交付的 AI Native 工作平台。

Topics

Resources

Contributing

Stars

38 stars

Watchers

0 watching

Forks

Repository files navigation

Lework

Lework

开源、可自托管、企业级品质的 AI 工作平台。

当前阶段只服务个人用户:单用户、多节点的 OpenCode 控制面。

License Go Web Website

目录 · 当前阶段 · 企业级愿景 · 一分钟理解 · 核心能力 · 系统架构 · 快速开始 · 开发指南 · 相关文档 · 贡献指南 · 社区与支持 · 许可证


当前阶段

用现代 GUI 管理多台机器上的 lework agent,由 agent 管理本机 OpenCode:

  • 统一查看节点、项目目录、Session、工具调用与权限审批;
  • 查看 Diff、浏览文件、打开 Session 级终端;
  • 节点主动出站连接控制面,不暴露任何入站端口,也不需要 SSH;
  • 执行与会话状态以 OpenCode 为准,Lework 不实现自己的 Agent Runtime。

目标用户:拥有 2 台以上机器(笔记本、工作站、服务器、DGX Spark)的独立开发者 / 个人研究者。

企业级愿景

「企业级」描述的是工程质量、私有化与可自托管能力,它属于品牌与宣传层,不代表当前已提供服务。

组织、部门、RBAC、多租户、计费、内置知识库不在当前阶段范围,也不作为现成能力宣传。旧企业版阶段的文档已归档到 docs/archive/。

一分钟理解

控制面(本机浏览器)
  ├── 节点 A:lework agent → opencode serve
  ├── 节点 B:lework agent → opencode serve
  └── 节点 C(DGX Spark):lework agent → opencode serve

选节点 → 选项目目录 → 打开或新建 Session → 发任务
  → 实时看消息 / 工具 / 审批 → 看 Diff / 文件 / 终端

一个窗口管理多台机器,不需要为每台机器开一个 TUI。

核心能力

能力 说明 阶段
多节点注册与心跳 agent 主动出站 WSS;断线重连;节点无入站端口 已实现
OpenCode 进程管理 agent 启动并监控本机 opencode serve,只绑定回环 已实现
统一 Session 按目录创建 / 继续 / 中断 Session,查看消息、工具、审批 已实现
Diff / 文件 / 终端 按本轮消息读 diff;目录内文件浏览与下载;Session 级 PTY 已实现
多节点调度 跨节点选择执行位置 I2
Git 任务上下文 A 项目、B 执行、结果回 A I3
配置与 Action 控制面 插件、MCP、模型、Action 的读取、写入、回滚 I4

系统架构

Browser (Next.js: frontend/apps/control-plane)
    │ HTTP + SSE + WebSocket
    ▼
Lework Control Plane (Go + SQLite, `lework serve`)
    │ WSS outbound
    ▼
lework agent (`lework agent`) ──► opencode serve (127.0.0.1)
  • 控制面:节点注册表、事件中心、浏览器 API、agent 网关、SQLite 存储;
  • 节点侧:lework agent 负责注册、心跳、OpenCode 监管、PTY 与本地代理(Git/配置能力见 I3/I4);
  • 数据真相:Session、消息、diff、权限、文件均以 OpenCode 为准。

详见 架构概览 与 当前实现基线。

快速开始

环境要求

  • Go 1.25+
  • Node.js / pnpm(构建控制面界面)
  • 目标节点已安装 opencode

构建

git clone https://github.com/insmtx/lework.git
cd Lework
make build          # 构建 frontend/apps/control-plane 并生成 bundles/lework

只构建后端:

go build -o ./bundles/lework ./backend/cmd/lework/

未生成前端静态资源时,浏览器访问 / 会看到构建提示页,API 仍可用。

启动控制面

./bundles/lework serve \
  --listen 127.0.0.1:8787 \
  --db ~/.config/Lework/controlplane.db \
  --enrollment-token "$LEWORK_ENROLLMENT_TOKEN"

默认只绑定回环地址。浏览器打开 http://127.0.0.1:8787/。

启动节点 Agent

# /etc/lework/agent.yaml
control_plane_url: ws://127.0.0.1:8787/api/agent/connect
enrollment_token: "<与控制面一致的令牌>"
node_name: dev-box
workspace_roots:
  - /home/me/projects
opencode:
  binary: opencode
  port: 4096
  service_mode: shared
./bundles/lework agent --config /etc/lework/agent.yaml

workspace_roots 限制可创建 Session 和读取文件的目录。完整协议与排障见 控制面运维。

开发指南

仓库结构

Lework/
├── backend/
│   ├── cmd/lework/              # serve / agent 等进程入口
│   ├── internal/controlplane/   # 控制面:节点、事件、浏览器 API、agent 网关、SQLite
│   ├── internal/agentd/         # 节点 agent:注册、OpenCode 监管、PTY、WSS 传输
│   ├── agent/ tools/ types/     # 旧企业版执行内核(控制面不依赖)
│   └── config/
├── frontend/
│   ├── apps/control-plane/      # 当前主线浏览器界面
│   └── apps/web, apps/desktop/  # 旧产品,暂不维护
├── deployments/
├── docs/                        # product / architecture / design / frontend / operations / archive
├── Makefile / go.mod / AGENTS.md / CONTRIBUTING.md / LICENSE

常用命令

make build                       # 构建控制面前端 + lework 二进制
make frontend-control-plane      # 只构建控制面静态界面
go test ./...                    # 默认测试
go test ./backend/cmd/lework ./backend/internal/agentd/...
go vet ./...

约定与注意

  • 模块路径:内部 import 使用 github.com/insmtx/lework/...;
  • 控制面不实现 Agent Runtime:不要为控制面新增自建 runtime、任务状态机或组织权限模型;
  • OpenCode 是唯一真相源:不要复制 session / message / event 状态;
  • 节点无入站端口:所有连接由 agent 主动出站;
  • 更完整的工程约束见根目录 AGENTS.md。

相关文档

文档 内容
docs/product/overview.md 产品定位与核心概念
docs/product/roadmap.md I0–I5 路线与退出标准
docs/product/current-limitations.md 当前能力边界(I1-B)
docs/architecture/overview.md 目标架构
docs/architecture/as-built.md 当前实现基线
docs/architecture/agent-runtime.md lework agent 与 OpenCode 边界
docs/operations/control-plane.md 安装、启动、浏览器协议
docs/operations/troubleshooting.md 排障
docs/operations/project-structure.md 仓库结构索引
docs/README.md 文档规范与索引
docs/frontend/overview.md 控制面前端架构
lework.ai Lework 官网

贡献指南

我们欢迎各种形式的贡献——Issue、文档、代码、使用反馈。

  • 提 Issue:前往 GitHub Issues 报告缺陷或提出功能建议;
  • 提 PR:Fork 本仓库 → 创建功能分支 → 提交变更 → 发起 Pull Request。建议先开 Issue 讨论设计;
  • 开发约定:动手前请阅读根目录 AGENTS.md(仓库结构、工程与代码规范)与上方开发指南。

社区与支持

  • 使用问题 / 缺陷报告:GitHub Issues
  • 功能需求与讨论:同上,请带 feature / discussion 标签发起
  • 产品官网:lework.ai

许可证

Lework 依据 Lework Open Source License 授权:以 Apache License 2.0 为基础,附加若干商业使用条件(英文文本具有法律效力)。涉及多租户 SaaS、LOGO 与版权信息等特定情形时,需联系维护者取得商业许可,详见 LICENSE 文件。

About

让 AI 像真正的团队成员一样参与项目、执行任务、协作交付的 AI Native 工作平台。

Topics

Resources

Contributing

Stars

38 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0