See exactly what your agent does — every LLM call, tool execution, and reasoning step — with zero coupling to your agent code.
{ name, on(event) } objectsAgentEvent emissions from the runtime; remove it and your agent code is unchangednpm install @agentskit/observability
import { createRuntime } from '@agentskit/runtime'
import { anthropic } from '@agentskit/adapters'
import { consoleLogger, langsmith } from '@agentskit/observability'
const runtime = createRuntime({
adapter: anthropic({ apiKey: process.env.ANTHROPIC_API_KEY, model: 'claude-sonnet-4-6' }),
observers: [
consoleLogger({ format: 'pretty' }),
langsmith({ apiKey: process.env.LANGSMITH_API_KEY }),
],
})
const result = await runtime.run('Analyze sales data in ./data/sales.csv')
// Every step is now logged and traced automatically
@agentskit/runtime or wire events from @agentskit/core AgentEvent if you use a custom loopconsoleLogger for local dev| Package | Role |
|---|---|
| @agentskit/runtime | Emits steps for tracing |
| @agentskit/core | AgentEvent stream |
| @agentskit/eval | Quality gates alongside traces |