Octop 交互式 API 文档 5 步上手教程:从开启 /api/docs 到调通第一个接口

Octop 交互式 API 文档 5 步上手教程:从开启 /api/docs 到调通第一个接口

【免费下载链接】OctopA smarter, self-hosted AI assistant — multi-user, multi-agent.项目地址: https://gitcode.com/GitHub_Trending/oct/Octop

Octop 是一款可以部署在自己服务器上的多用户 AI 助手。本文带你五步用上它的交互式 API 文档:开启 API 文档、打开 /api/docs 页面、用 JWT 鉴权拿到凭据、动手调几个接口、看懂错误码,最后讲生产收尾。

🔧 第一步:用环境变量或配置文件开启 Octop API 文档

Octop 的 HTTP 接口全部挂在/api前缀下。其中/api/docs是打开浏览器就能看、能直接发请求的文档页,在 src/octop/api/app.py 的应用工厂里注册;/api/openapi.json是同一份 OpenAPI 规范的原始文件——OpenAPI 简单说就是一份给机器读的接口清单,把每个路径、参数、响应都写清楚,能直接导入 Postman、YApi 这类工具里离线使用。

这两个入口默认都是关的,没开时访问直接 404。这是刻意设计:免得公网环境被人一把扫出系统能力。打开方式二选一,改完都必须重启服务才生效:

方式一,写进配置文件~/.octop/config.json:

{ "enable_api_docs": true }

方式二,用环境变量,优先级更高:

export OCTOP_ENABLE_API_DOCS=1

字段定义在src/octop/config.py的OctopConfig里,默认值enable_api_docs: bool = False。Octop 默认监听127.0.0.1:8088,重启后浏览器访问http://127.0.0.1:8088/api/docs,看到左侧按业务分组的接口树就算成功了。渲染页面的 Scalar 是个网页版文档工具,比传统 Swagger 更照顾新手:左边分组、右边表单,填完参数点发送,响应立刻可见。

常见坑位:改完配置忘了重启,或端口根本不是 8088,都会让你对着一个 404 发呆。先curl http://127.0.0.1:8088/api/health确认服务还活着,再回头查开关。

🔑 第二步:登录后拿到 JWT 的三步操作,含滑动续期

文档页里几乎所有接口都挂着 BearerAuth 标识。JWT(JSON Web Token)说白了就是登录成功后服务器发给你的一张"门卡":之后每个请求带上它,服务端才知道你是谁。

拿门卡分三步:调POST /api/auth/login提交用户名密码,从响应里取access_token;之后每个请求加上请求头Authorization: Bearer <access_token>;令牌默认 24 小时过期,由access_token_ttl_seconds控制。

用 curl 走一遍:

curl -s -X POST http://127.0.0.1:8088/api/auth/login \ -H 'Content-Type: application/json' \ -d '{"username": "admin", "password": "<你的密码>"}' # 从返回里取 access_token,再调任意受保护接口: curl -s http://127.0.0.1:8088/api/auth/me \ -H 'Authorization: Bearer <access_token>'

