夜雨聆风学习资料网

ARTICLE · 1217212

腾讯开源Octop:一个更聪明的自托管AI助手——多用户、多Agent、本地运行的下一代平台

腾讯开源Octop:一个更聪明的自托管AI助手——多用户、多Agent、本地运行的下一代平台

——多用户、多Agent、本地运行的下一代平台

当AI助手变得越来越"云端化"和"订阅化",数据隐私成了一个越来越难回答的问题。腾讯最近开源的Octop给出了一个新的答案:把AI助手完全跑在你的机器上,同时支持多用户、多Agent、多通道——而且上手只需要一条命令。


一、项目概述:Octop是什么

Octop是腾讯云团队开源的一个自托管AI助手平台,项目地址为github.com/TencentCloud/Octop[1]。

它的核心定位是:一个既独立又协作的智能环境,为团队、家庭和个人提供可并行运作的多Agent系统。

关键在于"自托管"这三个字——Octop不依赖任何外部服务器,所有数据默认存储在你的~/.octop/目录下。Web控制台、CLI、IM通道(飞书/钉钉/微信/QQ/企业微信/Telegram/Discord等)和定时任务,全部在一条octop run命令里启动。

听起来像是很多功能的简单堆叠?让我们仔细看看它的架构设计。


二、核心技术架构:单进程、多入口、共享控制面

Octop最核心的设计决策是:不依赖外部消息队列或中间件,而是通过进程内的统一路由所有入口。

这个设计带来几个重要特性:

  1. 1. 单进程可重启恢复:整个状态从控制面数据库重建,默认SQLite,可选PostgreSQL
  2. 2. 所有入口共享同一数据库:Web UI、IM、定时任务共用同一套数据模型
  3. 3. 无外部依赖:不需要Redis、RabbitMQ等中间件

它的技术栈非常清晰:

层级
技术
语言
Python 3.12+
Web框架
FastAPI + uvicorn
Agent运行时
Octop Harness
IM桥接
Octop Gateway
前端
React 18 + TypeScript + Vite + Ant Design
调度
APScheduler
ACP
agent-client-protocol

Octop构建在四个核心运行时之上:

  • • Octop Harness:Agent运行时,负责模型路由、工具调用、技能管理和对话检查点
  • • Octop Gateway:多平台IM通道桥接,将各类消息归一化处理
  • • Octop Memory:分层记忆系统,支持全文检索,记忆随工作区迁移
  • • Octop Browser:基于CDP的浏览器自动化,支持持久化配置

三、核心功能详解

3.1 多用户与专家团队系统

Octop的多用户架构设计得相当精细:

  • • 管理员-普通用户两级体系,一个管理员可以管理整个" household"(家庭或小团队)
  • • 每个用户可以创建多个专家(Expert),每个专家拥有独立的工作区、模型供应商、通道和定时任务
  • • 专家可以共享给同部署的其他用户,优秀配置可以被复用而不是重复创建

专家库是Octop的一个特色功能:启动时自动扫描infra/agents/experts/library/目录,可以内置一组预设专家,用户可以直接选用。

3.2 MBTI人格系统

每个Agent可以有16种MBTI人格模板,再加上自定义系统提示词。这不只是噱头——不同人格的Agent在与用户交互时确实会有不同的响应风格。系统还提供了互动测试,可以帮助用户找到最适合特定场景的Agent人格配置。

3.3 AgentTeams(Beta):多专家协作

这是Octop最复杂的功能之一,也是目前处于Beta阶段的原因。

一个AgentTeam由一个主持人(Host)和多个成员专家组成:

  • • 主持人负责调度:接收用户请求,决定派给哪个成员
  • • 成员是普通专家,可同时加入多个团队
  • • 成员对话直接上时间线(真群聊),主持人负责总结并判断是否收工
  • • 派工是异步的:主持人发出任务后立即返回,等成员完成后再回调

典型工作流:

用户 → 主持人(协调者)   ├── 派工给成员A(异步)   ├── 派工给成员B(异步)   └── 等成员完成后回调 → 主持人总结 → 判断是否收工

团队主持人的工具集是经过精简的:只保留agent_list、ask_agent、记忆和时间工具,不挂文件系统、浏览器、搜索、MCP等——这是刻意为之的设计约束,让主持人专注于协调而非具体执行。

3.4 IM通道全覆盖

Octop通过Octop Gateway支持几乎所有主流IM平台:

通道
所需凭证
飞书
App ID、App Secret
钉钉
App Key、App Secret
QQ
Bot AppID、Token
微信
扫码绑定 / 账号凭证
企业微信
Corp ID、Agent Secret
Telegram
Bot Token
Discord
Webhook/Bot Token

这些通道最终都归一化为同一条消息处理管线,无论消息来自哪个平台,进入HarnessProcessor的形式都是一样的。

