Maniac Docs
API Reference

Semantic conventions

OpenTelemetry semantic convention constants.

@maniac-ai/agents


Variables

GEN_AI_SYSTEM

const GEN_AI_SYSTEM: "gen_ai.system" = "gen_ai.system"

Defined in: src/observability/_genaiSemconv.ts:21

Provider id (e.g. openai, anthropic, openrouter, litellm).


GEN_AI_REQUEST_MODEL

const GEN_AI_REQUEST_MODEL: "gen_ai.request.model" = "gen_ai.request.model"

Defined in: src/observability/_genaiSemconv.ts:24

Requested model slug, exactly as sent on the wire.


GEN_AI_RESPONSE_MODEL

const GEN_AI_RESPONSE_MODEL: "gen_ai.response.model" = "gen_ai.response.model"

Defined in: src/observability/_genaiSemconv.ts:27

Resolved model slug from the response, when the provider echoes one.


GEN_AI_RESPONSE_FINISH_REASON

const GEN_AI_RESPONSE_FINISH_REASON: "gen_ai.response.finish_reasons" = "gen_ai.response.finish_reasons"

Defined in: src/observability/_genaiSemconv.ts:30

Finish reason(s); we always emit a single-element list.


GEN_AI_USAGE_PROMPT_TOKENS

const GEN_AI_USAGE_PROMPT_TOKENS: "gen_ai.usage.input_tokens" = "gen_ai.usage.input_tokens"

Defined in: src/observability/_genaiSemconv.ts:32


GEN_AI_USAGE_COMPLETION_TOKENS

const GEN_AI_USAGE_COMPLETION_TOKENS: "gen_ai.usage.output_tokens" = "gen_ai.usage.output_tokens"

Defined in: src/observability/_genaiSemconv.ts:33


GEN_AI_OPERATION_NAME

const GEN_AI_OPERATION_NAME: "gen_ai.operation.name" = "gen_ai.operation.name"

Defined in: src/observability/_genaiSemconv.ts:36

Operation. We use chat for both root and subagent LM calls.


SPAN_AGENT_RUN

const SPAN_AGENT_RUN: "maniac.agent.run" = "maniac.agent.run"

Defined in: src/observability/_genaiSemconv.ts:41


SPAN_LM_CALL

const SPAN_LM_CALL: "maniac.lm_call" = "maniac.lm_call"

Defined in: src/observability/_genaiSemconv.ts:42


SPAN_SUBAGENT

const SPAN_SUBAGENT: "maniac.subagent" = "maniac.subagent"

Defined in: src/observability/_genaiSemconv.ts:44

v1 inner-agent / toolset-subagent boundary span. C5 removes.


SPAN_AGENT

const SPAN_AGENT: "maniac.agent" = "maniac.agent"

Defined in: src/observability/_genaiSemconv.ts:50

v2 inner-agent boundary span. Used for agent_as_tool(spec) and Toolset.as_delegated() invocations.


SPAN_PARALLEL

const SPAN_PARALLEL: "maniac.parallel" = "maniac.parallel"

Defined in: src/observability/_genaiSemconv.ts:52


SPAN_TOOL_CALL

const SPAN_TOOL_CALL: "maniac.tool_call" = "maniac.tool_call"

Defined in: src/observability/_genaiSemconv.ts:53


EVENT_CELL

const EVENT_CELL: "maniac.cell" = "maniac.cell"

Defined in: src/observability/_genaiSemconv.ts:56


EVENT_TOKEN

const EVENT_TOKEN: "maniac.token" = "maniac.token"

Defined in: src/observability/_genaiSemconv.ts:57


EVENT_MEMORY

const EVENT_MEMORY: "maniac.memory" = "maniac.memory"

Defined in: src/observability/_genaiSemconv.ts:58


EVENT_FINAL

const EVENT_FINAL: "maniac.final" = "maniac.final"

Defined in: src/observability/_genaiSemconv.ts:59


