夜雨聆风学习资料网

ARTICLE · 1016167

腾讯又出了个AI助手,这次连数据都不用上云

腾讯又出了个AI助手,这次连数据都不用上云

⚡ 一句话看懂 Octop

如果你有闲置的 Linux 机器或 NAS,想搭一个多用户、多 Agent 的 AI 助手,模型自己接,数据自己管,Octop 提供了一条能照着走的路径。我把 README 里的安装、启动、配置、扩展和开发流程拆成下面这些步骤,重点标出容易漏掉的参数和目录。

腾讯云把 Octop 开源了。推文里说它和 WorkBuddy 都是腾讯云出品,WorkBuddy 走 SaaS 路线,你得登录、买积分换 Token;Octop 走本地优先,在自己的电脑或 NAS 上跑,把多用户、多智能体的 AI 中枢和数据一起搬回家,模型接哪家完全自己定,还支持 ACP 协议对接你已经安装的 CLI Agent 工具。这些描述指向同一件事,Octop 面向的是愿意动手折腾的人。

用户、Agent、知识库与聊天通道围绕本地中枢协作,模型 API 是可选的外部连接。

装之前先看环境要求

系统支持 macOS、Linux、Windows。你不需要预先安装 Python。安装脚本会通过 uv 在 ~/.octop/ 下创建隔离的 Python 3.12 虚拟环境。README 给的硬件要求是现代多核 CPU,并预留数 GB 内存供进程与模型或 Embedding 缓存使用,磁盘要容纳数据库、Agent 工作区与文档语料。

安装脚本会把 octop 加入 PATH,路径是 ~/.octop/bin。装完要打开新终端,或者重新加载 shell 配置。Zsh 用 source ~/.zshrc,Bash 用 source ~/.bashrc。这一步容易漏,漏了会找不到 octop 命令。

安装方式有远程一键安装、本地脚本、PyPI 和 Docker。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。Windows cmd 可以下载 install.bat 后运行。所有安装脚本都在 ~/.octop/venv 创建隔离环境,并通过 ~/.octop/bin/octop 包装 CLI,不会影响系统 Python。

可选附加组件有两个。浏览器自动化需要 Playwright Chromium,安装时加 --extras browser。飞书通道支持加 --extras channels-feishu。完整安装选项见 scripts/README.md,包括 --version、--from-source、--mirror 及 Windows 参数。

如果你已经自己管理 Python 环境,可以用 PyPI。pip install octop。可选 pip install "octop[browser]"。本地 ONNX Embedding 模型缓存用 pip install "octop[local-embedding]",它只下载目录模型到 ~/.octop/embedding_models,不用于对话,也不接入 Memory。从源码用 uv 开发时,uv sync --extra local-embedding。

桌面客户端从 GitHub Releases 下载。Windows 有 NSIS 安装程序,macOS 有 dmg,Linux 有 tar.gz,飞牛 NAS 有 fpk。桌面客户端说明见 desktop/README.md,飞牛打包指南见 fnos/README.md。

启动和 Docker 部署

启动命令是 octop run,前台运行 API 和 Web 控制台。默认地址 http://127.0.0.1:8088。自定义主机和端口用 octop run --host 0.0.0.0 --port 8088。注册为系统服务用 octop service start,支持 systemd、launchd、Windows 服务。

常规安装与 Docker 生产部署最终都会进入 Web 控制台。

Docker 推荐用于生产部署。构建并启动用 docker compose -f docker/docker-compose.yml up -d。也可以手动构建,bash docker/docker_build.sh,然后 docker run -d -p 8088:8088 -v octop-data:/data/.octop -e HOME=/data -e OCTOP_DEFAULT_PASSWORD="<自定义强密码,留空则自动生成随机密码>" octop:latest。

Docker 首次初始化会创建管理员账号,并把凭据写入容器内 /data/.octop/credential.txt。未设置 OCTOP_DEFAULT_PASSWORD 时自动生成随机强密码。自行设置的密码须至少 8 位且同时包含字母和数字。被应用密码策略拒绝的常见弱密码会自动回退为随机密码。可以通过 OCTOP_ADMIN_USERNAME 覆盖用户名,默认 admin。

变量
默认值
说明
OCTOP_PORT8088
HTTP 监听端口
OCTOP_DEFAULT_PASSWORD
未设置
首次运行管理员密码(Docker 引导)。未设置 = 自动生成随机密码并写入 credential.txt
OCTOP_ADMIN_USERNAMEadmin
首次运行管理员用户名
OCTOP_DATA~/.octop
宿主机数据目录(compose 挂载)

