封面

腾讯开源 Octop:一条命令跑起来的多人 AI 助手

文茂

腾讯云开源的自托管 AI 助手,多用户多 Agent,一条命令跑起来。这是我读仓库的笔记。

最近在 GitHub 趋势里反复刷到一个名字:Octop。

一开始我以为又是哪个个人开发者的玩具项目,点进去一看,仓库挂在 TencentCloud 组织下,是腾讯云开源的一个自托管 AI 助手。今天(10 月 9 日)晚上我看的时候,仓库已经有 8191 个 star、992 个 fork,许可证是 MIT。

先交代清楚:这篇是读仓库的笔记,不是上手测评。我还没有在自己的机器上完整部署跑过它,下面写的功能和架构都来自官方 README、CHANGELOG 和 Release 页面,凡是我自己判断的部分,会单独标出来。

一、它是什么

一句话:一个可以装在自己机器上、全家或小团队共用的 AI 助手平台。

仓库简介写的是「A smarter, self-hosted AI assistant — multi-user, multi-agent」。翻成大白话,有三个关键词:

README 里列的典型用法有六类,我照着摘一下:

入口也不止一个。Web 控制台、命令行、HTTP 和 WebSocket API 之外,它能接飞书、钉钉、QQ、微信、企业微信这些 IM 通道。也就是说,你可以在群里直接 @ 它干活,不用专门打开一个网页。

二、架构很省

我最感兴趣的是它的架构选择。README 里说得很直白:单进程。

一条 octop run 启动之后,同一个进程里同时跑着 Web 控制台、CLI、IM 通道和定时任务。所有入口都汇到一个叫 HarnessProcessor 的进程内路由,不依赖外部消息队列或中间件。状态存在控制面数据库里,默认是 SQLite(WAL 模式),也可以换成 PostgreSQL;进程重启后,状态从数据库重建。

数据目录的结构也很清楚:~/.octop/ 下面放进程配置 config.json、控制面数据库 octop.db、密钥目录 secrets/、每个 Agent 的工作区 agents/、Shell 命令护栏规则和运行日志。备份和迁移基本就是围绕这一个目录做,官方也提供了 octop backup 命令。Agent 的工作区后端还可以单独换成 Docker 沙箱、PostgreSQL 或者 COS / S3 这类对象存储,和控制面数据库分开。

底下的能力拆成了四个独立仓库:

  1. Octop Harness:Agent 运行时,负责模型路由、工具、技能和对话检查点。
  2. Octop Gateway:多平台 IM 通道桥接,把各家消息归一成同一条处理管线。
  3. Octop Memory:分层记忆和全文检索,记忆跟着工作区一起迁移。
  4. Octop Browser:基于 CDP 的浏览器自动化,支持持久化登录配置。

这四个子仓库都是 9 月 24 日前后在 GitHub 上创建的,同样是 MIT 许可,目前 star 数还只有几十。

我的看法(主观):单进程加 SQLite 这个组合,对家庭和小团队是对的。不用装 Redis,不用配消息队列,一台小主机或者 NAS 就能扛起来,出问题也好排查。代价是横向扩展能力有限,但它本来瞄准的就不是大规模企业部署。

三、功能清单

功能很多,我按自己关心的程度挑几项说。

连接器和技能:通过 OAuth 加 MCP 网关接外部服务,README 写的是能一键接入「腾讯全家桶」(文档、会议、新闻等)。技能可以按 Agent 单独启用或禁用。

ACP 双向集成:这一点对开发者比较有意思。一方面,octop acp 可以把你的 Octop Agent 以 stdio ACP 服务的形式提供给 Zed、OpenCode 这类工具;另一方面,Octop 也能在对话里把编码任务委派出去,内置的出站 Runner 包括 OpenCode、CodeBuddy、Claude Code 和 Codex。

终端、浏览器和远程桌面:控制台里有带 AI 辅助的交互式 Shell、基于 Chromium 的无头浏览器会话,还有跨 Linux、Windows、macOS 的远程桌面,可以在网页里直接看屏、操作键鼠。

安全护栏:JWT 多用户隔离、高风险工具审批、Shell 命令规则(放在 ~/.octop/security/tool_guard/)、离开工作区前的敏感信息脱敏。

知识库和插件:基于文档的 RAG 检索,支持同一实例内共享语料;第三方插件用 octop plugin 管理。

还有一个 AgentTeams,由一个协调者调度多位专家协作完成多步骤任务,目前标的是 Beta。

四、迭代很快

翻 CHANGELOG 能看出这个项目的节奏。

从 0.9.1 到 1.0.2b6,三个月里 CHANGELOG 一共记了 41 个版本,平均两天出头就有一版。这说明投入很大,也意味着接口和配置还在快速变化,现在上生产要做好跟着升级的准备。

另外提一句:截至今晚,仓库的 open issues 加 PR 数是 688。star 涨得快,反馈也多,这个数字本身说明不了好坏,但值得留意。

五、怎么装上

官方给了好几种装法,最后都落到同一组命令上。

README 里写明,安装脚本会用 uv 在 ~/.octop/ 下建一个隔离的 Python 3.12 环境,不碰系统 Python。PyPI 上也能直接装,要求 Python 3.12 及以上。需要注意的是,PyPI 当前的稳定版是 1.0.1,GitHub Release 上的 1.0.2b6 版本号带 b(beta),按 Python 的版本号规范算预发布版。

如果你只是想看看,桌面客户端最省事,Windows、macOS、Linux 都有安装包,飞牛 NAS 也有现成的 fpk。要长期给家人或团队用,README 推荐 Docker 部署。

六、我的疑问

读完仓库,我有几个还没想清楚的地方,先记下来:

后面我打算找台机器实际部署一次,跑通 IM 通道和定时任务之后再写一篇实测。

附:安装命令

以下命令均摘自官方 README,执行前建议先看一眼脚本内容。

macOS / Linux 一键安装:

curl -fsSL https://finnie-1258344699.cos.ap-guangzhou.myqcloud.com/octop/install.sh | bash

Windows(PowerShell):

irm https://finnie-1258344699.cos.ap-guangzhou.myqcloud.com/octop/install.ps1 | iex

或者用 PyPI(需要 Python 3.12 及以上):

pip install octop

装好之后,初始化并启动:

octop init
octop run
# 浏览器打开 http://127.0.0.1:8088

项目地址:github.com/TencentCloud/Octop


我是文茂,热衷于分享 AI 工具与开发者生态观察。觉得有用欢迎点赞、在看、转发三连。