Use staging for all interactive exploration by default. Production endpoints are documented but intended for controlled release gates.

Quick Start

Two-call hello world in every supported SDK:

TypeScript

const session = await dg.session.start({ agent: "refund-agent" })
await session.execute({ input: { orderId: "123" } })

Python

session = client.session.start(agent="refund-agent")
session.execute(input={"orderId": "123"})

Go

session, _ := client.SessionStart(ctx, driftgate.SessionStartRequest{Agent: "refund-agent"})
_, _ = session.Execute(ctx, driftgate.ExecutionRequest{Input: map[string]any{"orderId": "123"}})

Ruby

session = client.session.start(agent: "refund-agent")
session.execute(input: { orderId: "123" })

C#

var session = await client.Session.StartAsync(new SessionStartRequest { Agent = "refund-agent" });
await session.ExecuteAsync(new ExecutionRequest { Input = new { orderId = "123" } });

Java

var session = client.session().start(new SessionStartRequest("refund-agent"));
session.execute(new ExecutionRequest(Map.of("orderId", "123")));

PHP

$session = $client->session()->start(['agent' => 'refund-agent']);
$session->execute(['input' => ['orderId' => '123']]);

What to Read Next