ARTICLE · 1031153
Octop 自托管 AI 助手部署 SOP
推广:aiwebcool.com - 最硬核的 AI 工具指南网站,挑工具前先来这查一眼
实战SOPOctop 自托管 AI 助手部署 SOP
发布于 2026年9月9日 · 8 分钟阅读
腾讯云在 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 的来龙去脉,可以看 /zh/octop-1-0-ga-hotspot。
一、适用判断:先给决策口径,再动手
自托管 Octop 不是「买了就能爽」的玩具,它适合三类人。第一类是数据敏感型:聊天记录、工作区、凭据全在自己机器上,本地优先可离线,PII 脱敏后再出站。第二类是家庭共享型:一个 admin 账号带全家,不同成员各有独立记忆、工作区与专家配置,互不串味。第三类是一人公司或小微团队:愿意花时间管一台服务器,换可控、可离线、可审计。它不适合「只想用 AI、不想运维」的人,如果你连端口转发都嫌烦,云端助手更省心。
判断标准只有一条:你愿不愿意为「数据握在自己手里」付出运维成本。愿意,往下读;不愿意,直接关掉这篇去用 SaaS。如果你还在自托管和云端之间纠结,建议先读 /zh/self-hosted-ai-assistant-comparison-review,把成本账算清楚。需要提醒的是,Octop 是单进程架构,Web 控制台、CLI、IM 通道、定时任务都在一个进程里跑,重启时从控制面数据库重建全部状态——这意味着它省事,但也意味着这台机器的可用性就是服务可用性。还有一层常被忽略:单进程意味着没有外部消息队列或 broker,Web、IM、定时任务都走同一个进程内的处理管线。好处是部署极简、重启安全;代价是这台机器的 CPU、内存、磁盘 IO 直接决定全员体验。所以自托管前先问自己三个问题:机器谁维护、断电断网谁兜底、数据丢了谁负责。三个都能答,再继续。
二、安装路径选择(第 1 张表:路径对照)
README 给出四种装法,各自适合不同人群与硬件。先说结论:要长期跑、给多人用,直接上 Docker Compose;只是想在本机体验,macOS 或 Linux 一条命令脚本最省事;Windows 走 PowerShell 脚本;国内用户图省心,GA 当天上线的腾讯云 Lighthouse 与 CVM 官方镜像市场是最顺的渠道(来源:官方公众号,一条命令部署)。
~/.octop/ 内建 Python 3.12+ 隔离环境,无需系统预装 Python | |||
~/.octop 或 OCTOP_DATA | |||
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 技术栈的同学,可参考 /zh/herdr-resource。一个实用建议:把贵、把强的模型留给复杂任务,把本地 Ollama 小模型留给高频、可批量的简单活。这样既能控成本,又能保证隐私数据不出口。供应商 key 也建议按环境分:生产用受限 key,实验用临时 key,密钥泄露时影响面更小。
六、配专家与连接器、接 IM 通道
Octop 的差异化在专家库与连接器。专家库在启动时扫描 infra/agents/experts/library/,内置 16 种 MBTI 人格模板,也能自定义 system prompt;给每个 agent 挑专家或人格,就能让不同任务切不同「角色」。连接器(Connectors)走 OAuth 加 MCP 网关,覆盖腾讯文档、腾讯云 OpenAPI、新闻热搜等,把外部资源边界扩出去。
IM 通道让 Octop 进群干活。支持的通道与凭据如下(来自 README):
安装与查看通道用 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 的工作区)、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 | ||
octop run --host 127.0.0.1 | ||
config.json 设 database 或 OCTOP_DATABASE_* | ||
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 相关项目一节
AI 声明:本文由 AI 辅助生成,经人工审核编辑。文中涉及第三方模型与服务,请以官方说明为准。互动:一键脚本直接上,还是先看该不该自托管?
- AI 甜点 · 每天一块 AI 资讯甜点 -