Framework Adapters

August 5, 2026 ยท View on GitHub

Use framework adapters when an agent framework already owns the tool-call hook and you need to normalize that proposed action before HELM evaluates it.

Supported Helpers

FrameworkHelper
LangGraphfromLangGraphToolCall
LangChainfromLangChainToolCall
CrewAIfromCrewAITask
OpenAI CodexfromCodexToolCall
Claude CodefromClaudeToolCall
HermesfromHermesToolCall
OpenAI Agents SDKfromOpenAIAgentsToolCall
AutoGen / AG2fromAutoGenToolCall
Semantic KernelfromSemanticKernelFunctionCall
PydanticAIfromPydanticAIToolCall
LlamaIndexfromLlamaIndexToolCall
LiteLLMfromLiteLLMToolCall
n8nfromN8NNodeExecution
Zapier-style webhookfromZapierWebhookCall
Raw MCP clientfromRawMCPToolCall

Pattern

import { HelmClient, createAgentFrameworkAdapter, fromLangGraphToolCall } from "@mindburn/helm-ai-kernel";

const helm = new HelmClient({ baseUrl: "http://127.0.0.1:7714" });
const adapter = createAgentFrameworkAdapter(helm, {
  model: "helm-governance",
  metadata: { boundary: "local-dev" },
});

const result = await adapter.submit(
  fromLangGraphToolCall({
    id: "call-1",
    name: "repo.read_file",
    args: { path: "README.md" },
  }),
);

console.log(result.governance.receiptId);

The adapter prepares the action for HELM. It does not execute the original tool. Named helpers are conveniences, not separate policy lanes: every helper produces the same AgentFrameworkAction and uses the same receipt-bearing HELM client. Use fromRawMCPToolCall for another framework that exposes an MCP tool call instead of adding a provider-specific authority path.

Named helpers expect the provider's canonical envelope:

  • fromCodexToolCall: recipient_name + parameters
  • fromClaudeToolCall: tool_name + tool_input
  • fromHermesToolCall: tool_name + arguments

If those canonical fields are missing, or alias fields disagree with them, the helper throws TypeError before any HELM request is built.

Source presence is not package-release proof. Before a production integration, verify the installed SDK version contains the helper, route one allow case and blocked deny/escalate cases, and verify the resulting receipt offline.