← Back to adoptersCertified
Adopter quickstart
LangChain proof path
Private-beta path for adopting Imladri with LangChain: initialize the adapter, wrap one risky capability, run the scanner or proof command from the repo, and review the same evidence in Profile.
Certification status
Certified
Certified against LangChain tool execution boundaries in Python and TypeScript, including LangGraph ToolNode paths and original-tool LangSmith traceable wrappers.
4/4 lanes passed; real-package verification covers langchain, langchain-core/@langchain/core, LangGraph, and langsmith with zero blocked-path body calls.
Runtimemixed
Access modePrivate beta
Approved beta starter
imladri init --framework langchain --ci-provider githubReference dependencies
npm install @imladri/sdk
pip install langchain langchain-core langgraph langsmith
npm install langchain @langchain/core @langchain/langgraph langsmith zodMinimal wrapper
import {
ConstitutionalAgent,
createLangChainMiddleware,
wrapLangChainTools,
} from "@imladri/sdk";
import { tool } from "langchain";
import { traceable } from "langsmith/traceable";
import * as z from "zod";
const agent = new ConstitutionalAgent({ agentId, apiKey, apiUrl, preflightUrl });
const customerLookup = tool(
traceable(async ({ customerId }) => `customer:${customerId}`, {
name: "customer.lookup",
run_type: "tool",
}),
{
name: "customer.lookup",
description: "Look up a customer by id.",
schema: z.object({ customerId: z.string() }),
},
);
const guardedTools = wrapLangChainTools(agent, [customerLookup], {
strictTools: ["credential.export", "cloud.deploy"],
});
const middleware = createLangChainMiddleware(agent);
// Pass middleware to the LangChain JS agent setup that owns raw tool dispatch.
await guardedTools[0].invoke({ customerId: "cust_123" });Terminal proof evidence
imladri sdk certify --real --target langchain
imladri scan --path . --fail-on new
imladri proof export --format json --output imladri-proof.json