EVENT_ERROR

const EVENT_ERROR: "maniac.error" = "maniac.error"

Defined in: src/observability/_genaiSemconv.ts:60


EVENT_RETRY

const EVENT_RETRY: "maniac.retry" = "maniac.retry"

Defined in: src/observability/_genaiSemconv.ts:61


EVENT_GUARDRAIL

const EVENT_GUARDRAIL: "maniac.guardrail" = "maniac.guardrail"

Defined in: src/observability/_genaiSemconv.ts:62


EVENT_STEP_BEFORE

const EVENT_STEP_BEFORE: "maniac.step.before" = "maniac.step.before"

Defined in: src/observability/_genaiSemconv.ts:63


EVENT_STEP_AFTER

const EVENT_STEP_AFTER: "maniac.step.after" = "maniac.step.after"

Defined in: src/observability/_genaiSemconv.ts:64


EVENT_STEP_STOPPED

const EVENT_STEP_STOPPED: "maniac.step.stopped" = "maniac.step.stopped"

Defined in: src/observability/_genaiSemconv.ts:65


EVENT_TOOL_CALL_ARGUMENTS_DELTA

const EVENT_TOOL_CALL_ARGUMENTS_DELTA: "maniac.tool_call.arguments_delta" = "maniac.tool_call.arguments_delta"

Defined in: src/observability/_genaiSemconv.ts:75

Span event name used for normalized tool_call_arguments_delta events. Attached to the enclosing maniac.lm_call span (where the underlying provider stream is consumed) when recordTokens=true, so backends that already opt into chatty per-token visibility see the streamed tool-call args alongside per-token text deltas. Off by default since high-frequency argument streams are as chatty as text-token streams.


ATTR_AGENT_ID

const ATTR_AGENT_ID: "maniac.agent.id" = "maniac.agent.id"

Defined in: src/observability/_genaiSemconv.ts:78


ATTR_AGENT_PRINCIPAL

const ATTR_AGENT_PRINCIPAL: "maniac.agent.principal" = "maniac.agent.principal"

Defined in: src/observability/_genaiSemconv.ts:79


ATTR_AGENT_FINAL_SOURCE

const ATTR_AGENT_FINAL_SOURCE: "maniac.agent.final_source" = "maniac.agent.final_source"

Defined in: src/observability/_genaiSemconv.ts:80


ATTR_AGENT_ITERATIONS

const ATTR_AGENT_ITERATIONS: "maniac.agent.iterations" = "maniac.agent.iterations"

Defined in: src/observability/_genaiSemconv.ts:81


ATTR_LM_SCOPE

const ATTR_LM_SCOPE: "maniac.lm.scope" = "maniac.lm.scope"

Defined in: src/observability/_genaiSemconv.ts:84


ATTR_LM_ITERATION

const ATTR_LM_ITERATION: "maniac.lm.iteration" = "maniac.lm.iteration"

Defined in: src/observability/_genaiSemconv.ts:85


ATTR_LM_COST_USD

const ATTR_LM_COST_USD: "maniac.lm.cost_usd" = "maniac.lm.cost_usd"

Defined in: src/observability/_genaiSemconv.ts:86


ATTR_SUBAGENT_TOOLSET

const ATTR_SUBAGENT_TOOLSET: "maniac.subagent.toolset" = "maniac.subagent.toolset"

Defined in: src/observability/_genaiSemconv.ts:89


ATTR_SUBAGENT_CHEAP_PATH

const ATTR_SUBAGENT_CHEAP_PATH: "maniac.subagent.cheap_path" = "maniac.subagent.cheap_path"

Defined in: src/observability/_genaiSemconv.ts:90


ATTR_SUBAGENT_PROMPT

const ATTR_SUBAGENT_PROMPT: "maniac.subagent.prompt" = "maniac.subagent.prompt"

Defined in: src/observability/_genaiSemconv.ts:91


ATTR_SUBAGENT_DIRECT_PATH

