腾讯云在 2026-09-17 发布开源自托管多用户 AI 助手 Octop 1.0 GA(来源:官方公众号;GitHub 仓库 TencentCloud/Octop,语言 Python、许可证 MIT,发布当天实测 3,198 星)。它把 Web 控制台、CLI、IM 通道和定时任务塞进一个进程,所有状态落在 ~/.octop/,控制面数据库默认 SQLite(可切 PostgreSQL)。这是一篇不吹不黑的实操 SOP:从「我到底该不该自托管」一路走到「上线前 checklist」,所有安装命令、配置路径、默认端口逐字以官方 README 为准,一个字符都不自己造。关于这次 GA 的来龙去脉,可以看 Octop 1.0 GA 发布热点。
一、适用判断:先给决策口径,再动手
自托管 Octop 不是「买了就能爽」的玩具,它适合三类人。第一类是数据敏感型:聊天记录、工作区、凭据全在自己机器上,本地优先可离线,PII 脱敏后再出站。第二类是家庭共享型:一个 admin 账号带全家,不同成员各有独立记忆、工作区与专家配置,互不串味。第三类是一人公司或小微团队:愿意花时间管一台服务器,换可控、可离线、可审计。它不适合「只想用 AI、不想运维」的人,如果你连端口转发都嫌烦,云端助手更省心。
判断标准只有一条:你愿不愿意为「数据握在自己手里」付出运维成本。愿意,往下读;不愿意,直接关掉这篇去用 SaaS。如果你还在自托管和云端之间纠结,建议先读 自托管 AI 助手横向对比,把成本账算清楚。需要提醒的是,Octop 是单进程架构,Web 控制台、CLI、IM 通道、定时任务都在一个进程里跑,重启时从控制面数据库重建全部状态——这意味着它省事,但也意味着这台机器的可用性就是服务可用性。还有一层常被忽略:单进程意味着没有外部消息队列或 broker,Web、IM、定时任务都走同一个进程内的处理管线。好处是部署极简、重启安全;代价是这台机器的 CPU、内存、磁盘 IO 直接决定全员体验。所以自托管前先问自己三个问题:机器谁维护、断电断网谁兜底、数据丢了谁负责。三个都能答,再继续。
二、安装路径选择(第 1 张表:路径对照)
README 给出四种装法,各自适合不同人群与硬件。先说结论:要长期跑、给多人用,直接上 Docker Compose;只是想在本机体验,macOS 或 Linux 一条命令脚本最省事;Windows 走 PowerShell 脚本;国内用户图省心,GA 当天上线的腾讯云 Lighthouse 与 CVM 官方镜像市场是最顺的渠道(来源:官方公众号,一条命令部署)。
| 安装方式 | 适用平台 | 适合人群 | 最低硬件要求 |
|---|---|---|---|
| 一键脚本(curl 管道) | macOS / Linux | 开发者、快速体验 | 现代多核 CPU、数 GB 内存(进程加模型与向量缓存);安装器用 uv 在 ~/.octop/ 内建 Python 3.12+ 隔离环境,无需系统预装 Python |
| Windows PowerShell 脚本 | Windows 10 / 11 | Windows 用户 | 同上;安装器同样内置 uv 隔离环境,不碰系统 Python |
| Docker Compose | 任意平台(生产推荐) | 长期运行、多人访问 | 同上;容器化便于备份与升级,数据挂到 ~/.octop 或 OCTOP_DATA |
| 腾讯云 Lighthouse / CVM 官方镜像 | 国内用户(GA 新渠道) | 不想碰命令行、要一条命令部署 | 以镜像市场实例规格为准(来源:官方公众号,GA 当天同步上线) |
macOS 与 Linux 推荐用一行安装器,命令从 README 逐字照抄:
curl -fsSL https://finnie-1258344699.cos.ap-guangzhou.myqcloud.com/octop/install.sh | bashWindows 用 PowerShell 一行安装:
irm https://finnie-1258344699.cos.ap-guangzhou.myqcloud.com/octop/install.ps1 | iex生产环境用 Docker Compose,命令同样来自 README:
docker compose -f docker/docker-compose.yml up -d装完之后,macOS 或 Linux 要开一个新终端,或重新加载 shell 配置,让 ~/.octop/bin 进 PATH:
source ~/.zshrc # Zsh
# 或
source ~/.bashrc # BashREADME 还提供可选扩展,比如浏览器自动化(Playwright Chromium)和飞书通道,按需加 --extras 参数即可,细节以 README 的 scripts 说明为准。硬件下限方面,README 的口径是「现代多核 CPU、数 GB 内存给进程与模型或向量缓存、足够磁盘给数据库与工作区」,没有写死具体核数,因此不要拿树莓派当生产机。顺带提醒:安装器不碰系统 Python,所有依赖锁在 ~/.octop/venv 里,所以一台机器上即使已有别的 Python 项目也不冲突。但也别因此就在同一台机器上堆满其它重负载服务,Octop 的模型与向量缓存会吃掉不少内存和磁盘,留足余量才稳。
三、初始化:octop init 与 octop run
装好之后第一步是初始化,建数据库、JWT 密钥和首个管理员账号,全部落在 ~/.octop/:
octop initREADME 说这是一个交互式向导,会创建 SQLite 数据库、JWT 密钥和第一个管理员账号。接下来启动,前台跑起 API 与 Web 控制台:
# 前台启动(API + Web 控制台)
octop run
# 自定义监听地址与端口
octop run --host 0.0.0.0 --port 8088
# 注册为系统服务(systemd / launchd / Windows service)
octop service start启动后打开 **http://127.0.0.1:8088**。注意默认端口就是 8088,这是 README 写死的值,不要凭记忆改成别的。Docker 部署时,首次初始化会生成一个随机管理员密码并写进 /data/.octop/credential.txt,除非你显式设了 OCTOP_DEFAULT_PASSWORD;交互式 octop init 或设置向导会让你自己选密码,要求至少 8 位且含字母与数字。
想用 API 文档?README 明确:/api/docs 默认关闭,要在 config.json 里把 enable_api_docs 设为 true 才开。默认不开是合理的,别为了调试把它长期暴露在公网。
四、首次安全加固:默认密码必须改
这是最容易翻车的一步。默认管理员账号是 admin;默认密码方面,官方 README 未写死,第三方评测口径为 octop,而 Docker 部署首次初始化会生成随机密码写入 credential.txt——无论拿到的是哪种默认值,首次登录必须立即改。把 admin / octop 暴露在公网等于开门揖盗,扫段脚本十分钟就能撞进来。Octop 的密码策略是至少 8 位且同时含字母与数字,弱密码或常见密码会被应用拒绝并回退到随机密码。
加固清单不止改密码:
- 工具审批与 shell 护栏:风险工具和 shell 命令需要显式审批,护栏规则在
~/.octop/security/tool_guard/下可编辑。生产环境务必开启,别让 AI 替你执行rm -rf这类命令。 - PII 脱敏:敏感数据在出站前被脱敏,这是本地优先设计的一部分,确认它处于开启状态。
- 暴露面收敛:如果只在自己机器用,
octop run --host 127.0.0.1就够了,不要为了「方便」监听0.0.0.0再裸奔公网。要对外,请走反向代理加 TLS,不要用明文 HTTP 直接扛公网流量。 - 多用户隔离:管理员建成员账号,JWT 权限隔离,每人独立记忆、工作区与专家配置。别图省事全家共用 admin。
安全是 Octop 的设计卖点(本地优先可离线、工具审批、shell 护栏、PII 脱敏),但卖点不会自动生效,得你亲手打开。为什么强调工具审批?因为 Octop 能调 shell、能读写文件、能连外部系统,一旦被诱导执行危险命令,影响的是你整台机器。护栏规则放在 ~/.octop/security/tool_guard/,你可以按团队习惯写允许与拒绝清单,把高风险命令拦在门外。宁可多一次审批,别少一次兜底。
五、接入模型:OpenAI 兼容、Ollama 与近 20 家供应商
Octop 支持 OpenAI 兼容接口、DashScope(通义千问)、Ollama 本地模型,以及其它预设供应商,README 口径是「近 20 家」。配置方式有两种:在 Web 控制台按 agent 配,或用 CLI。先看一下已支持的供应商与模型解析:
# 查看 LLM 供应商与模型解析
octop models
octop provider listOllama 本地模型的接法:在 Ollama 侧起好服务,把地址填进 Octop 的供应商配置即可,具体字段 README 没有逐条列出,以官方文档为准。OpenAI 兼容接口只要填 base_url 与 key 就能用,方便接各家兼容网关。关键点在于按 agent 分 key、最小权限:不要把一个全权限通用 key 塞给所有 agent,一旦泄露就是全线崩盘。README 没有写出每家供应商的确切字段名,因此 key 与端点填法以官方文档为准。
选模型的基本判断:日常对话与写作用通用大模型,代码生成用代码向模型,隐私数据走 Ollama 本地模型不出口。需要把 Octop 接进既有 Harness 技术栈的同学,可参考 Harness 技术栈资源。一个实用建议:把贵、把强的模型留给复杂任务,把本地 Ollama 小模型留给高频、可批量的简单活。这样既能控成本,又能保证隐私数据不出口。供应商 key 也建议按环境分:生产用受限 key,实验用临时 key,密钥泄露时影响面更小。
六、配专家与连接器、接 IM 通道
Octop 的差异化在专家库与连接器。专家库在启动时扫描 infra/agents/experts/library/,内置 16 种 MBTI 人格模板,也能自定义 system prompt;给每个 agent 挑专家或人格,就能让不同任务切不同「角色」。连接器(Connectors)走 OAuth 加 MCP 网关,覆盖腾讯文档、腾讯云 OpenAPI、新闻热搜等,把外部资源边界扩出去。
IM 通道让 Octop 进群干活。支持的通道与凭据如下(来自 README):
| 通道 | 所需凭据 |
|---|---|
| 飞书 Feishu | App ID、App Secret |
| 钉钉 DingTalk | App Key、App Secret |
| Bot AppID、Token | |
| Discord | Bot Token |
| 企业微信 WeCom | Corp ID、Agent Secret |
| Web 控制台 | 默认开启 |
安装与查看通道用 CLI:
# 查看已装通道
octop channel list
# 安装通道
octop channel install接 IM 最常见的坑是回调配置:飞书、企微这类需要公网回调的通道,务必核对 App Secret、回调 URL 与出口 IP,错一个就收不到消息。QQ、Discord 相对简单,填 token 即可。MCP 扩展怎么写、连接器 OAuth 怎么授权,README 没有给逐字步骤,以官方文档为准。
七、生产化与运维:备份、切换 PostgreSQL、升级
真要上生产,Docker Compose 是 README 明确推荐的形态。数据全在 ~/.octop/,目录里有 config.json(进程配置)、octop.db(SQLite,存用户、agent、通道、定时任务)、secrets/(JWT 密钥与通道 token)、agents/<agent_id>/(每个 agent 的工作区)、security/tool_guard/(shell 命令黑白名单)、logs/、venv/、bin/octop。
切换到 PostgreSQL:在 config.json 设 database 段,或用 OCTOP_DATABASE_* 环境变量,或首次运行向导里填。注意 README 明确:用 PostgreSQL 时,agent 记忆默认复用同一个 DSN(每个 agent 独立 schema);如果想保留文件式记忆,要在 agent 配置里设 "memory": { "backend": { "type": "sqlite" } }。
备份与升级:
# 导出 / 恢复备份
octop backup
# 升级:只替换 wheel / 二进制,~/.octop/ 下的数据库、工作区、密钥、config.json 都保留
octop updateoctop update 升级后,schema 会在下次启动时自动迁移;只有向导提示要做迁移时才跑 octop init。跨大版本升级前一定先 octop backup。备份别只压一个 tar 就完事。~/.octop/ 里 secrets/ 存着 JWT 密钥和通道 token,agents/ 存着每个 agent 的工作区与记忆,这两块丢了等于重来。建议把备份目录单独存一份到异地或对象存储,并记下当前版本号,升级前再补一次,确保能回滚。下面是第 2 张表,把高频踩坑一次性列清。
| 坑 | 现象 | 解法 |
|---|---|---|
| 默认密码未改 | admin / octop 暴露在公网被扫 | 首次登录立即改;强密码策略要求至少 8 位且含字母与数字 |
| 端口未加固 | 8088 裸奔公网、无 TLS | 反向代理加 TLS,或仅监听内网;用 octop run --host 127.0.0.1 |
| SQLite 并发上限 | 多人同时写出现锁等待、卡顿 | 切 PostgreSQL:在 config.json 设 database 或 OCTOP_DATABASE_* |
| IM 通道回调错 | 飞书 / 企微收不到消息 | 核对 App Secret、回调 URL 与出口 IP;以官方文档为准 |
| 模型 key 权限过大 | 一个全权限 key 泄露拖垮全部 | 按 agent 分 key、最小权限;用 octop provider 隔离 |
| 工作区迁移遗漏 | 换机后记忆 / 专家丢失 | 整目录搬 ~/.octop/,含 secrets 与 agents;先 octop backup |
上线前 Checklist
- 已改默认 admin 密码(至少 8 位,字母加数字)
- 公网暴露已加 TLS 反向代理,或仅监听 127.0.0.1
- 已开启工具审批与 shell 护栏(
~/.octop/security/tool_guard/) - 已开启 PII 脱敏
- 模型 key 按 agent 最小权限分配,无全权限通用 key
- 已选定数据库后端(SQLite 单机 / PostgreSQL 多人)
- 已配置 IM 通道回调与出口白名单
- 已做首次
octop backup,~/.octop/目录已归档 - 已注册系统服务
octop service start(或 Docker 自启) - 升级前先
octop backup,再用octop update
常见问题
Q1:我到底该不该自托管 Octop? A1:数据敏感、家庭共享、一人公司且愿意管服务器,就来自托管;只想用 AI、不想运维,去用云端助手更省心。判断标准只有一条:你愿不愿意为「数据在自己手里」付运维成本。
Q2:最低硬件要求是多少?
A2:README 没有给出固定核数,只写「现代多核 CPU、数 GB 内存给进程与模型或向量缓存、足够磁盘给数据库与工作区」。安装器会用 uv 在 ~/.octop/ 内建 Python 3.12+ 隔离环境,无需系统预装 Python。别拿低配机当生产。
Q3:默认账号密码是什么,必须改吗?
A3:默认管理员账号为 admin,默认密码官方 README 未写死,第三方评测口径为 octop(Docker 初始化则生成随机密码写入 credential.txt);无论哪种,首次登录必须立即改。密码策略要求至少 8 位且同时含字母与数字,弱密码会被拒绝并回退随机密码。暴露在公网不改等于开门。
Q4:SQLite 够用吗,什么时候要切 PostgreSQL?
A4:单机、少人、低频够用。多人同时写出现锁等待或卡顿,就切 PostgreSQL:在 config.json 设 database 段或用 OCTOP_DATABASE_* 环境变量。注意 PostgreSQL 下 agent 记忆默认复用同 DSN,要保留文件式记忆需在 agent 配置里另设。
Q5:升级会丢数据吗?
A5:不会。octop update 只替换 wheel 或二进制,~/.octop/ 下的数据库、工作区、密钥、config.json 都保留,schema 下次启动自动迁移。但跨大版本升级前,一定先 octop backup 再升。
参考来源
- Octop 官方 README(安装命令、端口、路径、供应商与通道凭据逐字取自):TencentCloud/Octop
- Octop 1.0 GA 与腾讯云 Lighthouse / CVM 官方镜像市场一条命令部署:腾讯云官方公众号(2026-09-17)
- Harness 技术栈(harness-agent / harness-gateway / harness-memory / harness-browser):README 相关项目一节