3.5 ACP双向集成

ACP(Agent Client Protocol)是Octop与外部工具交互的核心协议,支持两个方向:

入站(Inbound):让外部工具(如Zed、OpenCode)使用你的Octop Agent作为后端。

octop acp --agent main# 在Zed的settings.json中配置:# "agent_servers": { "Octop": { "command": "octop", "args": ["acp", "--agent", "main"] }}

出站(Outbound):让Octop Agent把编程任务委派给外部Agent。

  • • 在Dashboard → ACP中配置Runner
  • • 为Agent启用acp_runner工具
  • • 对话中即可委派给OpenCode、Claude Code、Codex等

内置支持的Runner包括:OpenCode、CodeBuddy、Claude Code、Codex、Kimi Code、Cursor CLI、Pi。

3.6 可迁移记忆系统

Octop Memory是Octop的记忆基础设施,实现了分层记忆 + 全文检索:

  • • 记忆不是简单的key-value存储,而是有层级结构的
  • • 支持全文搜索
  • • 记忆随工作区迁移——当你把工作区迁移到新机器或新环境时,记忆一并带走

3.7 知识库与RAG

基于文档的RAG(检索增强生成)能力:

  • • 可以上传文档建立知识库
  • • 支持同部署内共享语料库
  • • Agent回答时可以锚定私有知识,而不是仅依赖模型自身的知识

3.8 Connector生态系统

通过OAuth和MCP(Model Context Protocol)网关,Octop可以接入大量外部服务:

  • • 腾讯全家桶:腾讯文档、腾讯会议、腾讯新闻等
  • • Notion、滴答清单、OpenAlex
  • • 飞书CLI、企业微信CLI
  • • Obsidian、WeKnol、Dify等

Connector让Agent不仅能"说话",还能真正操作外部工具和服务。

3.9 工作区后端可插拔

专家的文件存储可以独立于控制面数据库:

  • • 本地磁盘
  • • Docker沙箱
  • • PostgreSQL
  • • COS/S3及其他远程存储

这意味着你可以把敏感文件存在本地,同时让控制面数据库跑在PostgreSQL上,实现"数据分离"。


四、安全与隐私设计

Octop的安全设计有几个关键点:

  1. 1. JWT多用户隔离:每个用户的对话、工作区、凭证完全隔离
  2. 2. 工具审批机制:Agent调用敏感工具前需要用户确认
  3. 3. Shell命令护栏:防止Agent执行危险的shell命令
  4. 4. PII脱敏:自动识别并脱敏敏感个人信息
  5. 5. 数据本地存储:所有数据默认在~/.octop/,不上传到任何外部服务器

五、快速上手教程

5.1 安装(macOS / Linux)

一行命令搞定:

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

安装脚本使用uv[2]自动安装Python 3.12到~/.octop/venv,不影响系统Python。

安装完成后重载shell:

source ~/.zshrc  # Zshsource ~/.bashrc # Bash

5.2 安装(Windows)

PowerShell一行:

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

或CMD:

curl -fsSL https://finnie-1258344699.cos.ap-guangzhou.myqcloud.com/octop/install.bat -o install.batinstall.bat

5.3 安装(Docker)

docker compose -f docker/docker-compose.yml up -d

国内镜像(GHCR拉取困难时):

docker compose -f docker/docker-compose.cn.yml up -d

5.4 初始化

octop init

交互式向导会创建SQLite数据库、JWT密钥和首个管理员账号。

5.5 启动

# 前台运行octop run# 自定义端口octop run --host 0.0.0.0 --port 8088# 注册为系统服务octop service start

打开http://127.0.0.1:8088即可看到Web控制台。

5.6 安装浏览器自动化组件(可选)

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

5.7 配置IM通道

以飞书为例:

octop channel install# 选择飞书,填写App ID和App Secret

或在Web控制台的"通道"页面配置。

5.8 配置LLM供应商

octop modelsoctop provider list

Octop支持OpenAI兼容API、阿里千问(DashScope)、Ollama等多种供应商,在控制台或通过CLI按专家配置。


六、使用场景与案例

6.1 个人助理

让专属Agent帮你写周报、整理资料、管理日程。记忆随工作区长期保留,不用每次都重新介绍背景。

6.2 家庭共享

一个管理员账号,全家共用。不同成员分配不同的Agent和专家角色,也可以共享专家配置。

6.3 团队助手

用AgentTeams进行多专家协作:让一个主持人协调多个专业Agent(比如"数据分析师"+"文案撰写"+"代码审核")共同完成一个任务,结果汇总给用户。

6.4 开发者增效

通过ACP把编码任务委派给OpenCode或Claude Code,Octop作为协调层负责任务分发和结果整合。

6.5 定时自动化