交互式 octop init 和设置向导会让你自行设置密码,至少 8 位,且同时包含字母和数字。API 文档默认关闭。要开启,在 config.json 中设置 "enable_api_docs": true,然后访问 /api/docs。

数据放在哪

所有运行时数据存放在 ~/.octop/。目录结构如下。

~/.octop/ 是安装与数据根目录。config.json 是进程配置,含可选 database 段。octop.db 是默认 SQLite 控制面,存用户、Agent、通道、定时任务等。secrets/ 存 JWT 密钥、通道 Token。agents/<agent_id>/ 是各 Agent 工作区,里面有 SOUL.md、skills 等。security/tool_guard/ 是 Shell 命令允许或拒绝规则。logs/ 是运行日志。venv/ 是 uv 管理的 Python(安装脚本布局)。bin/octop 是 PATH 包装脚本,指向 venv/bin/octop。

控制面也可以改用 PostgreSQL。在 config.json 的 database 段,或使用 OCTOP_DATABASE_* 环境变量,或首次设置向导。控制面为 PostgreSQL 时,Agent 记忆默认复用同一 DSN,按 per-agent schema 存储。若需继续用文件记忆,在 agent 配置里设 "memory": { "backend": { "type": "sqlite" } }。详见 docs/configuration.md 与 docs/adr/002-database-backends.md。

升级用 octop update。它只替换 wheel 或二进制,你的 ~/.octop/ 数据库、工作区、密钥与 config.json 均会保留。数据库结构会在下次启动时自动迁移。仅当设置向导提示需要迁移时才运行 octop init。跨版本升级前先备份,命令是 octop backup。

配置模型和通道

CLI 可以管理大部分运行时配置。octop models 管理 LLM 供应商与模型。octop provider list 列出供应商。octop channel list 列出 IM 通道。octop channel install 安装通道。octop skills list --agent main 按 Agent 查看 Skill。octop cron list 列出定时任务。octop cron create --help 查看创建帮助。octop user list 是管理员查看用户。

支持的 LLM 供应商包括 OpenAI 兼容 API、DashScope(千问)、Ollama 等预设。可以在控制台配置,也可以通过 octop provider 按 Agent 配置。

支持的通道和所需凭证。

通道
所需凭证
飞书
App ID、App Secret
钉钉
App Key、App Secret
QQ
Bot AppID、Token
Discord
Bot Token
企业微信
Corp ID、Agent Secret
Web 控制台
默认启用

IM 通道支持飞书、钉钉、QQ、Discord、企业微信等。主动定时任务支持自然语言和斜杠命令触发。Web UI、IM、定时任务共用同一套消息处理链路。

Agent 和专家库

每位用户可以创建多个 Agent。每个 Agent 拥有独立工作区、供应商、通道和定时任务。多用户 JWT 认证支持管理员角色。首次运行向导是 octop init。

Agent 的人格可以用 16 种 MBTI 人格模板,也可以自定义系统提示词。启动时会扫描专家库,路径是 infra/agents/experts/library/。工作区后端支持本地磁盘、COS、S3 及其他远程存储。

这部分 README 没有展开更多配置细节,实际使用时需要结合控制台和 CLI 一起看。

其他能力,材料里各提了一句

知识库基于文档的 RAG 检索。上传文件后,语义检索让 Agent 的回答锚定你的私有知识库。

插件支持第三方扩展。安装并管理第三方插件用 octop plugin。内置插件随安装注入,按需在控制台一键启用。

ACP 支持两个方向。入站方向,外部工具使用你的 Octop Agent。命令是 octop acp --agent main,为 Zed、OpenCode 等提供 stdio ACP 服务。出站方向,Octop 委派给外部编程 Agent。在控制台 ACP(/acp)配置 Runner,按用户全局。为 Agent 启用 acp_runner 后,在对话中委派任务。内置出站 Runner 包括 OpenCode、CodeBuddy、Claude Code 和 Codex。完整配置见 docs/acp.md。

终端 AI+ 是浏览器内交互式 Shell,AI 辅助命令执行与排障。浏览器 AI+ 是基于 Chromium 的无头浏览器会话,支持网页自动化、截图与远程操控。远程桌面在控制台内实时看屏与键鼠操控,跨 Linux、Windows、macOS。适合远程办公、GUI 软件操作,无图形 Linux 可一键搭建隔离桌面。定时任务用 APScheduler。你可以用自然语言配置 Cron,让 Agent 每天按时推送或执行任务。