const ATTR_SUBAGENT_DIRECT_PATH: "maniac.subagent.direct_path" = "maniac.subagent.direct_path"

Defined in: src/observability/_genaiSemconv.ts:99

True when the subagent span wraps an AgentToolset direct-path delegation (a supervisor agent calling a worker), so backends can distinguish supervisor delegations from regular toolset subagents. Mutually exclusive with ATTR_SUBAGENT_CHEAP_PATH.


ATTR_SUBAGENT_INNER_AGENT_ID

const ATTR_SUBAGENT_INNER_AGENT_ID: "maniac.subagent.inner_agent_id" = "maniac.subagent.inner_agent_id"

Defined in: src/observability/_genaiSemconv.ts:105

Set alongside ATTR_SUBAGENT_DIRECT_PATH to identify which inner agent spec the supervisor delegated to.


ATTR_AGENT_INNER_ID

const ATTR_AGENT_INNER_ID: "maniac.agent.inner_id" = "maniac.agent.inner_id"

Defined in: src/observability/_genaiSemconv.ts:109

The inner agent's spec.id for an agent[start]/[final] span.


ATTR_AGENT_TOOL

const ATTR_AGENT_TOOL: "maniac.agent.tool" = "maniac.agent.tool"

Defined in: src/observability/_genaiSemconv.ts:115

The wrapper Tool's name (lets consumers disambiguate multiple wrappers around the same inner agent).


ATTR_AGENT_PROMPT

const ATTR_AGENT_PROMPT: "maniac.agent.prompt" = "maniac.agent.prompt"

Defined in: src/observability/_genaiSemconv.ts:118

The natural-language prompt passed to the inner agent.


ATTR_TOOL_TOOLSET

const ATTR_TOOL_TOOLSET: "maniac.tool.toolset" = "maniac.tool.toolset"

Defined in: src/observability/_genaiSemconv.ts:120


ATTR_TOOL_NAME

const ATTR_TOOL_NAME: "maniac.tool.name" = "maniac.tool.name"

Defined in: src/observability/_genaiSemconv.ts:121


ATTR_TOOL_OK

const ATTR_TOOL_OK: "maniac.tool.ok" = "maniac.tool.ok"

Defined in: src/observability/_genaiSemconv.ts:122


ATTR_TOOL_ERROR

const ATTR_TOOL_ERROR: "maniac.tool.error" = "maniac.tool.error"

Defined in: src/observability/_genaiSemconv.ts:123


ATTR_TOOL_ALLOWED

const ATTR_TOOL_ALLOWED: "maniac.tool.allowed" = "maniac.tool.allowed"

Defined in: src/observability/_genaiSemconv.ts:124


ATTR_TOOL_DENY_REASON

const ATTR_TOOL_DENY_REASON: "maniac.tool.deny_reason" = "maniac.tool.deny_reason"

Defined in: src/observability/_genaiSemconv.ts:125


ATTR_PARALLEL_FANOUT

const ATTR_PARALLEL_FANOUT: "maniac.parallel.n" = "maniac.parallel.n"

Defined in: src/observability/_genaiSemconv.ts:128


ATTR_CELL_ELAPSED_MS

const ATTR_CELL_ELAPSED_MS: "maniac.cell.elapsed_ms" = "maniac.cell.elapsed_ms"

Defined in: src/observability/_genaiSemconv.ts:131


ATTR_CELL_STDOUT_LEN

const ATTR_CELL_STDOUT_LEN: "maniac.cell.stdout_len" = "maniac.cell.stdout_len"

Defined in: src/observability/_genaiSemconv.ts:132


ATTR_CELL_STDERR_LEN

const ATTR_CELL_STDERR_LEN: "maniac.cell.stderr_len" = "maniac.cell.stderr_len"

Defined in: src/observability/_genaiSemconv.ts:133


ATTR_RETRY_ATTEMPT

