Two-Line Hello World

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

Full Execute Payload

Pass optional policy, route, and risk. If omitted, execution inherits session defaults, then backend workspace/org defaults.

JSON payload

{
  "agent": "refund-agent",
  "subject": "customer:42",
  "policy": { "ref": "policy/default", "version": "2026-02-27" },
  "route": { "provider": "openai", "model": "gpt-4o-mini", "region": "us-east-1" },
  "risk": { "score": 22, "decision": "allow" },
  "input": { "orderId": "123", "reason": "duplicate" }
}