Observability
One event bus. Optional OpenTelemetry. Pass createOtelListener as onEvent, or tap a stream with tapEvents.
OTel listener
otel.ts
typescript
import { agent, createOtelListener } from "@monorch/ai";
const otel = createOtelListener({
serviceName: "monorch-support",
onEvent: (ev) => console.debug(ev.type),
});
const bot = agent({
model,
tools,
onEvent: otel,
});Tap a stream
tap.ts
typescript
import { tapEvents, createOtelListener } from "@monorch/ai";
for await (const ev of tapEvents(bot.stream(msg), createOtelListener())) {
sendSse(ev);
}Peer dependency
Install @opentelemetry/api when you want spans. Without it, the listener still forwards to your onEvent hook safely.