Files
wehub-resource-sync 426e9eeabd
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Waiting to run
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Waiting to run
Build Agent Image / build-and-push (push) Waiting to run
Chat shell gestures / Chat shell gesture + parity e2e (push) Waiting to run
ci / test (push) Waiting to run
ci / lint-and-format (push) Waiting to run
ci / build (push) Waiting to run
ci / dev-startup (push) Waiting to run
Cloud Gateway Discord / Test (push) Waiting to run
Cloud Gateway Webhook / Test (push) Waiting to run
Cloud Tests / lint-and-types (push) Waiting to run
Cloud Tests / unit-tests (push) Waiting to run
Cloud Tests / integration-tests (push) Waiting to run
Cloud Tests / e2e-tests (push) Blocked by required conditions
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Deploy Apps Worker (Product 2) / Determine environment (push) Waiting to run
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Blocked by required conditions
Deploy Eliza Provisioning Worker / Determine environment (push) Waiting to run
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Blocked by required conditions
Dev Smoke / Classify changed paths (push) Waiting to run
Dev Smoke / bun run dev onboarding chat (push) Blocked by required conditions
Dev Smoke / Vite HMR dependency-level smoke (push) Blocked by required conditions
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Waiting to run
gitleaks / gitleaks (push) Waiting to run
Markdown Links / Relative Markdown Links (push) Waiting to run
Publish @elizaos/example-code / check_npm (push) Waiting to run
Publish @elizaos/example-code / publish_npm (push) Blocked by required conditions
Publish @elizaos/plugin-elizacloud / verify_version (push) Waiting to run
Publish @elizaos/plugin-elizacloud / publish_npm (push) Blocked by required conditions
Quality (Extended) / Homepage Build (PR smoke) (push) Waiting to run
Quality (Extended) / Comment-only diff guard (push) Waiting to run
Quality (Extended) / Format + Type Safety Ratchet (push) Waiting to run
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Waiting to run
Quality (Extended) / Develop Gate (lint) (push) Waiting to run
Sandbox Live Smoke / Sandbox live smoke (push) Waiting to run
Snap Build & Test / Build Snap (amd64) (push) Waiting to run
Snap Build & Test / Build Snap (arm64) (push) Waiting to run
supply-chain / sbom (push) Waiting to run
supply-chain / vulnerability-scan (push) Waiting to run
Build, Push & Deploy to Phala Cloud / build-and-push (push) Waiting to run
Test Packaging / Validate Packaging Configs (push) Waiting to run
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Waiting to run
Test Packaging / Pack & Test JS Tarballs (push) Waiting to run
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Waiting to run
UI Fixture E2E / ui-fixture-e2e (push) Waiting to run
UI Fixture E2E / fixture-e2e (push) Waiting to run
UI Story Gate / story-gate (push) Waiting to run
vault-ci / test (macos-latest) (push) Waiting to run
vault-ci / test (ubuntu-latest) (push) Waiting to run
vault-ci / test (windows-latest) (push) Waiting to run
vault-ci / app-core wiring tests (push) Waiting to run
verify-patches / verify patches/CHECKSUMS.sha256 (push) Waiting to run
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Waiting to run
Voice Benchmark Smoke / voice bench smoke summary (push) Blocked by required conditions
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Waiting to run
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Waiting to run
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Waiting to run
Test Packaging / Build & Test PyPI Package (push) Waiting to run
Voice Workbench / headless workbench (mocked backends) (push) Has been cancelled
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:43:05 +08:00

4.9 KiB

