Skip to content

Releases: agenttracewoof/Agent-Trace

v0.2.0 — AgentTrace runs in public (M2)

Choose a tag to compare

@agenttracewoof agenttracewoof released this 30 Sep 12:57

What's new

AgentTrace runs in public — a decision can be opened and verified by anyone from a link, and the SDK installs from npm into an existing agent in about a minute.

Details

  • Hosted service. API and publisher run as one service on Render; /health reports the database, the queue, the publisher's lag behind the chain tip and RPC calls by method, and answers 503 when the database is unreachable.
  • Public pages. /verify checks a signed record against Solana in the browser with no AgentTrace backend in the path; /decisions/<id> shows a live decision with its verification state. The home page now says what the product is, who it is for, what a check can answer — and offers both actions.
  • SDK on npm: @agenttracewoof/sdk 0.2.1. createClient({ agent, policy }) with the hosted endpoint and AGENTTRACE_INGEST_KEY as defaults, and record({ model, steps, outcome }) for a finished decision in one call. Works under Jest ESM (fs errors from another realm no longer stop the first run).
  • Cheaper to run. Blockhash and fee reads are cached for 30 s: 2.56 RPC calls per decision instead of 4.9, which keeps 10 000 decisions a day inside the RPC provider's free plan.
  • The API refuses an agent key that is not a point on the Ed25519 curve.

Measured on the deployed service

  • SC-001 — p95 6.2 s from a finished decision to a checkable status, over a day at 10 000 decisions/day (2026-09-28 → 09-29 UTC).
  • SC-004 — 5 000 lamports per decision, about $0.0006 at SOL $119.
  • SC-002 — on two third-party projects (LangChain's ReAct starter, the LangGraph.js template), 59 s and 1 min 14 s from install to a verified decision; the integration adds 6 and 5 statements.

Not in this release, and worth saying out loud

  • Solana devnet, which is reset from time to time — no anchor here outlives the demo.
  • No accounts and no self-service keys yet: an ingest key comes from the operator.
  • No retention or eviction yet: at 10 000 decisions a day the free database fills in about four days.
  • Demo decisions on the site are generated by a test agent; the signature, the anchor and the verification are real.

Files changed

  • apps/api/src/health.ts, apps/api/src/app.ts — readiness /health with chain lag and RPC tally
  • apps/publisher/src/budget.ts, apps/publisher/src/loop.ts — cached chain reads, fewer calls per decision
  • apps/web/src/pages/Landing.tsx, apps/web/src/pages/Verify.tsx — showcase home page, in-browser verification
  • packages/sdk/ — publishable package: build, README, defaults, record(), realm-safe errno checks
  • render.yaml, .github/workflows/pages.yml — hosting
  • LICENSE — MIT

Migration

✅ No migration needed.

v0.1.0 — M1: an agent decision, anchored on devnet, verified from outside

Choose a tag to compare

@agenttracewoof agenttracewoof released this 20 Sep 14:55

What's new
Record an agent decision and verify it from outside — the full path works end to end: the SDK signs a decision locally, the API accepts only what already verifies, the publisher anchors it on Solana devnet, and a third party confirms it without asking AgentTrace anything.

Details
agenttrace-verify tells every state apart with its own exit code (0 verified · 2 tampered · 3 pending · 4 unavailable · 5 content-deleted; 1 means the check did not run), and prints every mismatch, not the first
the public decision page reads the anchor from the chain in the reader's browser, so verified never comes from our word — no anchor, no verified
the agent's private key never leaves the agent; secrets are redacted by allow-list before hashing, measured at 0 leaks over 200 decisions
measured on devnet, 10 decisions per run: decision → verifiable 5.4–6.4 s p95 (budget 10 s), SDK overhead 11.9–12.7 ms p95 (budget 50 ms), nothing lost while ingest was refusing connections
Files changed
packages/manifest — format, hashing, Merkle root, Ed25519, both anchor codecs
packages/sdk — recorder, redaction, local keystore, disk buffer, client
apps/api — ingest auth, agents, decisions, quotas, public read
apps/publisher — memo transaction and the batched anchoring pass
packages/verify — pure verification, chain/storage sources, the CLI
apps/web — public decision page and the verification state
packages/e2e — mock decision generator and the measured end-to-end run
Migration
⚠️ First deploy applies all three migrations: 0000_init, 0001_usage_daily, 0002_anchor_in_flight. Nothing is deployed yet — hosting lands in v0.2.0.

Not in this release, and worth saying out loud
demo data is mock — a test agent generates decisions from fixtures; the signature, the anchor and the verification are real, the decisions are not
no dashboard, no accounts, no retention — the database only grows
devnet, which gets reset — no anchor here is meant to outlive the demo
the envelope still comes from our own public read (owner storage lands in v0.4.0), so the independent half of a demo verification is the chain
SC-002 (integrate in 5 minutes, 10 lines) is self-assessed: it is measured on our own test agent, and only a third-party project can settle it
Try it
A standalone verifier page landed on main right after this tag and is live at https://agenttracewoof.github.io/Agent-Trace/ — it reads the chain from your browser and never calls AgentTrace.