还有一组接口根本不用门卡:/api/docs、/api/openapi.json、/api/health、/api/setup/*安装向导、登录与 SSO 相关端点、邀请码验证与兑换、连接器 OAuth 回调、/api/internal/mcp/*内部网关——全部免令牌。

值得花两分钟搞懂的是滑动续期。JWT 中间件(src/octop/api/middleware/jwt_auth.py)会盯着令牌剩余寿命:当它跌破总时长的 1/3,响应就会带上X-Octop-Access-Token头,值是一张新令牌。自己写客户端的话,每个响应都查一眼这个头,有就替换本地存的令牌——一次登录长期在线,不会被过期踢下线。

常见坑位:全新实例还没创建第一个管理员时,除/api/setup/*外的/api路径一律返回503 {"setup_required": true}。这是 setup 锁定逻辑,先走完安装向导,登录接口才真正可用。

🧪 第三步:在 Scalar 里调通接口:从健康检查到定时任务

拿到令牌后,建议按这条链路把最常用的接口串一遍,权限列能一眼看出你此刻能干什么:

操作接口权限
健康检查GET /api/health公开
登录POST /api/auth/login公开
当前用户GET /api/auth/meuser
智能体列表GET /api/agentsuser
创建智能体POST /api/agentsuser
启动 / 停止POST /api/agents/{id}/start、/stopowner
自定义供应商POST /api/providersuser
连通性测试POST /api/providers/{id}/testuser
定时任务POST /api/agents/{id}/cronowner

权限一共四级,文档里一眼可辨:public(免令牌)→ user(任意登录用户)→ owner(资源属主或管理员)→ admin(管理员角色)。盯住表里 cron 那一行:定时任务接口是 owner 专属,管理员去查别人的任务也会拿到空列表。

Scalar 左侧的分组来自 OpenAPI tags 配置:setup 安装向导、auth 用户管理、agents 与 chat、providers 与 voice 本地模型、channels 消息渠道、skills 与 subagents、admin 安全、browser 远程浏览器、terminal 与 desktop 桌面终端——看分组名基本能猜到里面有什么,用到哪块再展开哪块。

唯一不能用 HTTP 试的接口:WebSocket 聊天

普通一问一答的接口,文档页在线调试就够;实时对话不是——它是一条长连接,发一条、流式回一串。所以聊天专门走了 WebSocket(一种浏览器和服务端随时互相说话的通道):

WS /agents/{agent_id}/chat/ws?token=<jwt>

注意令牌这里放查询参数而不是请求头,是整套 API 里唯一的例外。连上后发送{"type":"user_turn", ...}帧,就能收到流式回复,直到{"type":"done"}或{"type":"error","message":"..."}收尾,帧格式细节见 docs/api.md 的 Chat (WebSocket) 一节。

🚨 第四步:看懂错误信封,按 code 修复问题

所有非 2xx 的 JSON 响应都套同一个信封(由 src/octop/infra/errors.py 渲染,还会按Accept-Language翻译成你的语言):

{ "error": { "code": "AGENT_NOT_FOUND", "message": "智能体不存在或不属于你", "details": {} } }

排错先看code,HTTP 状态码只告诉你问题大类。最容易碰上的四个:

  • AUTH_FAILED/TOKEN_EXPIRED(401):令牌缺失、无效或过期,重新登录即可;
  • SETUP_REQUIRED(409):初始管理员还没建,先去走安装向导;
  • LOGIN_LOCKED(423):登录失败次数太多被锁,等自动解锁,或让管理员调/api/users/{id}/unlock-login;
  • AGENT_NOT_FOUND(404):智能体不存在——或者它不是你的,别人的智能体在你眼里就是"不存在"。

完整错误码对照在docs/api.md的 Error envelope 部分。遇到列表外的码,对照它的状态码和 message,一般也能猜个八九不离十。

✅ 第五步:生产环境收尾与上手前检查清单

文档页只暴露接口结构,不吐任何数据。开发机、内网、测试环境放心开着,自己和同事随查随调;实例一旦挂上公网,建议把开关关掉——留着它,等于把系统能力边界画给扫描器看,多此一举。

团队协作时另一个高频用法:GET /api/openapi.json拉完整规范,导进 Postman、YApi 做离线协作,不碰线上服务。

上手前检查清单

  • 改过enable_api_docs之后重启过服务
  • 安装向导已走完,/api/health正常返回
  • 客户端会读X-Octop-Access-Token头做滑动续期,不是一到期就弹登录框
  • 分清身份再调接口:user 能看列表,owner 才能 start/stop、管 cron
  • 公网实例已关闭文档开关,只在内网保留

下一步建议:把 docs/configuration.md 翻一遍,把access_token_ttl_seconds这类跟运维习惯相关的字段调成想要的值,然后就可以放心写自己的集成脚本了。

【免费下载链接】OctopA smarter, self-hosted AI assistant — multi-user, multi-agent.项目地址: https://gitcode.com/GitHub_Trending/oct/Octop

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

lingbot-map:机器人地图模块的架构设计与工程实践

lingbot-map:机器人地图模块的架构设计与工程实践

1. 项目概述与需求拆解1.1 lingbot-map 到底解决什么问题第一次看到“lingbot-map”这个命名时&#xff0c;大家第一反应多半是“这又是一个做地图的项目”。但把这个名字拆开看——lingbot指的是一套机器人软件框架的主体代号&#xff0c;map则直指该框架里最核心的模块之一&a…

2026/10/21 4:57:59 阅读更多 →
C/C++ 环境下基于 libcurl 的微信公众号模板消息推送实战

C/C++ 环境下基于 libcurl 的微信公众号模板消息推送实战

简介&#xff1a;这份资源围绕 libcurl 与微信公众号消息推送展开&#xff0c;面向需要在服务端或客户端程序中集成微信报警通知能力的 C/C 开发者&#xff0c;尤其适合已有一定网络编程基础、希望快速落地告警推送功能的技术人员。压缩包共 106 个文件&#xff0c;约 3.59MB&a…

2026/10/21 4:56:58 阅读更多 →
弧焊机器人节气阀:焊接气路稳定与气体流量控制的实战要点

弧焊机器人节气阀:焊接气路稳定与气体流量控制的实战要点

弧焊机器人工位里&#xff0c;最不起眼但最容易出问题的东西&#xff0c;往往就是那个节气阀。我做焊接工艺调试这几年&#xff0c;见过太多焊缝气孔、飞溅大、气体耗量超标的情况&#xff0c;排查到最后发现&#xff0c;不是焊丝问题、不是参数问题&#xff0c;而是气路上那个…

2026/10/21 4:56:58 阅读更多 →

最新新闻

Seedance2.0实战评测:AI视频生成从能看到能用的关键突破

Seedance2.0实战评测:AI视频生成从能看到能用的关键突破

1. 先说结论&#xff1a;为什么这个版本值得单独写一篇这段时间我一直在折腾AI视频生成相关的项目&#xff0c;从早期的模型试验到现在的落地流程&#xff0c;踩过不少坑。上个月某平台放出了新版本的视频生成模型&#xff0c;代号Seedance2.0&#xff0c;测试了几天之后我的感…

2026/10/21 5:33:12 阅读更多 →
鸿蒙适配Flutter地理空间建模:geotypes地图基座与坐标转换实践

鸿蒙适配Flutter地理空间建模:geotypes地图基座与坐标转换实践

这两年我一直在折腾跨平台地图应用&#xff0c;说实话&#xff0c;地图类 App 里最容易被低估的就是“坐标”本身。表面上看不就是一组经纬度 double 吗&#xff1f;实际上等真正把点线面撒到地图上&#xff0c;你会发现坐标系混用、模型层和渲染层耦合、海量坐标点卡 UI 线程&…

2026/10/21 5:33:12 阅读更多 →
GiveWP未授权PHP对象注入漏洞:从反序列化到WebShell植入

GiveWP未授权PHP对象注入漏洞:从反序列化到WebShell植入

前阵子帮一个做公益募捐的站点排查被挂马的问题&#xff0c;后台多了几个诡异文件&#xff0c;日志里全是陌生IP的请求&#xff0c;翻遍主题、插件都没发现可疑代码。折腾到后半夜&#xff0c;终于在一个捐赠插件 GiveWP 的请求参数里找到了入口&#xff0c;根因是未授权 PHP 对…

2026/10/21 5:33:12 阅读更多 →
千笔AI评测:从论文大纲到降重润色的全流程写作助手

千笔AI评测:从论文大纲到降重润色的全流程写作助手

每年到了论文季&#xff0c;电脑前坐到半夜两三点、屏幕里一排文献和空白文档面面相觑的画面&#xff0c;相信很多人都不陌生。写论文这件事&#xff0c;最大的痛点不是“不会写”&#xff0c;而是写到一半发现结构散了、论点撑不住、格式乱成一团&#xff0c;改起来比重新写还…

2026/10/21 5:33:12 阅读更多 →
用Docker部署百度贴吧自动签到:从BDUSS到定时任务的完整指南

用Docker部署百度贴吧自动签到:从BDUSS到定时任务的完整指南

1. 别再每天手动点签到了&#xff1a;云签到要解决的真实痛点如果你也有关注几十个贴吧、并且每天都会顺手签到的习惯&#xff0c;应该能理解那种"断签恐惧"。某个加班夜回来倒头就睡&#xff0c;第二天盯着贴吧里"已连续签到 47 天"突然变回"1 天&qu…

2026/10/21 5:33:12 阅读更多 →
Agent安全防护实战:ClawSec套件应对提示注入与数据泄露

Agent安全防护实战:ClawSec套件应对提示注入与数据泄露

上个月我去给一个智能客服项目做安全评估&#xff0c;测试环境里Agent被一条精心构造的对话绕过了系统约束&#xff0c;直接把后台提示词原样吐了出来。这种问题现在太常见了&#xff1a;提示注入、工具越权、敏感信息外带&#xff0c;正在成为所有Agent应用的集体焦虑。传统的…

2026/10/21 5:32:12 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事&#xff1a;AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里&#xff0c;按宣传口径&#xff0c;本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”&#xff0c;而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起&#xff1a;用户到底在追求什么“封号重开”这四个字&#xff0c;放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流&#xff0c;背后是大量的时间和精力成本。正常情况下&#xff0c;没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”&#xff0c;而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时&#xff0c;就意识到&#xff1a;单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/21 4:27:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →