jwuthri-cloud / Tracely-ai
git clone https://github.com/jwuthri-cloud/Tracely-ai.git
Trace-native CI/CD for AI agents: grade production traces, cluster failures, freeze them into replayable regression tests, and block PRs that regress. Self-hostable.
+-14
stars, 24h Β· #62,413
+~7
stars, 7 days Β· #15,104
+1.2k
stars, 30 days Β· #725
1.2k
β
total Β· +1% this week
140
forks Β· 22 open issues
Star history (as recorded here)
LanguagePython
LicenseMIT
Created2026-10-11 (12d ago)
Last push4d ago
Watchers3
OwnerUser
GitHub topics
agent-evaluationai-agentsai-testingci-cdclickhousedeveloper-toolsllm-evaluationllm-observabilityllmopsmcpobservabilitypythonregression-testingself-hostedtracing
Links
- GitHub: github.com/jwuthri-cloud/Tracely-ai
- Homepage: https://tracely-ai.com
- Releases Β· Issues Β· Hacker News mentions
README excerpt
# Tracely ### Production failures become regression tests. **Trace-native CI/CD for AI agents.** Tracely grades every agent trace as it lands, clusters the failures into issues, freezes the bad runs into hermetic replayable cases, blocks the pull request that would ship them again β and tells you the moment any of it happens. production trace β failure detection β regression test β CI gate β alert **Website** Β· **Docs** Β· **Product guide** Β· **Agent skill** Β· **Guided tour** Β· **2-min demo** Β· **Design dossier** **Self-host the whole stack in one click** β API, worker, UI, Postgres, ClickHouse, Redis and MinIO: One workspace: what ran, what broke, what is already pinned as a test. --- ## Why another agent-observability tool? Because observability stops at the dashboard. You can see that your agent broke β then what? Every eval tool asks you to **hand-author a dataset**: sit down, invent questions, write ideal answers, keep them current as the product changes. That dataset is a guess about what might break. Production already handed you the real thing: a trace of the exact run that failed, with the exact input, the exact tool calls, the exact model responses. > **The recorded run _is_ the test.** Tracely freezes that trace into a hermetic regression case and > replays it on every PR. Everything else β quality scores, failure clusters, suggested fixes, CI > verdicts, trends, alerts β is **derived from the trace**. There are no hand-authored datasets. | | Dataset-first tools | Tracely | |---|---|---| | Where tests come from | You write them | Promoted from real failing traces | | Fidelity to production | A guess | The exact failing run, byte for byte | | Cost to replay in CI | Live model calls | **$0** β recorded tool/LLM fixtures | | What happens on regression | A dashboard number moves | **The PR is blocked** | | How you find out | You go and look | **It comes to you** β Slack, email, your own webhook | --- ## The loop Five steps, five pages in the app. ### 1 Β· Observe β every run, hierarchically Traces arrive over plain OTLP. Agent semantics (`agent.id`, `conversation.id`, `turn`, `step`) are promoted to first-class indexed columns, so runs group into conversation threads instead of a flat span soup. The waterfall shows agent β thinking β skill β generation β hand-off, with the failing span in red and its I/O beside it. Evaluators are **columns on the trace table**, not a separate tab β each one grades at conversation, run or span level and writes its verdict into the grid. Scores stream in live over SSE as judges finish, so you watch a run get graded in place. Tokens, cost, latency, metadata and the rolling per-turn summary are columns too. Two extra ways to read one conversation β a step-by-step replay, and a pixel-art office **Replay** walks the conversation event by event on a timeline. **Fleet** renders the same conversation as a room: each agent is a character, hand-offs are walks across the floor, tools are objects on the wall β whic