Rust AI代理后端SDK

Orbit Rust SDK是一个开源AI代理后端,用于处理LLM提供商通信、工具执行、会话管理等功能,适用于开发高效的AI集成开发环境。

  • by Recusive
  • TypeScript
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 Recusive/agentsdk

使用说明

Orbit Rust SDK

OpenCode的完全Rust重写 --开源AI编码代理。

我们正在用100%Rust从头开始重建OpenCode,以获得更好的性能、更低的内存占用和真正的原生体验。

注: 这是从OpenCode衍生出来的开源后端SDK。Orbit(我们的统一开发环境)是一个使用此SDK的独立专有产品。


为什么是Rust?

Aspect Types/Bun Rust
记忆 约200-500MB运行时间 约20-50MB
初创公司 1-3秒 <100ms
二进制大小 需要节点/Bun运行时 单个静态二进制文件
原生集成 FFI管理费用 零成本Tauri集成
并发 事件循环限制 与async/await的真正并行性

通过在Rust中重写,我们得到:

  • 即时启动 --无运行时初始化
  • 最小内存 --对于与重型IDE一起运行至关重要
  • 本地Tauri整合 --无缝桌面应用程序,无IPC开销
  • 单二进制分布 --无依赖关系,无node_modules
  • 真并发 --无阻塞的并行工具执行

这是什么?

Orbit Rust SDK 是一个开源的AI代理后端,处理:

  • LLM提供商沟通(Anthropic、OpenAI、谷歌、AWS Bedrock、本地模型)
  • 工具执行(bash、文件操作、代码分析)
  • 会话管理和会话状态
  • 实时流媒体和事件处理
  • OAuth身份验证流程(Claude Pro、ChatGPT Plus、GitHub Copilot)

此SDK源自 OpenCode 并且正在用Rust重写。它是 免费开源 供社区使用、贡献和发展。

轨道 (我们的代理UDE——统一开发环境)使用此SDK,但它是一个独立的闭源产品。


当前状态

阶段:积极发展

我们正在系统地将TypeScript代码库逐个转换为Rust:

板条箱 状态 描述
orbit-core ✅ 完成 ID生成、锁、超时、通配符、文件系统、全局路径
orbit-bus 🔄 进行中 事件发布/订阅系统
orbit-storage ⬜ 计划 JSON文件存储
orbit-project ⬜ 计划 项目/实例上下文
orbit-config ⬜ 计划 配置管理
orbit-permission ⬜ 计划 权限系统
orbit-provider ⬜ 计划中的 人工智能提供商适配器(Anthropic、OpenAI、谷歌、AWS)
orbit-session ⬜ 计划 会话管理
orbit-tools ⬜ 计划 代理工具(bash、读、写、编辑、glob、grep)
orbit-lsp ⬜ 计划 LSP客户端集成
orbit-mcp ⬜ 计划 模型上下文协议客户端
orbit-server ⬜ 计划 带SSE的HTTP API

快速开始

# Check compilation
cargo check --workspace

# Run tests
cargo test --workspace

# Build release
cargo build --release

# Test crates during development
cargo run -p orbit-cli -- test-core

开发CLI

我们提供了一个简单的测试CLI,用于在构建板条箱时对其进行验证:

# Show available commands
cargo run -p orbit-cli -- help

# Test orbit-core
cargo run -p orbit-cli -- test-core

# More commands added as crates are completed

建筑

orbit-rust-sdk/
├── Cargo.toml                  # Workspace manifest
├── crates/
│   ├── orbit-core/             # Foundation utilities
│   ├── orbit-bus/              # Event pub/sub
│   ├── orbit-storage/          # JSON file storage
│   ├── orbit-project/          # Project/instance context
│   ├── orbit-config/           # Configuration
│   ├── orbit-permission/       # Permission system
│   ├── orbit-provider/         # AI provider adapters
│   ├── orbit-session/          # Session management
│   ├── orbit-tools/            # Agent tools
│   ├── orbit-lsp/              # LSP client
│   ├── orbit-mcp/              # MCP client
│   ├── orbit-server/           # HTTP API server
│   └── orbit-cli/              # Development test CLI
├── docs/
│   ├── conversion/             # Conversion planning docs
│   ├── providers/              # Provider auth documentation
│   └── workflow/               # Development workflow guides
└── OpenCode-reference/         # Original TypeScript source

板条箱依赖关系图

                    orbit-core
                    /    |    \
            orbit-bus  orbit-storage  orbit-config
                    \    |    /
                    orbit-project
                         |
                orbit-permission
                    /         \
           orbit-provider   orbit-tools
                    \         /
                   orbit-session
                    /    |    \
            orbit-lsp orbit-mcp orbit-server

文档

文档 描述
docs/workflow/Workflow.md 主要转换工作流程指南
docs/workflow/MODULE_MAPPING.md TypeScript→ Rust模块映射
docs/providers/PROVIDER_AUTH.md Claude、Codex、Copilot的OAuth流
docs/providers/RUST_AI_SDK_ALTERNATIVES.md Vercel AI SDK的Rust替代品

每个板条箱还有一个 CONVERSION.md 映射其TypeScript源代码的文件。


贡献

我们欢迎捐款!无论您是:

  • 将TypeScript移植到Rust --选择一个模块并开始转换
  • 添加功能 --新工具、提供商或改进
  • 修复bug --在TS或Rust代码库中
  • 改进文档 --更好的示例、指南和解释

这个SDK是 免费开源用它,叉它,在它上面建造。

转换工作流

  1. 检查 crates/<crate-name>/CONVERSION.md 对于TypeScript→ 锈蚀映射
  2. 遵循中的模式 docs/workflow/Workflow.md
  3. 测试用 cargo run -p orbit-cli -- test-<crate>
  4. 提交PR

致谢

特别感谢 OpenCode 和 异常 (SST) 用于构建原始的开源AI编码代理。

OpenCode证明了一个完全开源、与提供商无关的人工智能代理可以与专有解决方案相媲美。我们正在利用他们的出色工作,并在Rust中重建它,以进一步提高性能。


许可证

MIT许可证

版权所有(c)2025递归实验室 版权所有(c)2024-2025 SST/OpenCode(原创作品)

看 许可证 了解详情。


Orbit Rust SDK
Built on the foundations of OpenCode