attesta.yaml and use it with LangChain, OpenAI Agents SDK, and Anthropic Claude simultaneously. All three frameworks share the same risk scoring, challenge policies, and tamper-proof audit log.
Why Multi-Framework Matters
When your application uses multiple AI frameworks, each framework typically has its own tool execution path. Without a shared governance layer:- Risk policies are duplicated and drift apart
- Trust scores are fragmented — an agent trusted in LangChain starts from zero in OpenAI
- Audit logs are scattered in different formats, making compliance audits painful
- Rubber-stamp detection cannot correlate approval patterns across frameworks
attesta.yaml.
Configuration
This config works identically across all three frameworks:attesta.yaml
The key insight is that
attesta.yaml is framework-agnostic. It defines what your policies are — the integrations handle how they are enforced in each framework’s tool execution path.Architecture
1
attesta.yaml
A single configuration file defines all policies, risk scoring, and trust settings.
2
Shared Attesta Instance
One
Attesta instance loads the config and serves all frameworks.3
Framework agents execute tool calls
- LangChain Agent — uses
AttestaToolWrapper - OpenAI Agent — uses
attesta_approval_handler - Anthropic Claude — uses
AttestaToolGate
4
Shared Audit Trail and Trust Store
- Audit Trail —
.attesta/unified-audit.jsonl(single hash-chained log) - Trust Store —
.attesta/trust.json(unified per-agent trust scores)
Shared Tools Module
First, define the tool functions that all frameworks will use. These are plain Python functions with Attesta gating.shared_tools.py
Framework 1: LangChain
1
Install LangChain dependencies
2
Create the LangChain agent
langchain_agent.py
Framework 2: OpenAI Agents SDK
1
Install OpenAI dependencies
2
Create the OpenAI agent
openai_agent.py
Framework 3: Anthropic Claude
1
Install Anthropic dependencies
2
Create the Claude agent
claude_agent.py
TypeScript: All Three Frameworks
The same pattern works in TypeScript. A singleAttesta instance is shared across all framework integrations.
multi-framework.ts
Running All Three Together
Create a unified runner that exercises all three frameworks against the same Attesta instance:run_all_frameworks.py
Unified Audit Trail
After running all three frameworks, a single audit log at.attesta/unified-audit.jsonl contains every action from every framework:
metadata.source field identifying which framework originated the action:
Cross-Framework Trust
When multiple frameworks use the sameagent_id, the trust engine maintains a unified trust profile. Trust earned in LangChain carries over to OpenAI and Claude.
What Gets Shared
Next Steps
LangChain Integration
Full LangChain and LangGraph reference
OpenAI Agents SDK
Approval handlers and guardrails
Anthropic Claude
Gate Claude tool_use blocks
Audit Trail
Tamper-proof logging across frameworks