{"id":49321291,"url":"https://github.com/afumu/openwork","last_synced_at":"2026-04-26T18:01:21.750Z","repository":{"id":352443073,"uuid":"1215105949","full_name":"afumu/openwork","owner":"afumu","description":"Browser-based agent platform with a user workspace, admin console, product gateway, and per-user runtime isolation.","archived":false,"fork":false,"pushed_at":"2026-04-19T15:56:56.000Z","size":8906,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-19T17:25:16.056Z","etag":null,"topics":["agent-platform","ai-agents","browser-based","docker","llm-runtime","multi-tenant","nestjs","openwork","vue3","web-ide"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/afumu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-19T13:43:53.000Z","updated_at":"2026-04-19T15:57:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/afumu/openwork","commit_stats":null,"previous_names":["afumu/openwork"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/afumu/openwork","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afumu%2Fopenwork","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afumu%2Fopenwork/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afumu%2Fopenwork/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afumu%2Fopenwork/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/afumu","download_url":"https://codeload.github.com/afumu/openwork/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afumu%2Fopenwork/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32307015,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T17:23:19.671Z","status":"ssl_error","status_checked_at":"2026-04-26T17:23:19.195Z","response_time":129,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-platform","ai-agents","browser-based","docker","llm-runtime","multi-tenant","nestjs","openwork","vue3","web-ide"],"created_at":"2026-04-26T18:01:19.508Z","updated_at":"2026-04-26T18:01:21.728Z","avatar_url":"https://github.com/afumu.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenWork\n\nOpenWork 是一个面向组织部署的浏览器智能体平台。\n它把聊天工作台、管理后台、产品网关和独立运行时组合成一套可落地的系统：部署完成后，团队只需要创建账号并配置模型，用户就可以直接在 Web 应用里完成对话、工具调用、文件处理和浏览器内工作，而不必先准备本地开发环境。\n\nOpenWork is a browser-based agent platform for teams that want a deployable, web-first AI workspace.\nIt combines a user-facing chat workspace, an admin console, a product gateway, and an isolated runtime layer so that teams can deploy once, configure models centrally, and let users work directly in the browser.\n\n## OpenWork 是什么\n\nOpenWork 面向这样一类场景：\n\n- 希望把智能体能力部署到自有环境，而不是只依赖托管产品\n- 希望统一模型配置、搜索配置、权限和运行时策略\n- 希望用户直接在浏览器里完成对话、工具执行和文件交互\n- 希望运行时按用户隔离，同时保持平台能力通用化\n\n从架构上看，OpenWork 不是“单个聊天应用”，而是一套由前端、后端、运行时和部署流程共同组成的平台仓库。\n\n## What OpenWork Is\n\nOpenWork is designed for teams that want more than a thin chat UI:\n\n- a browser-based AI workspace for end users\n- centralized admin control for models and platform settings\n- a backend gateway that owns auth, billing/quota, logging, and routing\n- a generic runtime layer that can be deployed and versioned independently\n- per-user runtime isolation when containerized execution is enabled\n\nThe repo is intentionally structured as a platform codebase rather than a single product surface.\n\n## Core Capabilities\n\n- Browser-based chat workspace and tool-driven workflows\n- Centralized admin console for model, search, and platform configuration\n- `service` as the product gateway for auth, billing/quota, logs, and runtime dispatch\n- Generic `web_search` integration routed through the backend\n- Per-user runtime containers for isolated workspaces\n- Versioned runtime bundle build and publish flow\n- Internal model proxy for centralized model access\n\n## Architecture\n\n当前主流程如下：\n\n```text\nchat frontend\n  -\u003e service /api/openwork/*\n     -\u003e auth, billing/quota, logs, group state\n     -\u003e PI runtime /v1/chat/completions\n        -\u003e agent session / direct model path / discussion\n        -\u003e host bridges back to service\n           -\u003e model proxy\n           -\u003e search bridge\n```\n\n几个关键边界：\n\n- `service/` 仍然是产品网关，前端不会直接调用 runtime\n- 搜索能力通过统一平台接口暴露，而不是在前端散落接入\n- runtime 保持通用，不内置产品专属工作流\n- 当 `PI_DOCKER_ENABLED=1` 时，运行时容器按用户隔离\n- runtime bundle 仍然是部署与版本切换的基本单位\n\n更详细的当前事实可以查看 [docs/current/system-status.md](./docs/current/system-status.md)。\n\n## Repository Layout\n\n- `chat/`\n  用户工作区与聊天界面，基于 Vue 3，负责对话、工具执行展示、文件与制品交互。\n\n- `admin/`\n  管理后台，基于 Vue 3 + Vite，负责模型配置、搜索配置、平台设置与运维入口。\n\n- `service/`\n  NestJS 后端，负责鉴权、用量/额度、日志、运行时编排、搜索桥接和内部模型代理。\n\n- `pi/`\n  独立运行时工作区，负责智能体运行时、工具、工作区和运行时打包产物。\n\n- `docs/`\n  当前有效的仓库文档入口，记录系统现状、风格约束和部署说明。\n\n## Quick Start\n\n### 常用命令\n\n```bash\n./build.sh\ncd admin \u0026\u0026 pnpm dev\ncd chat \u0026\u0026 pnpm dev\ncd service \u0026\u0026 pnpm dev\ncd pi \u0026\u0026 npm run check\n```\n\n### 建议阅读顺序\n\n1. [docs/README.md](./docs/README.md)\n2. [docs/current/system-status.md](./docs/current/system-status.md)\n3. [docs/overview/repo-map.md](./docs/overview/repo-map.md)\n4. [docs/overview/development-style.md](./docs/overview/development-style.md)\n5. [docs/operations/deployment.md](./docs/operations/deployment.md)\n\n## Development Notes\n\n- `chat/` 维持现有无分号风格\n- `admin/` 与 `service/` 维持现有有分号 TypeScript 风格\n- `pi/` 使用 Biome，采用独立的双引号 + Tab 风格\n- 修改前优先阅读 [docs/overview/development-style.md](./docs/overview/development-style.md)\n- 不直接编辑生成产物，例如 `dist/`\n\n## What This Repo Includes\n\n- Per-user runtime isolation\n- Runtime bundle build and publish workflow\n- Web-based coding and chat workspace\n- Tool execution and artifact handling\n- Generic platform search integration\n- Internal model proxy and runtime gateway design\n\n## What This Repo Does Not Include\n\n- Product-specific editorial workflows baked into the default runtime\n- Fixed multi-stage content pipelines tied to one business scenario\n- A single hardcoded skill pack for one use case\n\n## 致谢与来源 / Credits\n\nOpenWork 是在 [99AI](https://github.com/vastxie/99AI) 的基础上做了一些改造和扩展；项目中的容器与运行时相关能力长期参考并使用了 [PI-mono](https://github.com/badlogic/pi-mono)。\n\n感谢 99AI 和 PI-mono 两个开源项目，以及它们为社区提供的基础能力与实践参考。\n\nOpenWork is built by adapting and extending [99AI](https://github.com/vastxie/99AI), and its container/runtime layer has long relied on and referenced [PI-mono](https://github.com/badlogic/pi-mono).\n\nMany thanks to the 99AI and PI-mono projects for their open source work, foundational capabilities, and practical reference value.\n\n## Docs\n\n- [文档导览 / Docs Guide](./docs/README.md)\n- [开源说明 / Open Source Note](./docs/overview/open-source-note.md)\n- [当前系统状态 / Current System Status](./docs/current/system-status.md)\n- [仓库地图 / Repo Map](./docs/overview/repo-map.md)\n- [开发风格指南 / Development Style Guide](./docs/overview/development-style.md)\n- [部署说明 / Deployment](./docs/operations/deployment.md)\n- [运行时打包产物 / Runtime Bundle](./docs/operations/runtime-bundle.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafumu%2Fopenwork","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fafumu%2Fopenwork","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafumu%2Fopenwork/lists"}