HITL multi-Codex + gpt-5.5 benchmark runbook (#10193 / #10199)

How an operator with N authenticated OpenAI-Codex accounts runs the benchmark suite against gpt-5.5 through the Codex harness, rotating turns across accounts, and packages a human-reviewed scorecard.

This is a credential-gated (HITL) live run. It requires real logged-in Codex accounts and gpt-5.5 entitlement. There is no offline substitute for the model call — do not fabricate scores. The scaffolding (adapter, account selection, review wrapper, count/matrix reconciliation) is offline-verified; the model run below is the part a human with credentials performs.

1. What "N Codex accounts" means

The elizaOS runtime materializes one CODEX_HOME per authenticated account so a spawned codex process authenticates as that account instead of the machine's single ~/.codex login. Each home lives at:

<stateDir>/auth/_codex-home/<accountId>/
    auth.json      # chatgpt-mode tokens (written by coding-account-bridge.ts)
    config.toml    # pinned model

<stateDir> = $ELIZA_HOME (or the resolved per-user state dir, default ~/.local/state/eliza). To materialize a home, authenticate the account in the elizaOS runtime (Codex OAuth / ChatGPT login). The benchmark side does no OAuth — it only points CODEX_HOME at homes that already exist.

Verify what is materialized:

ls "${ELIZA_HOME:-$HOME/.local/state/eliza}/auth/_codex-home/"
# one directory per accountId, each containing auth.json

2. Preconditions

  • The codex CLI on PATH (or set CODEX_BIN).
  • At least one materialized CODEX_HOME with a valid auth.json.
  • gpt-5.5 entitlement on each account (orchestrator/profiles/gpt-5.5.json selects provider=openai, model=gpt-5.5).
  • The codex adapter installed: pip install -e codex-adapter/ (from packages/benchmarks/).

3. Run it

From packages/benchmarks/, run the single operator wrapper. It chains preflight → run → validate gates → review-package → verify-artifacts and fails loudly if any step can't proceed:

python -m benchmarks.orchestrator review \
  --benchmarks bfcl action-calling \
  --adapters codex \
  --model-profile gpt-5.5 \
  --accounts 3 \
  --reviewer-note "opened the codex trajectories per account and spot-checked tool calls" \
  --out benchmark_results/review/codex-gpt55
  • --accounts 3 selects the first 3 materialized accounts (sorted by id). --accounts acct-a,acct-c selects those exact ids in order. Omit it to use all materialized accounts.
  • --adapters codex resolves the Codex harness; --model-profile gpt-5.5 sets provider=openai model=gpt-5.5.
  • Turns round-robin across the selected accounts: turn i uses accounts[i % N].
  • --all runs every registered benchmark instead of --benchmarks <ids>.
  • --rerun-failed / --force control idempotency, forwarded to the run step.

The wrapper prints a per-step status line and exits nonzero if any step fails (a harness that can't run, a scorer that can't parse, missing trajectories, an incomplete/blocked readiness gate, or a committed generated artifact).

4. What lands where

Artifact Location
Per-benchmark run output (result JSON, trajectories, telemetry) benchmark_results/… (gitignored — never committed)
Normalized latest/ snapshot rows (<benchmark>__<harness>.json + index.json) benchmark_results/latest/ (gitignored)
Reviewed scorecard + manifest --out <dir> (e.g. benchmark_results/review/codex-gpt55/{scorecard.md,manifest.json})

Only the reviewed markdown scorecard and lightweight manifest are meant to leave the machine (attach them to the PR / issue evidence). Everything under benchmark_results/ is generated and gitignored; verify-artifacts (chained last) fails the wrapper if any generated output is staged for commit.

5. Transcribing to RESULTS_MATRIX.md

Only scores that clear validate-latest-* + review-package and come from benchmark_results/latest/ (never benchmark_results/baselines/) may be transcribed into docs/RESULTS_MATRIX.md. A cell with no committed graded latest/ run stays not-run. Do not invent a 1.00.

6. What is offline-verified vs. credential-gated

Offline-verified (in this change):

  • codex adapter resolves under --adapters codex;
  • --accounts <n|list> selection + round-robin iteration (codex-adapter/tests/);
  • the review wrapper wiring, preflight/validate/verify chaining, and loud failure when the run step lacks what it needs;
  • registry count (44) + matrix reconciliation guards (tests/test_ci_coverage.py).

Credential-gated (operator, live):

  • the actual gpt-5.5 model turns through each Codex account;
  • the resulting per-account trajectories and graded scores.

Mark the live run N/A with a reason in PR evidence when run in an environment without Codex credentials — never substitute a fabricated result.