OtoDock
自托管的'代理公司操作系统':在自有的 Claude 与 ChatGPT 订阅上运行多个协作 AI 员工,让整支团队与自主代理共用同一个仪表盘。
证据显示:README 详述内核沙箱、网络隔离、按角色挂载、凭据加密且按会话注入;测试代码中可见 API key repr 脱敏断言与「禁止在 INFO+ 级别记录转写文本」的 lint 守卫(PII 处理扎实,给满分)。扣分点:least_privilege 与 external_effects 仅是 README 声明,沙箱与工具授权的源码未在证据中出现,无法核实,故 2;user_confirmation 未被任何文件提及(代理无人值守运行、打电话、操作远程机器),给 1;rollback 仅见 backup/restore 脚本提及,无代理运行回滚或数据恢复说明,给 1。
证据显示:CI 使用固定版本的 Postgres 16.14、Pin 的 Python/Node、ruff、pytest、vitest,依赖可用性与自洽性证据充分;测试明确覆盖错误呈现(pop_fatal_error 一次性语义)、日志限频(每事件一条 send-skipped 警告)等失败路径,failure_messages 满分。未发现需扣减的具体弱点。
证据显示:受众(自托管团队、个人、BYO 订阅)、四种共享模式、三种角色、多引擎切换描述清晰,audience 满分。扣分点:能力边界仅靠工具按代理分配的叙述支撑,未给出明确的边界文档(2);触发机制(定时/webhook/一次性)只列了类型,无精度说明(2);环境限制明显——CI 注明 amd64 only,快速启动要求 Linux+Docker,跨平台仅限配对机,environment_fit 2。
证据显示:LICENSE 为完整 FSL-1.1-Apache-2.0 文本,含 Apache 2.0 未来授权与作者署名,license 满分(注册表 NOASSERTION 与实际 LICENSE 文件不一致是注册侧问题,不扣本仓库);README 结构、快速开始、目录架构说明优秀,information_architecture 与 install_notes 满分。扣分点:CHANGELOG、VERSIONS.md、CONTRIBUTING 等仅被引用而未出现在证据中,versioning_changelog 与 naming_stability 给 2;known_limitations 主要见于 SECURITY.md 的范围排除,产品局限叙述少,给 2;examples_and_faq 依赖外部文档站,仓库内示例薄,给 2;maintenance_responsibility:单作者、安全响应流程明确(72 小时确认),但单人 bus factor,给 2。
证据显示:BYO 订阅 + 自托管 + 每用户成本预算构成明确的差异化价值,marginal_value 满分。扣分点:output_usability 只能从 README 截图与文字推断(仪表盘、流式回复、文件内编辑),静态评审无法证实实际输出质量,给 2;cost_benefit 方向合理(复用现有 Claude/ChatGPT 订阅、席位定价)但无成本量化证据,给 2。
证据显示:测试注释区分了「live repro 日期」的实测事实与设计推断,fact/inference 分离做得非常好,满分。扣分点:大量核心声明(沙箱逃逸防护、SSO、多租户隔离)指向外部 docs.otodock.io,证据内不可追查,claim_traceability 2;CI 与测试可佐证工程实践与音频层质量,但佐证不了代理沙箱与安全模型主体,cross_source_corroboration 2。
- 沙箱、网络隔离与多租户隔离仅为 README 声明,本次静态评审未能核实其实现,敏感部署请自行验证沙箱逃逸防护。
- 代理可无人值守运行、打电话并在配对机器上获得完全访问权,但未见任何用户确认机制;上线前应自行限制触发器与工具授权。
- FSL-1.1 不是 OSI 开源许可证,商业竞争用途受限;注册表中的 NOASSERTION 与实际 LICENSE 不一致,采购前请核对。
- 发布镜像目前仅 amd64,且维护者为单人,存在 bus factor 风险;升级前查看 CHANGELOG(本次证据中未见其内容)。
这个 Agent 能做什么,适合哪些场景?
OtoDock 是一个自托管的 AI 代理平台,定位为'代理公司操作系统',构建于 Claude Code 与 Codex 之上,直接消耗用户自己的 Anthropic 和 OpenAI 订阅,也支持 API 密钥和本地模型。每个代理由六个可编辑部分组成:Persona(人设)、Memory(记忆)、Workspace(工作区)、Knowledge(知识)、Skills(技能)和 Tools(工具),并通过四种模式决定工作区在成员间如何共享。平台按部门组织代理,支持代理之间的委派、会议、定时任务、Webhook 触发与电话呼叫(Twilio 或 Asterisk/FreePBX)。技术上,代理作为 Claude Code / Codex 进程运行在逐会话的内核沙箱内,通过 MCP 与工具通信,FastAPI 代理核心(proxy/)承载会话、安全、调度与 WebSocket 中心,React 仪表盘负责聊天与管理,PostgreSQL 存储平台状态。它面向多租户团队,内置 SSO、双因素认证、按用户成本预算,采用 FSL-1.1-Apache-2.0 许可,5 个用户以内自托管免费。
安装脚本(scripts/install.sh)会在 Linux 服务器上检查 Docker、生成 .env、下载 docker-compose.yml 并启动整套服务。启动后,管理员在 http://localhost:8400 通过设置向导创建所有者账户,平台自动安装一个 Personal Assistant;用户在 Setup → AI Engines 下连接自己的 Claude 或 ChatGPT 订阅。每个代理作为独立的 Claude Code / Codex 进程在内核沙箱(独立 mount 与 process namespace)中运行,通过 mcps/ 目录下的 MCP 工具服务器访问文件、记忆、任务、会议、通知等能力,并通过 WebSocket 把每一步流式回传到 dashboard/ 的 React 界面。代理可按计划、Webhook 事件或一次性定时自主运行,产出文件与报告并按四级严重度发出通知;可拨打和接听电话(phone/ 守护进程对接 Twilio 或 FreePBX/Asterisk);可通过 satellite/ 组件把远程电脑以一条命令配对到平台,在本地机器上全权运行同一代理。用户可在聊天中直接编辑 Word、Excel、PowerPoint 文件、生成图像与音视频、打开 Claude Code / Codex 终端,并从社区目录一键安装现成的代理、工具和技能。
- 小团队负责人想用已有的 Claude/ChatGPT 订阅组建'数字员工'队伍,而不想为每个成员单独购买 API 额度
- 系统管理员需要把代理放到隔离沙箱里运行,只逐项开放对内网服务和 MCP 工具的访问权限
- 营销或运营人员希望代理定时抓取资料、写周报、处理 Excel/Word 文件,并在需要人工介入时收到分级通知
- 开发者想让代理直接操作自己的笔记本或工作站(macOS/Linux/Windows),执行需要本机文件和终端的任务
- 客服或个人助理场景需要一个有真实电话号码、能接打电话的代理(自带 Twilio 账户或现有 FreePBX/Asterisk)
- 家庭用户想通过 MCP 工具让代理控制智能家居(社区目录已含 Home Assistant)
这个 Agent 有哪些优点和局限?
- 直接复用团队已有的 Anthropic 和 OpenAI 订阅(BYO subscription),每位用户各连各的,避免集中购买 API 额度
- 安全默认设计:每个代理会话运行在独立内核沙箱中,私网与云元数据端点不可达,凭据加密存储且按会话注入、代理只见其用不见其值
- 代理形态完整:持久记忆、定时/Webhook 自主运行、代理间委派与会议、真实电话呼入呼出、聊天内直接编辑 Office 文件
- 远程机器配对只需一行命令,无需开放端口(单条出站连接),机器离线时服务器自动接管
- SSO/OIDC、双因素认证、按用户和按代理的成本预算从第一个安装起就是标配,适合团队落地
- 许可为 FSL-1.1-Apache-2.0(fair source):不得用于与 OtoDock 商业竞争,5 用户以上自托管需按席位付费,并非纯开源
- 生产部署要求 Linux 服务器加 Docker(最低 4 GB RAM),没有托管版之外的免运维选项
- 核心执行依赖 Claude Code 和 Codex 运行时——使用 Claude/Codex 引擎需要有效的 Anthropic 或 ChatGPT 订阅,这构成对两大供应商的实质性绑定
- 电话功能需自备 Twilio 账户或已有 Asterisk/FreePBX 服务器,属额外成本与运维负担
- 仓库在 GitHub 上的 License 字段为 NOASSERTION,工具链较新,社区生态(社区目录中的代理/MCP/技能)规模尚未验证
如何安装或部署这个 Agent?
需要一台装有 Docker 的 Linux 服务器(最低 4 GB RAM)。在目标目录执行:
mkdir otodock && cd otodock
curl -fsSLO https://raw.githubusercontent.com/OtoDock/oto-dock/main/scripts/install.sh
bash install.sh安装脚本会检查 Docker、生成带数据库密码的 .env、自动处理 Ubuntu 24.04+ 的主机步骤、下载版本锁定的 docker-compose.yml 和电话服务 overlay 并启动。若用户通过域名或 IP 访问,在 .env 中设置 DASHBOARD_PUBLIC_URL;若在反向代理后,还需设置 TRUSTED_PROXY 为代理 IP。仅支持全新安装,不会触碰已有安装。
如何使用这个 Agent?
安装完成后打开 http://localhost:8400,设置向导会引导你创建所有者账户,并自动安装一个 Personal Assistant。到 Setup → AI Engines 连接你的 Claude 或 ChatGPT 订阅(每位用户连接自己的订阅;也可使用 API 密钥或本地模型)。从 Agents 页打开 Personal Assistant 发送第一条消息,回复、工具调用和生成的文件会实时流式显示。之后可从社区目录添加现成代理,或自建代理(编辑其 Persona、记忆、工作区、知识、技能和工具),为每个代理选择 Claude Code 或 Codex 引擎(可在单次聊天中切换),设置共享模式和定时任务,并邀请团队成员分配 Admin/Creator/Member 平台角色及每个代理上的 Manager/Editor/Viewer 角色。
这个 Agent 与同类方案有什么区别?
README 将自身定位为'代理公司操作系统',与直接在终端使用 Claude Code 或 Codex 形成对照:OtoDock 把这两个引擎包装成多租户、可共享、可自主运行的团队平台;功能上对应 OpenClaw 类自托管个人代理方案,但 OtoDock 强调多用户共享、部门化委派和企业级安全(SSO、沙箱、预算)。