- Existing traces: connect Braintrust or Langfuse in Settings → Connections. This can import selected trace history and continue syncing according to the connector configuration.
- New events: use the Conversations SDK or MCP wrapper below, or send requests to the ingestion API.
Before you start
1
Get an API key
In the Tensile dashboard, open Settings → API Keys and create a key. It looks like
sk_ followed by a long hex string. Keep it out of source control. See Authentication for the full model.2
Install an SDK
Path A — Conversations SDK
Use this when your agent runs as regular application code and you want to record each turn (the user’s input and your agent’s output). Wrap the turn withbegin() and end().
- Python
- TypeScript
If you would rather not manage an interaction object,
track() records a completed turn in a single fire-and-forget call. See the Python and TypeScript references.Path B — MCP server
Use this when your agent exposes tools through a supported MCP server. The wrapper captures registered tool invocations; it does not currently capture resource reads or prompt calls.- Python
- TypeScript
Verify
- Trigger one turn (Path A) or call one tool (Path B).
- Open the Tensile dashboard and go to Raw Logs — your call appears as a row with its operation name, status, latency, and timestamp.
- Expand the row to inspect the input and output payloads.
- For Path A, the turn may also appear under User Stories, grouped by the
user_idyou passed, when that workspace view is enabled for your organization.
Events can take a few seconds to appear while Tensile processes the stream. If nothing shows up after a minute, confirm your API key is valid and that you are pointed at the right endpoint (
https://ingest-production-9936.up.railway.app by default). See Authentication.Where to go next
SDK overview
Compare the Conversations and MCP paths and decide what to reach for.
Data governance
Keep identifiers pseudonymous and scrub sensitive content before it is sent.
Evaluator packs
Understand how real traces become draft evaluators and why production scoring has separate validation gates.