Help us shape the future of Go! Take the 2026 Go Developer Survey

gaoge-agent-runtime

module
v0.1.0-beta.23 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2026 License: Apache-2.0

README

Gaoge Agent Runtime

Gaoge Agent Runtime is a framework-neutral runtime SDK for durable, tool-using agents. It separates the deterministic run state machine from optional agent, harness, HTTP, protocol, and persistence capabilities.

This repository is the canonical public source. The current development cohort targets v0.1.0-beta.23. The last locally verified published release is v0.1.0-beta.22 until the new immutable tags and GitHub release are available; see the beta.23 release-candidate notes.

Packages

Package Purpose Beta support
go/agent-runtime Kernel, agent loop, tools, context, workflows, teams, queues, evaluation Supported
go/agent-runtime-harness Durable turn orchestration, interactions, timelines, delegation Supported
go/agent-runtime-http HTTP v1 handlers and SSE feeds Supported
go/agent-runtime-postgres Kernel and run-relation stores Supported
go/agent-runtime-sqlite Experimental embedded SQLite Kernel / RunRelation Store beta.23 candidate; production/device NO-GO
go/agent-runtime-harness-postgres Harness and Context V2 store Supported
go/agent-runtime-redis Durable continuation queue and run feed Supported
go/agent-runtime-mcp MCP client, registry, and transport adapters Supported
go/agent-runtime-otel Content-safe OpenTelemetry tracing and metrics adapter Supported
go/agent-runtime-a2a Explicit A2A v1 plugin, client/server edge, and durable shadow runs Supported in Beta.2
ts/agent-runtime-client Dependency-free TypeScript HTTP v1 client Supported
contracts/agent-runtime/v1 OpenAPI and capability contracts Supported

Install

go get github.com/orz-i/Gaoge-Agent-Runtime/go/agent-runtime@v0.1.0-beta.22
pnpm add https://github.com/orz-i/Gaoge-Agent-Runtime/releases/download/v0.1.0-beta.22/orz-i-agent-runtime-client-0.1.0-beta.22.tgz

Prereleases are distributed through Go module tags and GitHub Release archives. The npm registry is reserved for stable releases; Beta publication does not require npm credentials.

Minimal Go runtime

store := memory.NewStore()
runtime, err := kernel.New(kernel.Dependencies{Store: store})
if err != nil {
    log.Fatal(err)
}

snapshot, err := runtime.Create(context.Background(), kernel.CreateRequest{
    Kind:   kernel.RunKind("agent"),
    Actor:  kernel.ActorRef{TenantID: "acme", ActorID: "user-1"},
    Thread: kernel.ThreadRef{Kind: "conversation", ID: "thread-1"},
    Goal:   "Prepare a release summary",
    State:  json.RawMessage(`{}`),
})

See the Go quickstart, the TypeScript client guide, observability guidance, and the deployment boundary for runnable examples and host integration guidance.

Configuration-driven bootstrap

Hosts that prefer configuration-driven assembly can use the optional bootstrap package. It uses Koanf for YAML/JSON plus environment overrides, but keeps DI manual: the host explicitly registers allowed store, optional Kernel feature (for example queue/run-feed adapters), model, Tool, and telemetry factories in Go, and configuration can only select those factories. kernel.New remains supported and the Kernel does not import Koanf or provider SDKs.

cfg, err := bootstrap.Load("runtime.yaml", bootstrap.LoadOptions{})
registry := bootstrap.NewDefaultRegistry()
_ = registry.RegisterModel("my-model", newModelFromConfig)
host, err := bootstrap.Build(ctx, cfg, registry, bootstrap.EnvSecretResolver{})
if err != nil {
    log.Fatal(err)
}
if err = host.Start(ctx); err != nil {
    log.Fatal(err)
}
defer host.Close(context.Background())

Environment overrides use GAOGE_ by default and __ for nesting, for example GAOGE_AGENT__EXECUTION__MODEL__TIMEOUT=45s. Secret values are not stored in the config document; component secret_refs are resolved only during startup. See the configured example.

Compatibility

Dependency Tested baseline
Go 1.26.6+
Node.js 24 LTS or newer
pnpm 11.22
PostgreSQL 16
Redis 7 and 8
Agent Runtime HTTP v1

Beta releases may make source-incompatible changes between prereleases. The HTTP v1 contract and persisted record migrations will always receive an explicit changelog entry and upgrade note.

The integration contract defines module/client version alignment, persistence and host responsibilities, HTTP recovery rules, and the executable consumer checks. HTTP v1 is a protocol namespace, not a claim that this Beta SDK has reached SemVer v1 stability.

The TypeScript package declares Node.js >=20 for consumers. Node.js 24 LTS+ above is the tested contributor/release baseline, not a test result for every version accepted by the package's engine range.

Verify from source

pnpm install --frozen-lockfile
make check
make coverage
make security
make integration

make coverage enforces the repository coverage floors and writes Go and TypeScript coverage reports under the ignored coverage/ directories. make security runs govulncheck across every Go module and fails on high or critical pnpm advisories; it requires network access to the Go vulnerability database and npm registry. make integration starts isolated PostgreSQL and Redis containers and runs the real-engine concurrency/recovery suites. make integration-otel separately runs the pinned OpenTelemetry Collector trace/metric gate so telemetry infrastructure cannot mask store/queue recovery evidence. See the reliability evidence map for failure boundaries, reproducible checks, and remaining coverage limits.

Project policy

Directories

Path Synopsis
docs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL