Reference
Glossary
The terms the Otis docs give one meaning, each defined in a sentence or two, with a link to the page that covers it.
This page defines the terms that the Otis docs use with one fixed meaning. Each page also defines a term where it first uses it. On the docs site, a word with a dotted underline shows its definition from this page when you hover over it, tap it or move focus to it.
Telemetry
Span
A span is one recorded operation, such as an AI call, a tool call, a traced function or a custom event.
Spans covers what a span records.
Trace
A trace is the set of spans that one request produces, linked as parent and child, with the meaning that OpenTelemetry gives it. A trace can hold several agent runs, and the spans of one agent run can arrive in more than one trace.
OpenTelemetry covers sending traces to Otis.
Attribute
An attribute is a named value on a span, such as the model of an AI call or a property of a custom event.
Spans covers what a span records.
AI call
An AI call is one request that your product makes to an AI model, with the model's response, recorded as one span.
Tracing lists the AI clients that Otis records.
Tool call
A tool call is one call to a tool, such as a function, an API or an MCP tool, recorded as one span with its input and its result. Your AI makes a tool call when its model asks for one, and the user's own agent makes one when it calls your MCP server or command-line tool.
Spans covers how Otis recognizes a tool call.
Decision model call
A decision model call is a call to a decision model, which answers named questions about an input with a yes or no, a choice or a score instead of writing a reply. Otis counts its tokens and cost and never reads it as a message in a conversation.
Tracing lists the decision models that Otis records.
Custom event
A custom event is an action that your app records with sendEvent(), such as saving a draft or sharing a link.
Custom events covers how to send one.
Traced function
A traced function is a function of your own that your app wraps with traced(), so that each call is recorded as a span.
Tracing covers traced().
Sending telemetry
OpenTelemetry
OpenTelemetry, often written OTel, is an open standard for recording what software does as spans, and for sending them to a backend such as Otis. The Otis SDK is built on it.
OpenTelemetry covers sending OpenTelemetry spans to Otis.
OTLP
OTLP, the OpenTelemetry protocol, is the format in which OpenTelemetry sends spans to a backend. Otis accepts OTLP over HTTP.
OpenTelemetry gives the Otis endpoint.
Instrumentation
An instrumentation is a library that records spans for a framework or an AI client, so that you don't write the spans yourself.
Agent frameworks covers the instrumentations that Otis reads.
OpenInference
OpenInference is a set of conventions and instrumentations for recording AI calls, tool calls and agents as OpenTelemetry spans. Otis reads its spans.
Agent frameworks covers sending OpenInference spans to Otis.
Resource attribute
A resource attribute is an attribute that describes the service which sent a span, such as its name or release, and applies to every span from that service.
OpenTelemetry covers the attributes Otis reads.
Ingest Key
An Ingest Key is the secret that your app sends with its telemetry so that Otis knows which project and environment the telemetry belongs to. Each key is for production or for development.
Getting started covers creating a key.
People and products
User
A user is a person who uses your product, named by the user ID that your app sends. Users are separate from the members of your team who sign in to the Otis app.
Users, groups and accounts covers how Otis follows each user.
Group
A group is a set of users that your app declares, such as a company or a team.
Users, groups and accounts covers groups.
Account
An account is the kind of group that pays you.
Users, groups and accounts covers accounts.
Project
A project is one product that your team instruments, with its own telemetry, settings and insights in the Otis app.
Document
A document is the lasting thing a user works in, such as a project, a file, a workspace or a design, named by the document ID that your app sends.
Documents covers what Otis records about each document.
Artifact
An artifact is one thing that a user produces in your product, such as a draft or an export. Your app reports each stage of its life with an artifact event.
Funnels and artifacts covers how to send artifact events.
Visits and conversations
Session
A session is all the activity that shares one session ID, and it usually corresponds to one visit. Your app chooses where a session begins and ends.
Sessions covers what Otis writes about each session.
Chat
A chat is one conversation inside a session, named by the chat ID that your app sends. Otis keeps each chat's messages apart from other chats when it divides a session into tasks.
Sessions covers how to send a chat ID.
Conversation
A conversation is the exchange of messages between a user and your AI in one chat, or in the whole session when your app sends no chat ID.
Sessions covers sessions, chats and conversations.
Turn
A turn is one message from the user to your AI, together with your AI's response and the tool calls your AI made to produce it.
Tracing covers how the SDK marks the start of a turn.
Session narrative
A session narrative is a fuller write-up of one session, with an assessment, takeaways and a timeline of what happened. Otis writes one for selected sessions.
Sessions covers which sessions get a narrative.
Where work happens
Surface
A surface is where and how a user, or the user's own agent, performs a task, such as a web app, a Slack bot, an MCP server or a command-line tool. Otis finds tasks within each surface separately.
Surfaces covers how your app names surfaces.
Agent
An agent is the entry point of a workflow that your product runs, such as a support assistant, a research workflow or a nightly summarizer. Otis lists the agents that took part in each task, and never splits a task by agent.
Agents in a task covers how agents label tasks, and Customization covers how your app names them.
User's own agent
The user's own agent is an AI agent that the user directs, such as a coding agent that calls your MCP server or runs your command-line tool. Otis sees its calls to your tool and not its conversation with the user.
Tasks covers how Otis groups its calls into tasks.
Coding agent
A coding agent is an AI assistant that works in a code repository, such as Claude Code, Codex or Cursor.
Coding agents covers connecting one to Otis.
Tasks
Task
A task is one piece of work that a user set out to do, such as drafting an email, fixing a failing test or exporting a report. Otis divides each session into tasks and records how each one turned out.
Tasks covers how Otis finds tasks.
Conversation task
A conversation task is a task that Otis finds in the messages between a user and your AI.
Tasks covers each kind of task.
Activity task
An activity task is a burst of product actions with no AI message, such as opening records and sharing a link.
Tasks covers each kind of task.
Tool task
A tool task is a series of calls that the user's own agent made to your MCP server or command-line tool for one purpose.
Tasks covers each kind of task.
Outcome
An outcome is how a task turned out: success, struggled, abandoned or unknown.
Tasks covers what each outcome means.
Agent runs
Agent run
An agent run is one execution of an agent, from the input it receives to its final output, with every AI call, tool call and subagent in between.
Agent runs covers what Otis records about each agent run.
Agent run summary
An agent run summary is the record that Otis keeps of one agent run, with its counts, its usage and cost, and its result, and with no text. Otis keeps one for each agent run that called at least one tool.
Agent runs covers what the summary holds.
Agent run result
An agent run result is how an agent run ended: completed, failed, no result or unknown, each with a more specific reason, such as a tool error or a spending limit.
Agent runs lists the results and their reasons.
Trajectory
A trajectory is an agent run's steps in order.
Agent runs covers how Otis builds a trajectory.
Step
A step is one entry in a trajectory, such as the input that started the agent run, an AI call, a tool call with its result, a subagent, a compaction or how the agent run ended.
Agent runs lists the kinds of step.
Step reference
A step reference is a step's number, such as S1, or S9.2 for the second step inside step 9. In a task, the reference names the agent run as well, as in A2:S3.
Agent runs covers how steps are numbered.
Subagent
A subagent is an agent that another agent starts, through one of its tool calls, to do part of its work. Its steps appear inside the step of that tool call.
Agent runs covers subagents.
Compaction
A compaction is the point where an agent's earlier conversation was summarized or cut so that it fits in the model's context. A trajectory shows it as a step when the agent's framework records it.
Agent runs covers what a trajectory shows.
Compact agent run
A compact agent run is a trajectory written as text for an AI model to read, with numbered steps, totals and each text cut short. The Otis MCP server returns one when a coding agent reads an agent run or a task.
Agent runs covers what it holds.
Repeat
A repeat is a tool call with the same tool and the same input as the call before it in an agent run.
Agent runs covers how repeats are counted.
Repair
A repair is a tool call that retries a failed call to the same tool with different input.
Agent runs covers how repairs are counted.
What Otis infers
Intent
An intent is a short description of what someone was trying to do. Otis writes one for each task, each document and each user.
Intent covers how Otis writes an intent.
Category
A category is a short label for the kind of work in a task, such as "code debugging". Categories come from the tasks in your own project.
Intent covers how Otis chooses a category.
Intent cluster
An intent cluster is a group of tasks in which users were trying to do similar things. Otis forms the clusters from your project's own tasks and names each one.
Intent clusters covers how clusters form and change.
Signal
A signal is a judgment that Otis makes about one message, such as whether the user who wrote it was frustrated. Otis infers signals from the text, and your app doesn't send them.
Signals lists the signals.
Feedback
Feedback is an explicit reaction to one operation, such as a user's thumbs-up on an AI response or an agent's report about one of your tools. Your app sends it through the SDK.
Feedback covers how Otis uses it.
Error cause
An error cause is the one reason, from a fixed list, that Otis gives a failed span, such as a rate limit, a timeout or a user who cancelled.
Errors lists the causes.
Error rate
An error rate is the share of operations that failed for a cause that counts against your product. Cancellations and HTTP 4xx statuses are left out.
Errors covers which causes count.
Cost
Reported cost
A reported cost is the amount that a gateway, such as OpenRouter, says it charged for an AI call.
Cost covers how Otis uses it.
Estimated cost
An estimated cost is the price that Otis computes from an AI call's tokens and the model's list price, for a call with no reported cost.
Cost covers how estimates are made.
Reasoning tokens
Reasoning tokens are the output tokens that a model spent reasoning before it answered, which some providers report. They are part of the output token count, so Otis never adds them again or prices them separately.
Cost covers token counts.
What Otis computes
Measurement
A measurement is a named set of values that Otis computes for each user about one aspect of how they use your product. The Otis app calls a measurement a lens.
Measurements lists the measurements.
Segment
A segment is a group of users defined by what they have done recently, so its members change as their behavior changes.
Segments covers the built-in segments.
Cohort
A cohort is a group of users who first arrived at about the same time. Its members are decided once and never change.
Segments covers how cohorts differ from segments.
Funnel
A funnel is an ordered list of stages that something in your product moves through, such as a document that is created, edited and then published. You declare the stages.
Funnels covers how Otis counts a funnel.
Lifecycle stage
A lifecycle stage is one of the five stages of the commercial journey in which Otis places each account every day.
Lifecycle lists the stages.
Change
A change is a dated record of something that happened to your product, such as a new build going live or a feature flag variant reaching users.
Changes covers the kinds of change.
What Otis delivers
Insight
An insight is a finding that Otis writes about your product. It states what Otis found, shows the evidence and suggests what to do.
Insights covers how Otis finds and writes insights.
Daily briefing
The daily briefing is a short summary that Otis posts to Slack each morning, with a few key numbers for your project.
Briefings covers what the briefing holds.
Memory
A memory is one short fact that Otis keeps about your product, such as who your customers are.
Knowledge covers memories.
Knowledge base
The knowledge base holds whole documents about your product, such as a strategy memo or a pricing page.
Knowledge covers the knowledge base.
Data browser
The data browser is the part of the Otis app that lists your project's spans, tasks, sessions, users and accounts.
Insights covers what the data browser lists.
Integrations
MCP
MCP, the Model Context Protocol, is the standard way for an AI agent to connect to outside tools. Otis runs an MCP server for coding agents, and the SDK can instrument an MCP server that you build.
MCP server covers the Otis MCP server.
MCP App
An MCP App is an interactive card that some agent hosts show beside an agent's reply. The Otis MCP server uses one to show a session's narrative.
MCP server covers the card.
Otis workflow
An Otis workflow is a set of instructions, in order, that the Otis MCP server gives a coding agent for a job such as instrumenting your code or debugging a session.
MCP server lists the workflows.