Plugs into the agent stack you already run.
Framework adapters, model providers, CI systems, OpenTelemetry and your identity provider. No agent rewrite.
16 of 16 integrations
LangChainAgent frameworkCallback handler that records every tool call, retriever hit and LLM step from agents and runnables.GonaturelleCallbackHandler
LangGraphAgent frameworkNode-level trajectory capture for StateGraph apps, including checkpointed state diffs between steps.graph.stream(stream_mode="updates")
LlamaIndexAgent frameworkInstrumentation for AgentWorkflow and FunctionAgent runs, with retrieval nodes attached to each step.AgentWorkflow event stream
CrewAIAgent frameworkPer-agent and per-task trajectories for Crew runs, so hand-offs between roles are assertable.step_callback / task_callback
AutoGenAgent frameworkMessage-level capture for AgentChat teams, including tool call requests and execution results.team.run_stream()
OpenAI Agents SDKAgent frameworkA tracing processor that maps Agents SDK spans (agent, generation, function, handoff, guardrail) to GONATURELLE steps.add_trace_processor()
Semantic KernelAgent frameworkFunction invocation filters that log every kernel function call, its arguments and its result.FUNCTION_INVOCATION filter
DSPyAgent frameworkRun compiled DSPy programs and ReAct modules against golden suites, with trajectories read from module history.dspy.ReAct trajectory
OpenAIModel providerEvaluate agents built directly on the Responses or Chat Completions API, and use OpenAI models as calibrated judges.Responses API function calls
AnthropicModel providerCapture tool_use and tool_result blocks from the Messages API and run Claude models as cross-family judges.tool_use content blocks
AWS BedrockModel providerEvaluate Converse API agents inside your AWS account, with judges served from Bedrock in the same region.bedrock-runtime Converse
GitHub ActionsCI/CDThe gonaturelle/gate-action@v2 check: fast path on push, full suite on pull request, PR comment with regression diffs.gonaturelle/gate-action@v2
GitLab CICI/CDA .gitlab-ci.yml job template with merge request rules, JUnit reports and a merge request note..gitlab-ci.yml include
CircleCICI/CDA config 2.1 job with test-results upload and branch filters for fast-path and full-suite workflows.config.yml version 2.1
OpenTelemetryObservabilityIngest spans that follow the OpenTelemetry GenAI semantic conventions and turn production traces into test cases.gen_ai.* span attributes
OktaIdentitySAML 2.0 single sign-on and SCIM 2.0 provisioning, with Okta groups mapped to GONATURELLE roles.SAML 2.0 + SCIM 2.0
Five integration points, one trajectory format.
Every adapter writes the same step schema, so assertions and judges do not care which framework produced the run.
- 1Agent frameworkAdapters turn native callbacks and events into ordered trajectory steps.
- 2Model providerTool-call blocks from raw API loops; providers also serve as judges.
- 3CI/CDGates run on push and pull request, post comments, set required checks.
- 4ObservabilityOpenTelemetry GenAI spans in, production traces promoted to test cases.
- 5IdentitySAML SSO and SCIM keep roles and offboarding in your IdP.
No framework? Two context managers.
In-house loops get the same trajectory capture as framework adapters. Record each tool call with its arguments and result; GONATURELLE infers argument provenance from the recorded sources.
import { trace, step } from '@gonaturelle/sdk';
export const runIntake = trace({ agent: 'fnol-intake' }, async (claim: Claim) => {
const policy = await step('tool_call', { tool: 'lookupPolicy' }, (s) => {
s.record({ args: { policyNo: claim.policyNo } });
return lookupPolicy(claim.policyNo);
});
const fnol = await step('tool_call', { tool: 'openFnol' }, (s) => {
s.record({ args: { policyId: policy.id, lossDate: claim.lossDate } });
return openFnol(policy.id, claim.lossDate);
});
return summarize(fnol);
});Frequently asked questions
Our agent is a custom loop with no framework. Is that supported?
Yes, and it is the most common setup we see in regulated teams. Decorate the entry point with @gonaturelle.trace and wrap each tool call in gonaturelle.step, or emit OpenTelemetry spans with the GenAI semantic conventions and point the collector at GONATURELLE.
Do framework adapters change how our agent behaves?
No. Adapters only observe: callbacks, event streams, trace processors and invocation filters that the frameworks expose for exactly this purpose. They do not modify prompts, tool arguments or control flow, and they add no work to production unless you enable them there.
Which versions of each framework do you support?
Each integration page lists the minimum version it is tested against. Adapters are tested in CI against the latest two minor releases of each framework, and breaking upstream changes are announced in the changelog before the adapter drops an old API.
Can we request an integration that is not listed?
Yes. Write to partners@gonaturelle.si with the framework or tool and your use case. Anything that emits OpenTelemetry spans or JSONL traces already works through the generic ingest path while a native adapter is built.
Stop testing regulated agents on generic prompts.
Run your agent against 100 industry-standard clinical or financial edge cases in 5 minutes. 14-day free production trial, no card.