Skip to main content
OpenAI, and any endpoint that speaks the same shape — vLLM, Together, Groq, Ollama, an internal gateway.
That is the whole integration. From here every call the client makes is recorded on the open trajectory.

What is distinctive

The one adapter that is not vendor-specific. If your endpoint accepts an OpenAI-shaped request, this wraps it, which is why it is usually the first thing to try against a self-hosted model.

In context

The witness block opens the trajectory and closes it on exit, including when the body raises — an episode that ended badly is exactly the one worth having a record of.

Recording without content

Shape and metadata only: model, latency, token counts, tool names. No prompt or response text. The governed facts are unchanged.
Authority is never asked for by an adapter. It stays an explicit trajectory.authorize(...) call, so importing a middleware can never become a spend decision. See authorise an action.