AdmissibleAI

Three ways in. One runtime authority layer.

Use Admissible through OpenAI, LangChain, or the direct SDK/runtime path. Pick the integration surface that matches your stack and start with a concrete example.

All three paths route through the same runtime authority layer.

OpenAI

Best for teams already using OpenAI tool calling.

Admissible evaluates tool requests before execution while preserving your existing OpenAI flow.

LangChain

Best for teams already building with wrapped tools and agent flows.

Admissible wraps LangChain tools so execution is evaluated before actions run.

Direct SDK / Runtime

Best for teams that want the clearest runtime-level integration.

Use the SDK directly to evaluate execute and commit requests at the runtime boundary.

Example previews

Each preview shows the integration surface. Open a quickstart for the fastest path, first run, and expected result.

OpenAI example

Admissible evaluates OpenAI tool requests before execution.

Example snippet

const client = createBaselineOpenAI({ baseline, openai, agentId, sessionId });const tool = defineBaselineTool({  name: "read.file",  authority: authorityPresets.readOnly,  execute: async () => ({ contents: "Admissible quickstart example" }),});await client.responses.create({ model: "gpt-4.1", input: "...", tools: [tool] });

Admissible evaluates the tool request before execution and keeps authority decisions on the same runtime path as the rest of the stack.

Minimal example

Use the short integration surface shown above to reach a first runtime decision fast.

LangChain example

Wrapped LangChain tools are evaluated before they run.

Example snippet

const integration = createBaselineLangChain({ baseline, agentId, sessionId });const [readFile] = integration.wrapTools([  defineBaselineTool({ name: "read.file", authority: authorityPresets.readOnly, execute }),]);await readFile.invoke({ path: "README.md" });

Admissible wraps the LangChain tool surface once, then keeps execution checks and runtime decisions consistent across chained tool steps.

Minimal example

Use the short integration surface shown above to reach a first runtime decision fast.

Direct SDK / Runtime example

Direct requests are evaluated at the runtime boundary.

Example snippet

const client = new BaselineClient({ baseUrl, apiKey, userAgent: "admissible-sdk-quickstart" });const execute = await client.execute(createAllowedExecuteRequest(sessionId));await client.commit(createDeniedCommitRequest(sessionId, execute.operation.id), {  idempotencyKey: "idem_commit_001",});

Admissible evaluates execute and commit requests directly, which makes this the closest surface to the runtime authority layer.

Minimal example

Use the short integration surface shown above to reach a first runtime decision fast.

Need runtime access? Create an account in Sandbox.

What stays the same. What changes.

The integration surface can stay familiar while the execution boundary gets stricter.

What stays the same

  • your model choice
  • your tool logic
  • your framework choice
  • your application flow

What changes

  • actions are evaluated before execution
  • execution passes through Admissible
  • runtime decisions become visible
  • authority is enforced at the execution boundary