OpenWork 是一个面向组织部署的浏览器智能体平台。 它把聊天工作台、管理后台、产品网关和独立运行时组合成一套可落地的系统:部署完成后,团队只需要创建账号并配置模型,用户就可以直接在 Web 应用里完成对话、工具调用、文件处理和浏览器内工作,而不必先准备本地开发环境。
OpenWork is a browser-based agent platform for teams that want a deployable, web-first AI workspace. It 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.
OpenWork 面向这样一类场景:
- 希望把智能体能力部署到自有环境,而不是只依赖托管产品
- 希望统一模型配置、搜索配置、权限和运行时策略
- 希望用户直接在浏览器里完成对话、工具执行和文件交互
- 希望运行时按用户隔离,同时保持平台能力通用化
从架构上看,OpenWork 不是“单个聊天应用”,而是一套由前端、后端、运行时和部署流程共同组成的平台仓库。
OpenWork is designed for teams that want more than a thin chat UI:
- a browser-based AI workspace for end users
- centralized admin control for models and platform settings
- a backend gateway that owns auth, billing/quota, logging, and routing
- a generic runtime layer that can be deployed and versioned independently
- per-user runtime isolation when containerized execution is enabled
The repo is intentionally structured as a platform codebase rather than a single product surface.
- Browser-based chat workspace and tool-driven workflows
- Centralized admin console for model, search, and platform configuration
serviceas the product gateway for auth, billing/quota, logs, and runtime dispatch- Generic
web_searchintegration routed through the backend - Per-user runtime containers for isolated workspaces
- Versioned runtime bundle build and publish flow
- Internal model proxy for centralized model access
当前主流程如下:
chat frontend
-> service /api/openwork/*
-> auth, billing/quota, logs, group state
-> PI runtime /v1/chat/completions
-> agent session / direct model path / discussion
-> host bridges back to service
-> model proxy
-> search bridge
几个关键边界:
service/仍然是产品网关,前端不会直接调用 runtime- 搜索能力通过统一平台接口暴露,而不是在前端散落接入
- runtime 保持通用,不内置产品专属工作流
- 当
PI_DOCKER_ENABLED=1时,运行时容器按用户隔离 - runtime bundle 仍然是部署与版本切换的基本单位
更详细的当前事实可以查看 docs/current/system-status.md。
-
chat/用户工作区与聊天界面,基于 Vue 3,负责对话、工具执行展示、文件与制品交互。 -
admin/管理后台,基于 Vue 3 + Vite,负责模型配置、搜索配置、平台设置与运维入口。 -
service/NestJS 后端,负责鉴权、用量/额度、日志、运行时编排、搜索桥接和内部模型代理。 -
pi/独立运行时工作区,负责智能体运行时、工具、工作区和运行时打包产物。 -
docs/当前有效的仓库文档入口,记录系统现状、风格约束和部署说明。
./build.sh
cd admin && pnpm dev
cd chat && pnpm dev
cd service && pnpm dev
cd pi && npm run check- docs/README.md
- docs/current/system-status.md
- docs/overview/repo-map.md
- docs/overview/development-style.md
- docs/operations/deployment.md
chat/维持现有无分号风格admin/与service/维持现有有分号 TypeScript 风格pi/使用 Biome,采用独立的双引号 + Tab 风格- 修改前优先阅读 docs/overview/development-style.md
- 不直接编辑生成产物,例如
dist/
- Per-user runtime isolation
- Runtime bundle build and publish workflow
- Web-based coding and chat workspace
- Tool execution and artifact handling
- Generic platform search integration
- Internal model proxy and runtime gateway design
- Product-specific editorial workflows baked into the default runtime
- Fixed multi-stage content pipelines tied to one business scenario
- A single hardcoded skill pack for one use case
OpenWork 是在 99AI 的基础上做了一些改造和扩展;项目中的容器与运行时相关能力长期参考并使用了 PI-mono。
感谢 99AI 和 PI-mono 两个开源项目,以及它们为社区提供的基础能力与实践参考。
OpenWork is built by adapting and extending 99AI, and its container/runtime layer has long relied on and referenced PI-mono.
Many thanks to the 99AI and PI-mono projects for their open source work, foundational capabilities, and practical reference value.