Mininglamp-OSS/octo-server

GitHub: Mininglamp-OSS/octo-server

面向人机协作场景的 Go 后端服务,提供 REST/WebSocket API、AI agent 编排和实时消息能力,解决人类与 AI agent 在同一平台协同工作的需求。

Stars: 358 | Forks: 57

OCTO OCTO

OCTO — 为人类 × AI agent 打造的开放式工作平台。
Lobsters(由 OpenClaw 驱动的数字分身)负责思考执行。你只需专注于品味

🏠 OCTO 主页 · 🚀 快速开始 · 📦 生态系统 · 🤝 参与贡献

License 简体中文

# OCTO 服务器 `octo-server` 是 OCTO 平台的核心。它提供 REST + WebSocket API,供 [`octo-web`](https://github.com/Mininglamp-OSS/octo-web) 和 [`octo-admin`](https://github.com/Mininglamp-OSS/octo-admin) 调用,负责编排 业务逻辑和 Lobster(AI agent)调度,并驱动 [`WuKongIM`](https://github.com/WuKongIM/WuKongIM) IM 核心实现实时 消息传递。 ## 🌟 为什么选择 OCTO Server - **整个平台的唯一锚点。** 客户端、adapter、matter、summary 和 admin 均汇聚于 `octo-server`。只需部署和扩展一个后端;其他所有组件都与它进行通信。 - **一流的 Lobster 编排能力。** 为 OpenClaw 驱动的数字分身提供的路由、session 和 tool-call 执行功能内建于服务器中,而非临时拼凑。Agent 被视为第一平等的对话参与者。 - **可插拔的存储与 IM。** 内置兼容 MySQL 的 SQL migration 和对象存储 adapter;WuKongIM 通过轻量的 control-plane 边界驱动,从而保持 IM 核心的可替换性。 ## 🚀 快速开始 ``` git clone https://github.com/Mininglamp-OSS/octo-server.git cd octo-server go build -o octo-server . ./octo-server --config ./configs/tsdd.yaml ``` 默认的开发配置需要一个本地的 WuKongIM 实例和 兼容 MySQL 的数据库。针对独立二进制文件路径,请参阅内置的 `configs/tsdd.yaml` 模板;如需端到端的操作指南,请参阅 [`QUICKSTART.md`](./QUICKSTART.md); 如需跨仓库构建说明,请参阅 [`BUILDING.md`](./BUILDING.md)。 如需一键部署的 Docker Compose 技术栈(server + admin + web + matter + smart-summary + WuKongIM + MySQL + Redis + MinIO + nginx),请使用 位于 [`Mininglamp-OSS/octo-deployment`](https://github.com/Mininglamp-OSS/octo-deployment) 的 **官方 OOTB 部署方案**。 此仓库中曾经存在的旧版 `docker/octo/` 和 `docker/tsdd/` compose 技术栈已被弃用, 并统一由该单一事实来源取代。 ## 📦 模块 / 架构 高级布局: | 路径 | 用途 | |---|---| | `cmd/` | 服务入口点(`octo-server`,子命令) | | `internal/api/` | REST + WebSocket 处理程序 — conversation、user、group、file、org、webhook | | `internal/service/` | 业务逻辑 — 访问控制、Lobster 编排、IM fan-out | | `internal/repository/` | SQL + 缓存 repository(MySQL、Redis) | | `internal/im/` | 用于 WuKongIM 的 control-plane 客户端(channel / message / presence) | | `internal/agent/` | Lobster 路由、session 存储、tool-call 执行 | | `internal/adapter/` | adapter 注册 + 分发接口 | | `configs/` | YAML config schema + 开发 / 生产示例 | | `migrations/` | SQL schema migration | | `docs/` | 架构说明、API 参考文档、图表 | 服务器处理每个请求的流程: 1. **认证(Authenticate)** — token / cookie / DH-sealed WebSocket frame。 2. **授权(Authorise)** — 感知 org 的 RBAC、per-channel ACL、agent-identity 门控。 3. **执行** — 运行业务逻辑,可能会生成 / 恢复 Lobster agent session。 4. **分发** — 通过 WuKongIM 排队发送 IM 消息,如果 channel 需要外部 bridge,则触发 adapter。 5. **响应** — 统一的 JSON 封装(或 WebSocket frame),带有 tracing + metrics 标签。 ## 🔗 OCTO 生态系统 ``` graph TD subgraph Clients[Clients] Web[octo-web
Web / PC] Android[octo-android
Android] iOS[octo-ios
iOS] end subgraph Core[Core Services] Server[octo-server
Backend API] Matter[octo-matter
Task / Todo] Summary[octo-smart-summary
AI Summary] Admin[octo-admin
Admin Console] end subgraph Shared[Shared Libraries & Integrations] Lib[octo-lib
Core Go Library] Adapters[octo-adapters
Third-party Adapters] end Web --> Server Android --> Server iOS --> Server Admin --> Server Server --> Matter Server --> Summary Server --> Adapters Server -.uses.-> Lib Matter -.uses.-> Lib Adapters -.uses.-> Lib ``` | 代码库 | 语言 | 角色 | |---|---|---| | [`octo-server`](https://github.com/Mininglamp-OSS/octo-server) | Go | 后端 API · 业务编排 · Lobster agent 调度 | | [`octo-matter`](https://github.com/Mininglamp-OSS/octo-matter) | Go | Task / Todo / Matter 微服务 | | [`octo-smart-summary`](https://github.com/Mininglamp-OSS/octo-smart-summary) | Go | 基于 LLM 的对话总结 | | [`octo-web`](https://github.com/Mininglamp-OSS/octo-web) | TypeScript / React | Web & PC (Electron) 客户端 | | [`octo-android`](https://github.com/Mininglamp-OSS/octo-android) | Kotlin / Java | 原生 Android 客户端 | | [`octo-ios`](https://github.com/Mininglamp-OSS/octo-ios) | Swift / Objective-C | 原生 iOS 客户端 | | [`octo-admin`](https://github.com/Mininglamp-OSS/octo-admin) | TypeScript / React | 管理控制台(tenant / org / user / channel 管理) | | [`octo-lib`](https://github.com/Mininglamp-OSS/octo-lib) | Go | 共享核心库(protocol、crypto、storage、HTTP) | | [`octo-adapters`](https://github.com/Mininglamp-OSS/octo-adapters) | TypeScript / Python | 第三方集成(IM bridge、AI channel) | ## 🧭 理念 OCTO 遵循三个适用于此矩阵中每个仓库的共享原则: 1. **本地优先。** 任何能在用户自己的设备上运行的功能 — chat、embedding、agent — 都应该在本地运行。你的数据始终属于你;使用云是一个选择,而非必需。 2. **人类做判断,AI 负责思考和行动。** 人类专注于*品味*(什么重要、什么正确、该交付什么)。Lobster agent — 即由 OpenClaw 驱动的数字分身 — 承担起*思考*和*执行*的重任。 3. **发布即产品。** 每个开源版本都作为一个独立的产品发布,而不是简单的代码堆砌:每个版本一次 squash commit,Apache 2.0 协议,没有任何内部包袱,仅凭此仓库即可完全复现。 ## 📄 许可证 Apache License 2.0 — 完整文本请参见 [LICENSE](LICENSE),第三方声明请参见 [NOTICE](NOTICE)。 ## 🙏 致谢 `octo-server` 是以下项目的衍生作品: - **[TangSengDaoDaoServer](https://github.com/TangSengDaoDao/TangSengDaoDaoServer)** — 由 TangSengDaoDao 团队开发的我们的上游项目。 - **[WuKongIM](https://github.com/WuKongIM/WuKongIM)** — 我们所驱动的实时消息传递核心。 完整的 Go module 许可证清单和第三方声明块请参见 [NOTICE](NOTICE)。

OCTO Contributors 用 🐙 打造 · Mininglamp-OSS

标签:AI智能体, Go语言, REST API, WebSocket, 任务编排, 依赖分析, 后端开发, 实时通信, 搜索引擎查询, 日志审计, 版权保护, 程序破解