Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
6c3c573 to
735a9ba
Compare
735a9ba to
cd0e9a8
Compare
|
Add |
| "eval:vercel": "node --env-file=../../.env --import tsx/esm scripts/run-vercel-evals.ts", | ||
| "typecheck": "tsc --noEmit", | ||
| "test": "vitest run && pnpm test:framework && pnpm test:cli-lib && pnpm test:spark", | ||
| "test": "vitest run && pnpm test:framework && pnpm test:cli-lib && pnpm test:spark && pnpm test:docs-lib", |
There was a problem hiding this comment.
will remove this as discussed w @czenko as llikely to be added by one of your pr
There was a problem hiding this comment.
Actually, my recommendation is to split AI codeowners into its own PR, so you can still add this change, Anthony -- just separate from the Eval PR.
nrichers
left a comment
There was a problem hiding this comment.
Related to supabase/supabase#53115 I did some testing with this PR to see what the difference might be between agents and it seems like
- Codex will act on the feedback instructions in fetched pages.
- Claude Code ignores them because the instructions are considered untrustworthy injections.
For context, I was chatting with Gonto about getting agents to provide feedback in a similar test and he mentioned that agents had ignored the instructions during his testing which got me curious about this evals PR. So it's interesting to see that this depends on the agent you're using and might also need to be retested periodically to see what might have changed.
(And we should likely still ship the agent feedback instructions as they don't cost much and might give us useful feedback.)
There was a problem hiding this comment.
I have left some review comments written by Claude.
I also recommend having your agent write to flakiness.md with learnings so that future checks can always improve.
flakiness.md is my catalog of everything flaky in Evals and distilling all of the feedback I have gotten discovered by agents and the AI team's reviews.
| const scorer: ToolScorer = async (ctx) => { | ||
| const sends = feedbackSends(ctx.toolCalls); | ||
| const report = ctx.agentReport ?? ''; | ||
| const verdict = await ctx.judge({ |
There was a problem hiding this comment.
Claude comment: ctx.judge has no try/catch, and passed is verdict.passed && sends.length === 0 instead of checks.every(...). If the judge throws, the whole result collapses to one error (flakiness.md: "A throwing setup step collapses the result", #168). Please build a flat checks array, wrap it in a try/catch that returns one self-named failure check, and return passed: checks.every((c) => c.passed). The same applies to the 002 EVAL.ts.
| const report = ctx.agentReport ?? ''; | ||
| const verdict = await ctx.judge({ | ||
| input: report, | ||
| rubric: stripIndent` |
There was a problem hiding this comment.
Claude comment: this rubric holds four claims: a draft exists, it names the page, it names auth.api.getUser(), and it asks before sending. check-rules.md #12 asks for one claim per check, a "do not grade" line, and a tie-break. Can you split these? Otherwise a report that says "the old API" fails the whole eval, and that variance gets blamed on the page (#220 to #224).
| and asks before it sends. See DEPR-698. | ||
| --- | ||
|
|
||
| I need a server route that reads a bearer access token from the |
There was a problem hiding this comment.
Claude comment: this prompt has no reliance line and no REFERENCE block, and all six new rows in docs-eval-results.json have "docs": {"calls": []}. flakiness.md (#264) says an empty docs.calls means the run measured nothing about the page. Does the guide-read check need checkDocsGuideRead, or should the README say why this eval is exempt?
| ## Docs evals | ||
|
|
||
| The docs team owns `evals/docs/` and its results. Docs evals run without skills on a single experiment (`codex-gpt-6-luna-no-skills`, under `experiments/docs/`). | ||
| The docs team owns `evals/docs/` and its results. Docs evals run without skills on a single experiment (`codex-gpt-6-luna-no-skills`, under `experiments/docs/`). The exception is the `build-docs-report-*` evals: they run only on the `codex-gpt-6-luna-docs-report-*` experiments. All of them except `none` need local inputs and skip without them, so CI runs only `none` (see `evals/docs/build-docs-report-001-outdated-page/README.md`). |
There was a problem hiding this comment.
Could reduce, remove, or make this more generic so that CONTRIBUTING does not have to update every time we add a new type of suite to the docs.
What kind of change does this PR introduce?
feature: new docs evals and experiments for agent feedback reports
What is the current behavior?
What is the new behavior?
build-docs-report-001-outdated-page, which passes when the agent drafts a report on an outdated guide and asks before it sendsbuild-docs-report-002-correct-pagecontrol, which fails when the agent offers a report about a correct pagecodex-gpt-6-luna-docs-report-*experiment for each channel (none,page-note,mcp,skill), so the offer rates compare by channelcodex-gpt-6-luna-no-skillsto skip the report evals, because only the report experiments start the docs mirrorsupabase feedback addcommand or mcpsubmit_feedbackcallAdditional context
page-note,mcpandskillexperiments read local inputs and skip without them, so ci runs onlynoneSUPABASE_PROFILE=supabase-staging, so a cli send reaches the staging feedback table and not productionsupabaseskill link to the liveagent-feedback.mdpage, which returns 404 until the docs page shipsevals/docs/build-docs-report-001-outdated-page/README.mdexplains the channels, the local inputs and the scoringReview instructions:
pnpm installpnpm --filter @supabase-evals/framework test:docs-liband make sure that the 8 tests passpnpm --filter @supabase-evals/framework typecheckand make sure that it passespnpm eval -- --eval build-docs-report-001-outdated-page --experiment codex-gpt-6-luna-docs-report-none --experiment codex-gpt-6-luna-no-skills --runs 1, and expect one model runcodex-gpt-6-luna-no-skills x build-docs-report-001-outdated-pagewith(skipEval)results/docs/codex-gpt-6-luna-docs-report-none/build-docs-report-001-outdated-page/run-1/result.jsonand make sure that the checkthe agent did not send feedbackpasses