Qhaway

npm @carloscortezcloud/qhaway · PyPI qhaway-trace

Agent observability infrastructure. Trace every LLM call, track cost per user/model, export to OpenTelemetry, and visualize in Grafana. Zero dependencies. Edge-native.

npm — TypeScript / Workers
npm install @carloscortezcloud/qhaway
pip — Python (OpenAI, Anthropic, LangChain)
pip install qhaway-trace

Subpackages

/trace

Span wrapper + storage adapters (D1, KV, Memory, Console).

/cost

Pricing DB + cost attribution. Aggregate by user/model/day.

/otel

OTLP/HTTP JSON exporter. Honeycomb, Grafana Tempo, Datadog, SigNoz.

/tinkuy

TinkuyAgent plugin. Auto-instrument runs via hooks.

/mlflow

MLflow REST exporter. Batch + streaming modes.

Usage — TypeScript

import { QhawayTrace, ConsoleStorage } from '@carloscortezcloud/qhaway/trace';

const trace = new QhawayTrace(new ConsoleStorage(), {
  agent_id: 'my-agent',
});

const wrapped = trace.wrap(myLlmCall, {
  model: 'gpt-4o',
  provider: 'openai',
  user_id: 'user-123',
});

const result = await wrapped(prompt);
// [Qhaway] gpt-4o | $0.00063 | 150->42 tok | 1234ms

Usage — Python

from qhaway import QhawayTrace, console_storage

trace = QhawayTrace(storage=console_storage, agent_id='my-agent')

@trace.wrap(model='gpt-4o', provider='openai', user_id='user-123')
async def call_llm(prompt):
    return 'answer'

# [Qhaway] ✓ gpt-4o (openai) | $0.0000 | 0->0 tok | 0ms user=user-123
# Auto-instrument OpenAI: OpenAIPatch.apply(trace)
GitHub →npm →PyPI →Docs →

When to Use Qhaway

Works With

Tinkuy AgentStyrr RouterSayay GuardLangChain (via wrapper)OpenAI SDKPython (OpenAI/Anthropic patch)CF WorkersDenoBunNode.js