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']]);