架构和开发

Octop 是单进程架构。启动时 OctopServer 会拉起 DatabasePool,使用 SQLite (WAL) 或 PostgreSQL。SharedServices 是依赖注入根,持有所有 repo 与配置。ExpertCatalog 启动时扫描 agents/experts/library/。UserManager 下有 HarnessAgentManager(按用户),再往下是 AgentRuntime(按 Agent)。AgentRuntime 包含 HarnessAgent、HarnessProcessor、ChannelManager、CronManager。最外层是 FastAPI app,由 uvicorn 提供服务。

Web、IM 与定时任务共用处理链路,再由 Agent Runtime 协调模型、工具和记忆。

它通过进程内的 HarnessProcessor 统一路由所有入口,Web UI、IM 与定时任务都走这一条链路。它不依赖外部消息队列或中间件。重启后从控制面数据库重建状态,默认是 ~/.octop/octop.db,也可以配置 PostgreSQL。

项目结构方面,src/octop/config.py 是环境变量配置,launch.py 是 OctopServer 启动加 uvicorn,infra/ 是业务核心(agents、gateway、cron、db、users 等),api/ 是 HTTP 层 FastAPI 路由、JWT、SSE,cli/ 是 CLI 层 Click 命令,dashboard/ 是构建后的 React SPA(wheel 产物)。dashboard/ 是前端源码(Vite),在这里编辑,运行 make build-frontend。docker/ 有 Docker Compose、入口脚本、构建与部署脚本。tests/ 分 unit/ 和 integration/。

开发前置条件是 Python 3.12+、Node 18+、uv。后端 make install 相当于 pip install -e ".[dev]"。make all 是 format-all + lint + typecheck + test,也是发布门槛。前端另开终端 make dev-frontend,Vite 开发服务器在 :5173。make build-frontend 生产构建到 src/octop/dashboard/。cd dashboard && npx tsc --noEmit 做类型检查。单独执行有 make test、make lint、make typecheck、make format。

层级
技术
语言
Python 3.12+
Web 框架
FastAPI + uvicorn
Agent 运行时
harness-agent
IM 桥接
harness-gateway
控制平面数据库
SQLite (WAL,默认) 或 PostgreSQL(可选)
前端
React 18 + TypeScript + Vite + Ant Design
调度
APScheduler
ACP
agent-client-protocol
构建 / 质量
hatchling · ruff · mypy · pytest

harness 系列包括 harness-agent、harness-gateway、harness-memory、harness-browser。harness-agent 是 Agent 运行时,负责模型路由、工具、技能与对话检查点。harness-gateway 做多平台 IM 通道桥接,将各类入站消息归一为统一的处理管线。harness-memory 做分层记忆与全文检索,让 Agent 的记忆随工作区一同迁移。harness-browser 基于 CDP 做浏览器自动化,支持持久化配置。这些 harness-* 项目正在筹备开源中,仓库地址会在发布后补充。

安全和隐私

本地优先。配置、对话、工作区与凭证均存储在 ~/.octop/。

多用户隔离。JWT 认证,按用户隔离 Agent 与工作区。

敏感信息脱敏与工具审批。离开工作区前自动脱敏敏感数据。高风险工具或 Shell 命令需依据护栏规则显式审批。

工具护栏。可以在 ~/.octop/security/tool_guard/ 编辑 Shell 命令规则。

无厂商锁定。可以自由切换 LLM 供应商、存储后端与 IM 通道。

规划

资源共享池,构建技能或子智能体共享池,用户在创建专家时可直接取用,无需从零搭建。专家共享,支持用户将自有专家共享给其他用户使用,沉淀优秀配置、避免重复造轮子。浏览器与终端能力补全,增强浏览器技能录制,把操作流程录制为可复用技能,并完善终端 AI 助手能力。AgentTeams,支持协调者自主调度、编排多位专家,协同完成复杂多步骤任务。自进化能力,将日常对话自动沉淀为技能,让助手随使用不断成长。PC 或移动端客户端,在 Web 控制台与 IM 通道之外,提供原生桌面与移动端应用。规划会随社区发展动态调整。

Octop 是为折腾技术的人准备的。如果你有闲置机器或 NAS,可以按 README 的安装脚本先跑起来。Docker 部署记得看 credential.txt 和密码策略。数据在 ~/.octop/,升级用 octop update,备份用 octop backup。ACP 入站和出站的配置分别在 octop acp 和控制台 /acp 里。

相关学习资料