Skip to main content
Bento’s bento.track_ai was modeled on Raindrop’s, so most call shapes survive the port unchanged. Two things differ. Bento requires provider= on every call, and Bento’s native integration ships for Google ADK only. To keep Raindrop’s auto-capture for OpenAI, Anthropic, and Bedrock, swap to OpenInference instrumentors.

Migrate with an AI coding tool

Install Bento’s Agent Skills so your AI coding tool knows how to do the migration. Copy this prompt into Claude Code, Cursor, Codex, OpenCode, or Windsurf:
The skill carries the full playbook: find your Raindrop call sites, install Bento alongside, translate each construct, verify traces land, then remove Raindrop. The rest of this page is the same guide if you’d rather do it by hand.

The three paths

Pick the smoothest applicable one and fall through. Most migrations end up using B for the bulk and C for the handful of bespoke decorators.

Path A: Google ADK integration

If your app runs Google ADK agents, this captures every model call, tool call, and agent step automatically.
That’s it. Full reference: Integrations.

Path B: Auto-capture with OpenInference

Raindrop’s auto_instrument=True (powered by Traceloop) wrapped OpenAI, Anthropic, and Bedrock automatically. You get the same auto-capture from OpenInference instrumentors registered against a BentoLabsSpanProcessor. Your call sites stay untouched. Every LLM call is captured at the SDK level.
Drop raindrop.init(...) and the auto_instrument=True flag. The instrumentor captures your OpenAI call sites:
For Anthropic and Bedrock, install the matching openinference-instrumentation-* and register it the same way. Full reference: OTel transport.

Path C: Manual translation

For bespoke decorators, manual track_ai calls, and identity helpers, translate per the tables.

Setup

Tracking

Decorators

What’s gone


Watch out for

  • provider= is required. Raindrop infers it via Traceloop; Bento does not. Bedrock model IDs need provider="aws_bedrock", not "anthropic".
  • identify() data is lost. No user-profile store in Bento. Port traits to per-call properties= or init-time tags.
  • OTel context. Bento detaches from any outer OTel context; Raindrop participates in it. Agent runs become standalone traces.

Side-by-side

Raindrop
Bento

See also

Configuration

init(), identity getters, env vars.

Tracking events

The bento.track_ai reference.