fix: update pricing to Trial tier + add dashboard quickstart example#250
fix: update pricing to Trial tier + add dashboard quickstart example#250
Conversation
- Landing page: Free → Trial (14d), 10K → 500K events, 7d → 30d retention - Landing page FAQ: update credit card answer for trial - README pricing table: Free → Trial, add dashboard events to all tiers - Add examples/dashboard_quickstart.py showing HttpSink integration (the missing funnel from SDK → paid dashboard) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 04c68cdfa9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
examples/dashboard_quickstart.py
Outdated
| with span.span(f"llm.completion", data={"model": "gpt-4o", "call": i}): | ||
| # Your real LLM call goes here | ||
| span.cost.add("gpt-4o", input_tokens=1000, output_tokens=500) | ||
| print(f" Call {i}: ${span.cost.total_usd:.2f} spent") |
There was a problem hiding this comment.
Read accumulated cost from CostTracker.total
This print statement accesses span.cost.total_usd, but CostTracker exposes total (see sdk/agentguard/cost.py), so the example crashes on the first iteration with AttributeError and never reaches the rest of the quickstart flow. This is reproducible whenever the script is run with an API key.
Useful? React with 👍 / 👎.
examples/dashboard_quickstart.py
Outdated
| try: | ||
| with span.span(f"llm.completion", data={"model": "gpt-4o", "call": i}): | ||
| # Your real LLM call goes here | ||
| span.cost.add("gpt-4o", input_tokens=1000, output_tokens=500) |
There was a problem hiding this comment.
Feed simulated spend into BudgetGuard.consume
The loop only calls span.cost.add(...), which updates trace cost metadata but does not update BudgetGuard state, so BudgetExceeded in this try/except path never fires and no budget warning/exceeded events are produced. In practice, the example claims to demonstrate budget enforcement but will keep running regardless of configured budget unless usage is explicitly consumed by the guard.
Useful? React with 👍 / 👎.
… API - Use budget.consume(cost_usd=...) to feed BudgetGuard (span.cost.add only tracks metadata, doesn't trigger guards) - Use estimate_cost() for realistic cost simulation - Fix: span.cost.total_usd doesn't exist, use budget.state.cost_used Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
examples/dashboard_quickstart.py— the first example showing HttpSink integration with the paid dashboard (critical missing funnel piece)Context
The dashboard
plans.tshas Trial/Pro/Team but the landing page and README still said Free/10K events/7-day. This creates confusion for anyone who signs up.The SDK examples all used local
JsonlFileSink— nobody was being shown how to connect to the dashboard. The new example is the SDK → dashboard funnel.Test plan
AG_API_KEY=ag_xxx python examples/dashboard_quickstart.pyagainst production🤖 Generated with Claude Code