Observed since 20 Oct, 23:34 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agent-trace-eval
Golden trace regression evaluation for tool-using AI agents
Golden trace regression evaluation for tool-using AI agents.
agent-trace-eval checks agent execution traces against declarative expectations for:
It is designed as a small, employer-neutral library you can use in CI to gate agent workflow changes.
pip install agent-trace-eval
For local development:
pip install -e ".[dev]"
Run the bundled examples:
agent-trace-eval \
--cases examples/cases \
--traces-dir examples/traces \
--report reports/example-report.md
Traces are JSON or YAML documents with an events list. Supported event types include:
tool_callhandoffrecovery_decisionfinal_answerExample:
{
"case_id": "refund_lookup",
"events": [
{
"type": "tool_call",
"name": "lookup_order",
"arguments": { "order_id": "12345" }
},
{
"type": "tool_call",
"name": "issue_refund",
"arguments": { "order_id": "12345" }
}
]
}
Cases are YAML or JSON files with id, description, input, and expect sections:
id: refund_lookup
description: Agent should look up an order before issuing a refund.
expect:
tools:
required: [lookup_order, issue_refund]
forbidden: [delete_account]
ordering:
before:
- first: lookup_order
second: issue_refund
arguments:
issue_refund:
order_id: "12345"
from agent_trace_eval import RegressionRunner, render_markdown_report
from agent_trace_eval.loader import load_case, load_trace
from agent_trace_eval.result import SuiteResult
case = load_case("examples/cases/refund_lookup.yaml")
trace = load_trace("examples/traces/refund_lookup.json")
runner = RegressionRunner()
result = runner.run_case(case, trace)
report = render_markdown_report(SuiteResult(case_results=[result]))
print(report)
This project complements a series on agent regression testing and release gates:
pytest
MIT
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
pyyamlEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pyyaml>=6.0 | runtime |
pytest-covEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pytest-cov>=5.0; extra == "dev" | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pytest>=8.0; extra == "dev" | runtime |
bdist_wheel · 13.7 KB · Python py3
sdist · 8.22 KB · Python source
Observed since 20 Oct, 23:34 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:693b774f76b9ce908c8e959945f8e5c858cdd16acfb4350103a69ed1a718013d