用自然语言配置Cron任务,让Agent每天按时推送天气、新闻摘要,或执行指定操作。


七、设计哲学:Octop想解决什么问题

7.1 隐私不妥协

在大多数AI工具"云端化"的趋势下,Octop选择了完全不同的路:数据留在本地。这不是功能上的权衡,而是设计上的优先级排序。Octop认为,对于家庭和小团队场景,隐私是刚性需求,不是可以"暂时忽略"的加分项。

7.2 单一进程优于分布式

传统观点认为"企业级"应用必须依赖消息队列、服务总线、缓存层等分布式组件。Octop反其道而行:单进程 + SQLite足以支撑一个家庭或小团队的日常使用。

这个选择降低了部署复杂度,提升了可靠性(没有单点故障),同时也意味着不需要维护额外的基础设施。

7.3 Agent是工具,不是产品

Octop的Agent系统不是"买一个Agent完成所有任务"的思路,而是按场景切换专业Agent。

这意味着:

  • • 不同任务用不同专家(写代码用一个,写作用一个,数据分析用一个)
  • • 专家可以共享和复用
  • • AgentTeams让多专家可以协作完成复杂任务

7.4 控制面即代码

整个Octop的配置可以通过CLI管理:octop models、octop channel、octop cron、octop skills……这意味着配置可以版本化、可以脚本化、可以自动化。


八、核心观点与结论归纳

观点一:自托管AI助手的时间窗口已经到来

随着本地模型能力的提升和端侧AI的成熟,"自托管"不再意味着"能力打折"。Octop证明了一个本地运行的AI助手平台可以提供与云端相当的功能丰富度,同时保留数据主权。

观点二:多Agent的关键不在"多",在"协"

很多多Agent系统只是简单地把多个Agent并列,忽略了协作机制的设计。Octop的AgentTeams通过主持人协调 + 异步派工 + 回调收敛的机制,真正解决了"多Agent如何协作完成复杂任务"的问题。

观点三:单进程设计是一种工程美学

在"微服务崇拜"的当下,Octop选择单进程 + SQLite,看起来是一种"复古",实际上是对问题域的精准建模:家庭和小团队的使用规模,根本不需要Kafka+Redis+PostgreSQL的组合。用最简单的方式解决问题,是工程能力的体现。

观点四:IM通道归一化是Octop真正的护城河

接入飞书、钉钉、微信、QQ等多个平台,并把消息归一化处理——这件事本身并不难,但做好却需要大量细节工作。Octop通过Octop Gateway实现了这一点,意味着用户可以在任何常用的IM工具里与Agent交互,而不需要改变使用习惯。

观点五:ACP让Octop成为真正的AI协调层

ACP双向集成让Octop不仅仅是一个"聊天机器人",而是变成了AI能力的协调层:可以调用外部Agent(Outbound),也可以被外部工具调用(Inbound)。这让Octop在IDE、终端和IM之间建立了一座桥梁,使AI能力可以在不同场景间流动。


九、适合谁用?

强烈推荐:

  • • 对数据隐私有要求、不想把对话记录放到第三方服务器的团队/家庭
  • • 有多个IM工具使用习惯,想统一AI入口的用户
  • • 有"家庭AI助手"需求,想让全家共用一个系统的用户
  • • 技术团队,想在IDE/终端/IM多个场景统一使用AI能力的开发者

可以尝试:

  • • 有定时任务自动化需求的用户
  • • 有文档知识库RAG需求的小团队

暂时不建议:

  • • 需要管理超大规模用户(数百人以上)的企业场景——Octop的定位是家庭和小团队
  • • 需要复杂工作流引擎的企业用户——Octop不是 workflow orchestration平台

十、总结

Octop是腾讯在AI助手领域的一次认真尝试。它的核心价值不是"功能最多",而是"在本地运行的前提下,功能最完整"。

单进程架构、多用户支持、IM通道全覆盖、AgentTeams协作、ACP双向集成、可迁移记忆……这些功能组合在一起,让Octop成为了一个真正可以在家庭和小团队中部署的AI助手平台。

更重要的是,Octop证明了自托管和功能性并不对立——你不需要在"隐私"和"能力"之间二选一。


相关资源:

  • • GitHub仓库:https://github.com/TencentCloud/Octop
  • • 中文文档:https://github.com/TencentCloud/Octop/blob/main/README\_CN.md
  • • 官方Discord:https://discord.gg/QnWdhJxq9h
  • • PyPI:https://pypi.org/project/octop/

首发于微信公众号「瑞哥观势」

既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标,谢谢你看我的文章,我们,下次再见。

首发于微信公众号「瑞哥观势」。

引用链接

[1] github.com/TencentCloud/Octop: https://github.com/TencentCloud/Octop[2] uv: https://docs.astral.sh/uv/

相关学习资料