Skip to content

Debugging

ASHA v0.4.2 - tracing and diffs via TraceContext.


Quick start

from asha import process

result = process(
    "Analyze data with john@example.com",
    trace=True,
    debug=True,
)

print(result.output)
print(result.trace)
print(result.diff)

TraceContext

Enabled with trace=True on process() / sanitize(). Records stage names, timing, and intermediate outputs inside core/trace_context.py.

result = process("prompt", trace=True)
print(result.trace)

Debug mode

debug=True adds result.diff (unified diff) and optional debug metadata on ProcessResult.debug.

result = process("prompt", debug=True)
if result.degraded:
    print(result.degraded_reason)
print(result.diff)

Diffs

result = process(
    "Contact john@example.com for analysis",
    debug=True,
)
print(result.diff)

Diffs are generated by TraceContext.generate_diff() - the standalone DiffEngine module was removed in v0.4.1.


Agent tracing

from asha import Agent

agent = Agent(model="mock")
result = agent.run("prompt with john@x.com", trace=True)
print(result.output)
print(result.response)
print(result.adapter_info)

Without trace=True, agent.run() returns a string only.


Removed APIs

ASHADebugger, DebugTracer, and the debug/ package were removed in v0.4.1. Use trace=True / debug=True on process() instead.


CLI

asha "prompt with john@x.com" --debug --mode balanced