Developer toolkit management repository for the Airymax AI Agent Runtime Platform. A management repo under the user-space engineering super-repo
agent-workloadin the airymaxhub umbrella.
Language: English | 简体中文
The sdk management repository is the developer-facing packaging layer of the Airymax platform. It aggregates 6 leaf repositories as git submodules and exposes a single, coherent developer surface for the Airymax AI Agent Runtime:
- 4 language SDKs — Python, Go, Rust, TypeScript
- 2 interactive tools —
cli(command-line interface) andtui(terminal UI)
All four SDKs share the same architecture: each language SDK exposes an HTTP client layer (Client / APIClient) plus four business module managers — TaskManager (tasks), MemoryManager (memory), SessionManager (sessions) and SkillManager (skills). Agent applications built on these SDKs are runtime tenants — they invoke platform capabilities through the SDK over HTTP / JSON-RPC 2.0 rather than touching kernel internals directly.
This management repo only carries documentation, submodule wiring, and licensing. All implementation lives in the leaf repositories.
sdk/ # Management repository (this repo)
├── sdk-python/ # Python SDK leaf repo (submodule)
├── sdk-go/ # Go SDK leaf repo (submodule)
├── sdk-rust/ # Rust SDK leaf repo (submodule)
├── sdk-typescript/ # TypeScript SDK leaf repo (submodule)
├── cli/ # cli leaf repo (submodule, directory name: cli/)
├── tui/ # tui leaf repo (submodule, directory name: tui/)
├── .gitmodules # Submodule definitions
├── LICENSE # AGPL-3.0 + Apache-2.0 dual license full text
├── NOTICE # Copyright, trademark and third-party notices
├── README.md # This file (English)
└── README_zh.md # Chinese translation
| Module | Directory | Repository URL | Language | Description |
|---|---|---|---|---|
| sdk-python | sdk-python/ |
git@atomgit.com:openairymax/sdk-python.git |
Python | Python SDK (agentrt package, 3.8+) |
| sdk-go | sdk-go/ |
git@atomgit.com:openairymax/sdk-go.git |
Go | Go SDK (module github.com/spharx/agentrt/sdk/go/agentrt, Go 1.22+) |
| sdk-rust | sdk-rust/ |
git@atomgit.com:openairymax/sdk-rust.git |
Rust | Rust SDK (crate agentrt-rs, edition 2021) |
| sdk-typescript | sdk-typescript/ |
git@atomgit.com:openairymax/sdk-typescript.git |
TypeScript | TypeScript SDK (npm package @agentrt/sdk, TS 5.0+) |
| cli | cli/ |
git@atomgit.com:openairymax/cli.git |
Rust | Command-line interface tool for runtime ops |
| tui | tui/ |
git@atomgit.com:openairymax/tui.git |
Rust | Terminal UI tool for interactive agent sessions |
Note: the
cliandtuimodules use the same name for both the directory and the repository — nosdk-prefix is applied to these two interactive tools.
Each SDK is a plain HTTP client for the AgentRT runtime. There is no native FFI binding to a Core C ABI — the SDKs talk to the Gateway directly over HTTP / JSON-RPC 2.0. Every language SDK exposes a low-level APIClient / Client for raw requests, with four idiomatic business module managers on top of it.
┌──────────────────────────────────────────────────────────────────┐
│ Business Module Managers (4 per language) │
│ TaskManager · MemoryManager · SessionManager · SkillManager │
├──────────────────────────────────────────────────────────────────┤
│ HTTP Client Layer (APIClient / Client) │
│ agentrt (Python) · agentrt (Go) · agentrt-rs (Rust) · │
│ @agentrt/sdk (TypeScript) │
├──────────────────────────────────────────────────────────────────┤
│ Transport: HTTP / JSON-RPC 2.0 (no native FFI / Core C ABI) │
└──────────────────────────────────────────────────────────────────┘
│
▼ HTTP / JSON-RPC 2.0
┌──────────────────────────────────────────────────────────────────┐
│ AgentRT Runtime (gateway_d) — kernel services & resource bus │
└──────────────────────────────────────────────────────────────────┘
- Runtime — connects to a running AgentRT instance (
gateway_d) over HTTP / JSON-RPC 2.0. - Protocol — speaks the AgentsIPC protocol defined in the
protocols/management repo. - Configuration — runtime endpoints and credentials are managed by
ecosystem/manager/.
- Agent applications — user-written agents that import a language SDK.
cli/tui— standalone Rust tools that talk to the Gateway over HTTP (they do not link the language SDKs).- Reference examples — agents under
ecosystem/examples/.
Each language SDK exposes an HTTP client plus four business module managers. The manager APIs are aligned across all four languages.
| Manager | Resource Layer | Responsibilities |
|---|---|---|
TaskManager |
Tasks | Task submission, query, wait, cancel, list, batch operations |
MemoryManager |
Memory | Layered memory write / read / search |
SessionManager |
Sessions | Session lifecycle management |
SkillManager |
Skills | Skill registration, invocation, management |
Client (HTTP layer)
├── TaskManager → submit / get / wait / cancel / list
├── MemoryManager → write / read / search
├── SessionManager → create / get / delete
└── SkillManager → load / invoke / list
pip install agentrtgo get github.com/spharx/agentrt/sdk/go/agentrtcargo add agentrt-rsnpm install @agentrt/sdk
# or: pnpm add @agentrt/sdk / yarn add @agentrt/sdkBoth tools are Rust binaries distributed as part of the cli and tui leaf repos. Build them from source:
# Inside the cli/ submodule directory
cargo install --path .
# Inside the tui/ submodule directory
cargo install --path .Tool boundary: three terminal entry points play complementary roles —
agentrt/tools/airy_cli(C, ships with the runtime source) — the runtime's built-in interactive entry pointsdk/cli(Rust) — developer-oriented ops CLI (scaffolding / config / market / deploy)sdk/tui(Rust) — developer-oriented multi-panel interactive terminal UI All three talk to the runtime through the gateway (JSON-RPC 2.0, defaulthttp://localhost:8080); versions follow the release together (current 0.1.9).
All examples assume a running AgentRT instance at http://localhost:8080.
from agentrt import AgentRT
client = AgentRT(endpoint="http://localhost:8080")
# Task: submit a task
task = client.submit_task("analyze quarterly metrics")
# Memory: write a memory record
memory_id = client.write_memory("quarterly metrics", metadata={"tag": "report"})The agentrt.modules package additionally exposes the module managers
(TaskManager, MemoryManager, SessionManager, SkillManager) for typed access.
package main
import (
"context"
"fmt"
"github.com/spharx/agentrt/sdk/go/agentrt"
"github.com/spharx/agentrt/sdk/go/agentrt/client"
"github.com/spharx/agentrt/sdk/go/agentrt/modules/task"
)
func main() {
ctx := context.Background()
c, err := client.NewClient(agentrt.WithEndpoint("http://localhost:8080"))
if err != nil {
panic(err)
}
tasks := task.NewTaskManager(c)
t, err := tasks.Submit(ctx, "analyze quarterly metrics")
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", t)
}use std::sync::Arc;
use agentrt_rs::client::Client;
use agentrt_rs::modules::task::TaskManager;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new("http://localhost:8080")?;
let tasks = TaskManager::new(Arc::new(client));
let task = tasks.submit("analyze quarterly metrics").await?;
println!("{:?}", task);
Ok(())
}import { AgentRTClient, withEndpoint } from "@agentrt/sdk";
const client = new AgentRTClient(withEndpoint("http://localhost:8080"));
// Task manager: submit a task
const task = await client.tasks.submit("analyze quarterly metrics");
console.log(task);- This management repo (sdk) — development happens directly on
main. - Leaf repositories — active development happens on
develop/hubs-01; each leaf'smainis a release snapshot (synced once per release, not for day-to-day work).
Aggregation uses gitlinks (commit-hash pins). To clone this repo with submodules:
git clone --recurse-submodules git@atomgit.com:openairymax/sdk.git
cd sdk
git submodule update --init --recursiveDual-licensed under AGPL v3 + Apache 2.0 (SPDX: AGPL-3.0-or-later OR Apache-2.0). You may choose either license at your option. See LICENSE for the full text of both licenses and NOTICE for copyright, trademark and third-party notices.
You may choose either license at your option — not both, not neither.
SPDX Expression: AGPL-3.0-or-later OR Apache-2.0
| If you are... | Choose | Why |
|---|---|---|
| Building a SaaS or network service that modifies the SDK | AGPL v3 | Network service clause requires source disclosure |
| Developing open-source SDK derivatives (copyleft) | AGPL v3 | Derivatives must remain open-source under AGPL |
| Using the SDK in commercial closed-source products | Apache 2.0 | Permissive, allows proprietary derivatives |
| Building enterprise internal tools | Apache 2.0 | No source disclosure required |
| Needing patent protection | Apache 2.0 | Explicit patent grant from contributors |
| Just learning or researching | Either | Both permit personal use |
For the authoritative license policy, see 12-license-policy.md.
Copyright (c) 2025-2026 SPHARX Ltd. All Rights Reserved.