const ATTR_RETRY_ATTEMPT: "maniac.retry.attempt" = "maniac.retry.attempt"

Defined in: src/observability/_genaiSemconv.ts:136


ATTR_RETRY_MAX_ATTEMPTS

const ATTR_RETRY_MAX_ATTEMPTS: "maniac.retry.max_attempts" = "maniac.retry.max_attempts"

Defined in: src/observability/_genaiSemconv.ts:137


ATTR_RETRY_DELAY_S

const ATTR_RETRY_DELAY_S: "maniac.retry.delay_s" = "maniac.retry.delay_s"

Defined in: src/observability/_genaiSemconv.ts:138


ATTR_RETRY_ERROR_CLASS

const ATTR_RETRY_ERROR_CLASS: "maniac.retry.error_class" = "maniac.retry.error_class"

Defined in: src/observability/_genaiSemconv.ts:139


ATTR_RETRY_ERROR_MESSAGE

const ATTR_RETRY_ERROR_MESSAGE: "maniac.retry.error_message" = "maniac.retry.error_message"

Defined in: src/observability/_genaiSemconv.ts:140


ATTR_STEP_ITERATION

const ATTR_STEP_ITERATION: "maniac.step.iteration" = "maniac.step.iteration"

Defined in: src/observability/_genaiSemconv.ts:143


ATTR_STEP_REWROTE

const ATTR_STEP_REWROTE: "maniac.step.rewrote" = "maniac.step.rewrote"

Defined in: src/observability/_genaiSemconv.ts:144


ATTR_STEP_SOURCE

const ATTR_STEP_SOURCE: "maniac.step.source" = "maniac.step.source"

Defined in: src/observability/_genaiSemconv.ts:145


ATTR_STEP_HOOK

const ATTR_STEP_HOOK: "maniac.step.hook" = "maniac.step.hook"

Defined in: src/observability/_genaiSemconv.ts:146


ATTR_STEP_REASON

const ATTR_STEP_REASON: "maniac.step.reason" = "maniac.step.reason"

Defined in: src/observability/_genaiSemconv.ts:147


ATTR_STEP_ELAPSED_MS

const ATTR_STEP_ELAPSED_MS: "maniac.step.elapsed_ms" = "maniac.step.elapsed_ms"

Defined in: src/observability/_genaiSemconv.ts:148


ATTR_TOOL_CALL_ID

const ATTR_TOOL_CALL_ID: "maniac.tool_call.id" = "maniac.tool_call.id"

Defined in: src/observability/_genaiSemconv.ts:153


ATTR_TOOL_CALL_INDEX

const ATTR_TOOL_CALL_INDEX: "maniac.tool_call.index" = "maniac.tool_call.index"

Defined in: src/observability/_genaiSemconv.ts:154


ATTR_TOOL_CALL_ARGUMENTS_DELTA

const ATTR_TOOL_CALL_ARGUMENTS_DELTA: "maniac.tool_call.arguments_delta" = "maniac.tool_call.arguments_delta"

Defined in: src/observability/_genaiSemconv.ts:155


ATTR_TOOL_CALL_ARGUMENTS_DELTA_SEQUENCE

const ATTR_TOOL_CALL_ARGUMENTS_DELTA_SEQUENCE: "maniac.tool_call.arguments_delta.sequence" = "maniac.tool_call.arguments_delta.sequence"

Defined in: src/observability/_genaiSemconv.ts:156

Functions

genAiSystemFromSlug()

genAiSystemFromSlug(slug): string

Defined in: src/observability/_genaiSemconv.ts:167

Best-effort GenAI provider id from an maniac model slug.

Adapters set model.id to e.g. openai:gpt-4o-mini, openrouter:anthropic/claude-3.5-sonnet, mock-scripted. The slug field is the underlying provider slug. We pick the first path segment as the provider id. Unknown shapes fall back to unknown; OTel allows free-form strings here.

Parameters

slug

string | null | undefined

Returns

string

On this page