AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证AI agent testing real user flows.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗AI agent that tests web user flows like a real user and reports what broke.
apps/web Next.js app (Vercel, root dir = apps/web)
apps/worker Python agent worker (Railway, Docker)
convex/ Convex schema + functions (deployed from apps/web, see apps/web/convex.json)
pnpm install
cd apps/web && npx convex dev # creates the deployment, writes .env.local, keeps functions synced
npx @convex-dev/auth # once: sets JWT_PRIVATE_KEY, JWKS, SITE_URL on the deployment
npx convex env set WORKER_SECRET <random>
pnpm dev:web # http://localhost:3000
Worker (Python 3.12):
cd apps/worker
python3.12 -m venv .venv && . .venv/bin/activate
pip install -e . && playwright install chromium
CONVEX_URL=... WORKER_SECRET=... GOOGLE_API_KEY=... python -m qagent_worker.main
See .env.example (Convex), apps/web/.env.example, apps/worker/.env.example.
WORKER_SECRET, DAILY_RUN_LIMIT, and run npx @convex-dev/auth --prod (sets SITE_URL to the Vercel URL + JWT keys). Copy a production deploy key.apps/web. Env: CONVEX_DEPLOY_KEY. vercel.json runs npx convex deploy --cmd 'pnpm build', which also sets NEXT_PUBLIC_CONVEX_URL.apps/worker (uses Dockerfile), EU region. Env: CONVEX_URL (the .convex.cloud URL), WORKER_SECRET, WORKER_ID, MAX_CONCURRENT_RUNS.apps/worker/qagent_worker/agent/graph.py: plan → fan-out execute_scenario (observe → decide → act loop, then
verify; max SCENARIO_PARALLELISM in parallel) → report. Fast model for planning/acting/verifying, smart model only
to re-check failed or low-confidence verdicts. Every LLM call is costed into run.cost. Requests to private/loopback/
metadata addresses are blocked on every request (security.py).
"Re-run" replays every previously passed scenario deterministically (role + accessible name selectors, no LLM). If a replay step or end-state check fails, that scenario falls back to the agent. Failed scenarios always re-run with the agent.
GET /health on $PORT (default 8080) is the Railway healthcheck.docs/submission/ (product access, technical, business plan, investor pitch).CONVEX_URL=... python apps/worker/tests/test_secret.pyconvex/crons.ts) re-queues it (1 retry), then marks it failed.