OpenOPC:构建你的个人 AI 原生公司 —— 自建、自驱、自长
🏗️ **自建 (Self-Built)** — 全自动化招募专属 AI 员工并构建组织架构。
⚙️ **自驱 (Self-Run)** — 全自动化分配任务、驱动交接,并不断向目标推进。
🌱 **自长 (Self-Grown)** — 从每次任务中学习,构建组织记忆,持续输出更聪明的成果。

## 目录
- [实际应用](#real-world-applications)
- [何时使用 OpenOPC](#when-to-use-openopc)
- [OpenOPC 工作原理](#how-openopc-works)
- [快速开始](#quick-start)
- [Office UI 指南](#office-ui-guide)
- [CLI 指南](#cli-guide)
- [配置说明](#configuration)
- [生态与分享](#ecosystem-and-sharing)
- [路线图](#roadmap)
- [致谢](#acknowledgements)
## 何时使用 OpenOPC
**OpenOPC** 覆盖了九大核心垂直领域 —— 从 AI 开发和软件工程,到金融、销售、媒体、电商和教育。无论身处哪个行业,OpenOPC 都能组建合适的团队并提供端到端的服务。
🤖 AI 技术与研究
模型训练与评估、Agent 开发、LLM 应用与 AI 基础设施
💻 软件开发
Android 应用、SaaS MVP、网站、小程序与游戏开发
📈 金融投资
投资备忘录、市场全景图、尽职调查与投资委员会决策包
🚀 销售增长
对外销售、交易策略、提案与渠道拓展
🎬 内容与媒体
视频制作、短图文内容、剧本、分镜与多平台剪辑
🤝 行业助手
面向客服、房地产、法律接待、HR 入职、零售等场景的 Copilot
🧾 会计与财务
记账、财务报告、税务合规、预算与风险审查
🛍️ 品牌与电商
品牌规划、选品、店铺运营、用户增长与留存
🎓 教育与培训
课程设计、知识库、学员管理与内容生产
## 演示
🎬 Video Production
📈 Investment Research
🎮 Game Prototype
## OpenOPC 工作原理
OpenOPC 围绕复杂的真实世界任务组装了一家 AI 公司 —— 通过三个紧密耦合的机制:**自建** 负责为组织配置人员,**自驱** 负责执行工作,**自长** 负责从结果中学习。
**1. 自建 —— 组织人员配置**
在任何工作开始之前,必须让合适的人员各就各位。给定一个目标后,OpenOPC 会:
- 🌿 起草组织架构图 —— 推导出任务所需的角色和汇报结构。
- 🎯 填补每个角色 —— 招聘 Agent 会选择是复用现有员工(由过往项目塑造)还是从人才库中招募新员工。
💡 经验丰富的员工自带积累的上下文;而在某些特定角色需要时,新员工则能提供一张白纸般的全新状态。
**⚙️ 2. 自驱 —— 执行工作**
团队组建完毕后,自驱模式会统筹其成员完成最终交付。核心挑战不在于单纯的执行,而在于在不确定性下进行高效协作,这主要体现在两个截然不同的问题上。
🔀 动态协作编排。真实的工作无法完全提前计划。OpenOPC 通过工作项状态机解决了这个问题,其中每个项目的阶段决定了:
- 📋 它所在的看板列 —— 在工作流中所处的位置。
- 👑 它的负责人 —— 在该阶段负责的角色。
- ✅ 它的可执行性 —— 是否已准备好继续推进。
管理者会跨五种模式对工作项进行分解、分配和结果审查 —— 接受、返工或升级。分解过程会定义一个依赖 DAG(有向无环图),因此:
- ⚡ 独立工作项并行推进。
- ⏳ 有依赖的工作项需等待前置条件解决后执行。
🔗 依赖项的解决与被拒绝会作为结构化的阶段转换进行传递,消除了临时的协调沟通。
🛡️ 处理运行中浮现的阻碍。并非所有障碍都是预先可见的。OpenOPC 在两个层面上解决它们:
- 💬 团队内部 —— 一条阻塞消息会暂停发送方,并激活最有能力解决该问题的角色。
- 📡 团队外部 —— 当阻碍超出了团队的权限时,运行时会将其升级给人类负责人,在精确需要人类判断时引入人类介入。
🖥️ 看板和办公室视图会实时渲染这种编排过程。
**🌱 3. 自长 —— 从运行中学习**
执行过程会产生原始经验;自长机制会将其转化为持久的改进,这主要受两大原则指导。
🏅 将结果归因于正确的角色。将成果归功于整个公司学不到任何东西。相反,OpenOPC 会:
- 🔍 将用户反馈拆解为针对每位员工的评估。
- 🎯 仅更新负责相关工作项的角色 —— 功过精准落实到具体责任人。
📖 将执行轨迹提炼为知识。执行轨迹包含太多噪音,无法直接学习。因此,OpenOPC 会:
- 💡 将每个角色的任务提炼为高价值的经验,存储在其私有的经验档案中。
- 📚 将反复出现的经验提升为共享的 playbook,新员工从入职伊始即可继承 —— 随着时间的推移实现组织知识的复利增长。
这如何映射到 UI
- `Org -> Team` 用于编辑公司架构和角色。
- `Org -> Employees` 用于为空缺角色招募人才。
- `Team Roster -> Deploy` 用于将已招募的员工转化为可见的办公室 Agent。
- Workspace 编写器用于选择 Task Mode 的执行 Agent。
- 角色检查器可以为 Company Mode 角色设置运行时策略和首选的外部 Agent。
- 在执行期间,Workspace 的 `Agents` 和执行进度面板会显示当前哪个角色处于活跃状态、它拥有哪个工作项,以及哪个执行 Agent 正在进行具体的操作。
## 快速开始
`uv` 是 OpenOPC 推荐的安装路径。它可以安装/管理 Python、创建项目 virtualenv 并针对该环境运行命令,而不会将 OpenOPC 的依赖项混入你的全局 Python 中。
OpenOPC 需要 Python `>=3.10`;以下示例使用 Python `3.12`。
对于直接的单次任务,OpenOPC 还包含了 Task Mode,这是一个类似于 LobeChat 的单 Agent 工作区,使用 OpenOPC Native、Codex、Claude Code、Cursor 或 OpenCode。
推荐:uv 环境设置
**macOS**
```
# 使用 Homebrew 安装 uv,或使用官方的 standalone installer。
brew install uv
# curl -LsSf https://astral.sh/uv/install.sh | sh
cd /path/to/OpenOPC
uv python install 3.12
uv venv --python 3.12
source .venv/bin/activate
```
**Linux**
```
curl -LsSf https://astral.sh/uv/install.sh | sh
source "$HOME/.local/bin/env"
cd /path/to/OpenOPC
uv python install 3.12
uv venv --python 3.12
source .venv/bin/activate
```
**Windows PowerShell**
```
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
cd C:\path\to\OpenOPC
uv python install 3.12
uv venv --python 3.12
.\.venv\Scripts\Activate.ps1
```
**Windows Command Prompt**
```
winget install --id=astral-sh.uv -e
:: Or run the standalone installer from cmd:
:: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
cd C:\path\to\OpenOPC
uv python install 3.12
uv venv --python 3.12
.venv\Scripts\activate.bat
```
```
# 将 OpenOPC 安装到 uv 管理的环境中
uv pip install -e .
# 对于浏览器工具是可选的,但推荐使用
uv run python -m playwright install chromium
# 初始化本地 config、memory、skills、projects 和 workspace 文件夹
uv run opc init
# 在 .opc/config/llm_config.yaml 中添加 API key
# 或配置由 llm.api_key_env 指定的 env var。
# 启动浏览器 UI
uv run opc ui
```
默认情况下,请访问 `http://localhost:8765`。
```
# 交互式 CLI
uv run opc chat -p demo
# 单次任务模式
uv run opc chat -p demo --mode task --agent codex "Refactor this module and run focused tests"
# 采用内置 Corporate architecture 的 Company mode
uv run opc chat -p demo --mode company --company-profile corporate "Plan, implement, review, and document this feature"
# 非交互式脚本 / CI 风格用法
uv run opc exec -p demo --mode task --agent native --json "Summarize the current repo status"
```
安装注意事项
- Python:需要 `>=3.10`。当前所需的依赖项并未全部发布兼容 Python 3.9 的版本。
- 推荐在本地开发和发布测试中使用 `uv`。如果你更喜欢经典的 pip,请创建并激活一个 Python `>=3.10` 的 virtualenv,然后运行 `python -m pip install -e .`。
- 如果激活 virtualenv 受阻,请保持未激活状态并使用 `uv run ...` 运行命令。
- 关于其他包管理器和受管 Python 的详细信息,请参阅官方的 [`uv` 安装指南](https://docs.astral.sh/uv/getting-started/installation/)和 [Python 管理](https://docs.astral.sh/uv/guides/install-python/)文档。
- Node.js:当必须构建 Office UI 前端时,需要 `>=18` 版本。
- `opc ui` 会自动安装缺失的 `aiohttp` / `aiosqlite`,并在需要时自动构建前端。
- 如果你尚未安装外部 Agent CLI,请运行 `opc init --no-external-agent-preflight` 以跳过首次运行时的外部 Agent 检查。
- 浏览器工具是原生的 Playwright 工具。在要求 Agent 浏览页面之前,请使用 `python -m playwright install chromium` 安装 Chromium。
开发环境设置(从源码构建)
```
python -m pip install -e .
python -m pytest
cd opc/plugins/office_ui/frontend_src
npm install
npm run typecheck
npm run build
```
前端构建输出将作为服务提供,路径位于 `opc/plugins/office_ui/frontend_dist/`。
## Office UI 指南
展开 Office UI 指南 —— 视觉导览、工作区、Company Mode、看板、办公室、组织架构
通过以下命令启动:
```
opc ui
opc ui --port 9000 --project demo
opc ui --rebuild
```
### 视觉导览
水平滚动浏览 Office UI 演示。每张截图都附有简短的指南说明。
Workspace And Setup. Choose or create a project, start New Chat, then select Company or Task plus the matching organization or agent. In Company Mode, pick role employees and execution agents, or let OpenOPC auto-recruit.
Execution Progress. Track every role's state, then click a role or work item to inspect detailed execution records, tool activity, handoffs, reviews, and runtime metadata.
Kanban. Supervise each agent's concrete tasks and work items as they move through planning, execution, review, blockers, and completion.
Org Control. Tune existing organizations, adjust roles and reporting lines, review runtime policy, or create a new organization.
Talent Market. Browse talent templates, inspect candidate details, and recruit employees into vacant roles when the company needs more capability.
Office View. Watch the organization as an animated office, with each role/agent showing status, current task, active tool, seat, and runtime activity.
Office UI 包含三个主要页面:
| 页面 | 作用 |
|---|---|
| **Workspace** | 主要工作界面:会话列表、看板、聊天、任务详情、角色进度、通讯以及团队控制台。 |
| **Office** | 可视化办公室地图:Agent 以角色形象显示,可以被选中、移动、分配座位并进行检查。 |
| **Org** | 公司架构:切换企业/保存的组织、创建新组织、编辑角色、招聘人才、应用架构预设以及导入/导出配置。 |
### 工作区
Workspace 页面是默认显示的界面。
| 区域 | 重点关注内容 |
|---|---|
| 左侧边栏 | 项目会话、活动、未读消息计数以及创建新聊天。 |
| 中间看板 | 看板卡片。在 Task Mode 中,一张卡片通常是一个由任务支撑的聊天会话。在 Company Mode 中,看板会跟随所选的运行时会话并显示被委派的工作项。 |
| 右侧面板 | 上下文面板,包含 `Chat`、`Agents`、`Info`、`Comms` 和 `Team` 等标签页。在工作中可以折叠、调整大小或最大化此面板。 |
| 编写器 | 发送消息、附加文件、选择模式、选择公司架构,以及在 Task Mode 中选择执行 Agent。 |
### 从 UI 开始工作
1. 从顶部的项目选择器中创建或选择一个项目。
2. 在 Workspace 中,点击 `New Chat`。
3. 在编写器中,选择 `Task` 或 `Company`。
4. 对于 Task Mode,选择 Agent:`OpenOPC Native`、`Codex`、`Claude Code`、`Cursor` 或 `OpenCode`。
5. 对于 Company Mode,选择 `Corporate` 或已保存的组织架构。
6. 发送任务简报。
一旦发送了第一条消息,该聊天的模式和任务 Agent 即被锁定。可以使用锁定模式弹窗,以不同的模式在新的聊天中继续。
### UI 中的 Company Mode
Company Mode 会将一份简报转化为一个运行时会话和角色拥有的工作项。
| 标签页 | 显示内容 |
|---|---|
| `Chat` | 父级对话、最终回复、运行时进度卡片、检查点回复、停止/继续/完成控制,以及指向工作项执行的链接。 |
| `Agents` | 角色汇总:活跃/等待/挂起/已完成的角色、当前使用的工具、角色工作项、过滤器、搜索,以及指向详细执行进度的链接。 |
| `Info` | 状态、受托人、角色身份、员工分配、选定的执行 Agent、时间安排以及开发者详情。 |
| `Comms` | 角色收件箱、未读/已读/已发送消息、会议、决策以及近期的通信失败记录。 |
| `Team` | 运行时控制台:团队、席位、审批、未读通信、恢复状态以及当前运行的停止控制。 |
要检查某个角色的详细工作流,请打开一个 Company Mode 会话,并点击 `Chat` 进度卡片 `Agents` 标签页中的角色/工作项。执行进度面板会显示每个工作项、其状态、活动部分、工具进度、交接情况、审查目标以及执行轮次的元数据。
### 看板
- Task Mode:看板是一个项目级别的看板。你可以在 `Todo` 中快速创建任务,启动它们,并从右侧面板检查每个任务。
- Company Mode:活跃看板会跟随选定的运行时会话。卡片代表公司工作项,并根据后端运行时状态在计划/执行/审查/完成之间移动。
- 当运行时拥有状态时,有意限制了跨状态列的手动拖拽。在适用的地方支持同列内重新排序。
### 办公室
当你需要查看正在运行的团队的可视化视图时,请使用 Office 页面。
- 点击 Agent 角色或表格行以检查其状态、当前工具、当前任务、角色、办公室和座位。
- 使用办公室/座位控制功能来移动 Agent。
- 可以显示或隐藏子 Agent。
- 由员工或模板创建的 Agent 会显示在办公室中,并持久化存储在 `.opc/ui_state.db` 里。
### 组织架构
Org 页面是让公司结构变得可运行的地方。
| 子标签页 | 用途 |
|---|---|
| `Team` | 查看/编辑角色图谱、表格、角色检查器、花名册、保存的组织选择器、导出包流程,并将已招募的员工部署到办公室。 |
| `Runtime` | 调整运行时团队、席位、最终决策者、委派策略和运行时策略。企业版为只读;保存的组织可编辑。 |
| `Architecture` | 浏览内置架构预设、预览/应用包、管理已安装的包,以及导入/导出 YAML。 |
| `Employees` | 搜索人才模板、查看详情、招聘到空缺角色并为公司配置人员。 |
要创建新公司:打开 `Org`,点击 `New organization`,输入名称,添加至少两名具有明确职责和汇报关系的成员,检查并创建。OpenOPC 会自动保存它,并将编写器切换为 `Company / `。
要进行招聘:首先导入人才模板,然后打开 `Org -> Employees`,搜索模板,点击 `Hire`,选择一个空缺角色;如果你希望该员工在 Office 页面可见,请从 `Team Roster` 部署该员工。
```
opc talent import /path/to/agency-agents
```
项目文件存放位置
OpenOPC 会将运行时/配置状态与交付的工作区文件分离开来。
| 路径 | 含义 |
|---|---|
| `.opc/config/` | 通过 `opc init` 从 `config/` 复制过来的本地配置。 |
| `.opc/memory/` | 全局和项目的 Markdown 记忆库。 |
| `.opc/projects//` | 项目运行时元数据和任务存储。 |
| `.opc/ui_state.db` | Office UI 聊天、频道和可视化 Agent 状态。 |
| `../OpenOPC_workplace//` | 默认的项目工作区。Agent 应当在此处写入持久化的项目文件。 |
| `../OpenOPC_workplace//.opc-comms/` | 内部 Company Mode 通讯邮箱、会议和工具结果的暂存空间。 |
如果你希望将配置和运行时状态放置在仓库之外,请设置 `OPC_HOME=/path/to/opc-home`。
## CLI 指南
展开 CLI 指南 —— 常用命令和交互式斜杠命令
OpenOPC 提供了高级自然语言命令以及底层的 UI/服务命令。
在概念上,OpenOPC 有两种执行模式:`task` 和 `company`。一些底层 CLI/服务命令仍将 `org` 作为兼容性选择器暴露给 Company Mode,并使用保存的组织架构;在 UI 中,这表现为 Company 加上一个架构选择。
### 常用命令
```
# Chat
opc chat
opc chat -p demo --mode task --agent native "Inspect the failing tests"
opc chat -p demo --mode company --company-profile corporate "Ship this change with review"
# 可脚本化执行
opc exec -p demo --mode task --agent codex --stream-json "Run the migration check"
opc exec -p demo --mode company --company-profile corporate "Draft the research report"
# Project 生命周期
opc project list
opc project create demo
opc project switch demo
# Sessions
opc session list -p demo
opc session create "New feature" -p demo --mode company
opc session send "Continue with implementation" -p demo
opc session stop -p demo
opc session continue "Proceed after review" -p demo
# Runtime 检查
opc runtime status -p demo
opc runtime logs -p demo
opc work-item list -p demo
opc work-item show -p demo
opc comms state -p demo
# Recruitment
opc talent import /path/to/agency-agents
opc talent hire -p demo
```
### 交互式斜杠命令
运行 `opc chat`,然后使用斜杠命令:
```
/status
/mode task
/mode company corporate
/agent codex
/project switch demo
/session list
/runtime --full
/logs --full
/comms --full
/org
/talent list
/market list
```
请参阅 [`docs/cli-chat-slash.md`](docs/cli-chat-slash.md) 获取完整的命令表。
CLI 命令组
| 组别 | 示例 |
|---|---|
| `opc project` | `list`, `show`, `create`, `switch`, `rename`, `delete --yes` |
| `opc session` | `list`, `create`, `show`, `config`, `send`, `rename`, `delete --yes`, `stop`, `continue`, `resume`, `complete` |
| `opc mode` | `show`, `set task`, `set company --profile corporate`, `set org --org ` 用于已保存的组织公司运行 |
| `opc kanban` | `view`, `task create`, `task update`, `task move`, `task assign`, `task status`, `task delete --yes` |
| `opc agent` | `list`, `create`, `create-from-template`, `import-employee`, `detail`, `move`, `delete --yes` |
| `opc org` | `info`, `export`, `import`, `saved list/save/load/delete`, `role add/update/bulk-add/delete`, `policy update`, `strategy update`, `reset --yes` |
| `opc talent` | `list`, `employees`, `import`, `hire`, `scan`, `import-selected`, `employee-detail`, `import-agent` |
| `opc market` | `presets`, `browse`, `preview`, `apply-preset`, `export`, `install`, `list`, `uninstall --yes` |
| `opc runtime` | `status`, `checkpoints`, `logs`, `run` |
| `opc recovery` | `scan`, `resume`, `cancel --yes`, `retry` |
| `opc channels` | `status`, `login`, `start`, `stop` |
大多数服务式命令支持 `--project/-p` 和 `--json`。
对于已保存的组织架构,一些 CLI/服务命令目前使用 `org` 作为兼容性选择器,尽管其概念上的运行时仍然是 Company Mode:
```
opc exec -p demo --mode org --org hku_research_lab "Draft the research report"
opc session create "Research sprint" -p demo --mode org --org hku_research_lab
```
## 配置说明
在仓库根目录下运行一次 `opc init`。它会创建 `.opc/` 目录,从 `config/` 复制模板配置,创建 memory/skills/log 等文件夹,并可选择创建第一个项目。
展开配置说明 —— 配置文件、LLM 密钥、外部 Agent、频道、浏览器/MCP、故障排除
| 文件 | 用途 |
|---|---|
| `.opc/config/llm_config.yaml` | 默认模型、兼容 LiteLLM/OpenRouter 的 API base、API key、环境变量间接寻址、路由、回退、temperature、token 限制。 |
| `.opc/config/system_config.yaml` | 运行时行为、浏览器工具、原生运行时、压缩、验证、权限、sandbox 以及安全设置。 |
| `.opc/config/agent_config.yaml` | 外部 Agent 命令路径、优先顺序、模型标志、会话模式、超时时间、审批模式以及原生子 Agent 配置。 |
| `.opc/config/channel_config.yaml` | 外部消息提供者和凭证。入站发件人列表默认为拒绝策略。 |
| `.opc/config/company_corporate_config.yaml` | 内置的企业级公司架构模板。 |
| `.opc/config/company_orgs/org__config.yaml` | 由 Company Mode 使用的已保存自定义公司架构。 |
| `.opc/config/org_index.yaml` | 活动状态下的已保存公司架构选择器。 |
### LLM 密钥
在 `opc init` 之后,在仓库本地的 OPC home 中编辑 `.opc/config/llm_config.yaml`。如果你设置了 `OPC_HOME`,请改为编辑 `$OPC_HOME/config/llm_config.yaml`。
模板将密钥留空。请直接在文件中写入你的密钥:
```
llm:
default_model: "openai/gpt-5.4"
api_base: "https://openrouter.ai/api/v1"
api_key: "sk-or-v1-..." # your OpenRouter (or other provider) API key
max_tokens: 32768 # max output tokens per request; lower it if your
# model's output cap is smaller
# context_window: 128000 # total input window. Usually auto-detected via
# litellm; unmapped models fall back to 128000.
# Uncomment and set only when the fallback is
# wrong for your model.
```
然后使用 `opc status` 进行验证。
如果你不想将密钥存储在文件中,请将 `api_key` 留空,并将 `api_key_env` 设置为持有该密钥的环境变量名(例如 `api_key_env: "OPENROUTER_API_KEY"`)。
### 审批与 Agent 权限
`.opc/config/system_config.yaml` 的 `autonomy` 部分控制了 Agent 在未经询问的情况下能执行多少操作。关键的调节项是 `max_auto_approve_risk` —— 即可被自动审批的最高风险等级:
```
autonomy:
max_auto_approve_risk: medium # low | medium | high | critical
allow_native_tool_auto_approval: true
tool_first_use_approval: true # first use of each tool always asks
```
每个原生工具调用在运行前都会经过风险分类:已知的破坏性命令(`rm -rf`、`drop table`、force-push 等)和敏感关键词(凭证、部署等)属于 `high`/`critical`,并始终会升级给人类处理;允许列表内的安全前缀(`ls`、`git status` 等)属于 `low`;其他所有操作均属于 `medium`,并在自动审批前需经过 LLM 审查。
- `medium`(默认):平衡模式 —— 常规命令运行时无需提示;危险命令会升级。
- `low`:严格模式 —— 任何不在安全允许列表中的操作都需要请求审批。推荐用于共享或生产环境机器。
- `high`/`critical`:宽松模式 —— 仅适用于一次性的 sandbox 环境。
首次使用工具时,系统总是会提示你(除非该工具位于 `tool_approval_exemptions` 中),并且你的“始终允许”选择会累积到特定于项目的允许列表中。
### 外部 Agent
Task Mode 可以显式选择执行 Agent:
```
opc chat -p demo --mode task --agent codex "Implement the change"
```
可用值包括 `native`、`codex`、`claude_code`、`cursor` 和 `opencode`。可以在 `.opc/config/agent_config.yaml` 中配置命令名称、标志、超时、会话复用和审批行为。
在 Company Mode 中,角色可以通过其角色配置或 Org 角色检查器来设置首选外部 Agent。一个角色可以使用 `auto`、`native` 或 `external` 执行策略,并可选择一个首选的外部 Agent。
### 飞书连接
```
pip install -e .[channels-feishu]
opc init
opc channels login feishu
```
编辑 `.opc/config/channel_config.yaml`:
```
channels:
feishu:
enabled: true
app_id: "cli_xxx"
app_secret: "..."
encrypt_key: ""
verification_token: ""
react_emoji: THUMBSUP
allow_from:
- "ou_xxx"
```
接着执行:
```
opc channels status
opc channels start -p demo
# 或运行长生命周期的 engine + channel runtime:
opc run -p demo
```
飞书使用 `lark-oapi` WebSocket 客户端。必须提供 `app_id` 和 `app_secret`;除非你的租户/应用配置有要求,否则 `encrypt_key` 和 `verification_token` 是可选的。请保持 `allow_from` 列表明确;空列表将拒绝所有入站消息。
其他频道提供商
| 提供商 | 安装附加项 | 运行时 | 必填字段 |
|---|---|---|---|
| Telegram | `channels-telegram` | polling | `token` |
| Slack | `channels-slack` | socket | `bot_token`, `app_token` |
| Discord | `channels-discord` | socket | `token` |
| DingTalk | `channels-dingtalk` | socket | `client_id`, `client_secret` |
| Email | `channels-email` | polling | IMAP/SMTP fields, `consent_granted` |
| Matrix | `channels-matrix` | sync/polling | `homeserver`, `access_token`, `user_id` |
| QQ | `channels-qq` | socket | `app_id`, `secret` |
| WhatsApp | `channels-whatsapp` | bridge | `bridge_url` |
| Mochat | `channels-mochat` | bridge | `base_url`, `claw_token`, `agent_user_id` |
常用命令:
```
opc channels login slack
opc channels status
opc channels start -p demo
opc channels stop
opc run -p demo
```
请参阅 [`docs/channels.md`](docs/channels.md) 和 [`docs/channel-bridges.md`](docs/channel-bridges.md)。
浏览器工具与 MCP 服务器
浏览器工具:
```
python -m playwright install chromium
```
在 `.opc/config/system_config.yaml` 中配置启动行为:
```
system:
browser:
mode: embedded # embedded | chrome | auto
headless: true
chrome_channel: chrome
user_data_dir: ""
```
原生浏览器工具包括 `browser_navigate`、`browser_snapshot`、`browser_click`、`browser_type`、`browser_wait_for`、`browser_scroll`、`browser_select_option`、`browser_evaluate`、`browser_take_screenshot` 以及 `browser_close`。
MCP 服务器可以在 `system_config.yaml` 的 `mcp_servers` 下添加。本地服务器使用 stdio 命令;远程服务器使用 HTTP/SSE 样式的 URL。发现的工具会使用服务器前缀进行注册,以避免命名冲突。
### 故障排除
Office UI 无法打开或看起来 stale
```
opc ui --rebuild
```
如果浏览器仍然显示陈旧的 UI 状态,请强制刷新页面。如果之前的进程在运行中意外终止,请首先重启 `opc ui`,以便释放内存中的锁。
任务显示卡住
从服务器重启和浏览器强制刷新开始。如果持久化的任务状态仍然 dirty,请使用重置助手:
```
python scripts/reset_stuck_task.py --project --session --apply
python scripts/reset_stuck_task.py --all --apply
```
外部 Agent 不可用
运行:
```
opc status
```
检查 `.opc/config/agent_config.yaml` 命令名称,如 `codex`、`claude`、`cursor-agent` 和 `opencode`。禁用或重新排序你未安装的 Agent。
频道提供商未收到消息
请检查:
- 确认已安装该提供商的附加组件,例如 `pip install -e .[channels-feishu]`。
- 确认该提供商的状态为 `enabled: true`。
- 确认已填写所需的凭证。
- 确认 `allow_from` 包含了你期望的发件人 ID。
- 确认 `opc channels status` 报告该提供商已配置且可用。
## 生态与分享
OpenOPC 构建的一切都归你保留、重用和分享 —— 组织、员工、人才模板、技能和频道本质上都只是文件。你可以导入受欢迎的人才库,跨项目重用一个团队,或者将一整家公司打包成可分享的 `.opcpkg` 文件。
```
# 从 talent library(例如 agency-agents)hire 到一个 role 中
opc talent import /path/to/agency-agents
opc talent hire
-p demo
# 重用或共享整个组织
opc org export --json > my-org.yaml
opc market export --id hku_lab --name "HKU Lab" --output-dir packages
opc market install packages/hku_lab.opcpkg
```