OpenAI
Best for teams already using OpenAI tool calling.
Admissible evaluates tool requests before execution while preserving your existing OpenAI flow.
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.
Best for teams already using OpenAI tool calling.
Admissible evaluates tool requests before execution while preserving your existing OpenAI flow.
Best for teams already building with wrapped tools and agent flows.
Admissible wraps LangChain tools so execution is evaluated before actions run.
Best for teams that want the clearest runtime-level integration.
Use the SDK directly to evaluate execute and commit requests at the runtime boundary.
Each preview shows the integration surface. Open a quickstart for the fastest path, first run, and expected result.
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.
Full docs
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.
Full docs
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.
Full docs
Need runtime access? Create an account in Sandbox.
The integration surface can stay familiar while the execution boundary gets stricter.