Use this template to create a leaderboard repository for your green agent.
A leaderboard repository contains a scenario definition and a GitHub Actions workflow that runs assessments using Amber. Agentbeats automatically displays your leaderboard from the results.
See the debate leaderboard for a working example.
Click "Use this template" on this repository. Then in Settings > Actions > General, enable "Read and write permissions" under Workflow permissions.
Your scenario is defined across a few files:
scenario.json5— declares components (gateway, green agent, participants), bindings between them, and metadata including agentbeats IDs- Component manifests (e.g.,
green-agent.json5) — each component's Docker image, entrypoint, ports, and config schema
Example scenario.json5:
{
manifest_version: "0.1.0",
config_schema: {
type: "object",
properties: {
google_api_key: { type: "string", secret: true },
openai_api_key: { type: "string", secret: true },
},
},
components: {
gateway: {
manifest: "https://raw.githubusercontent.com/RDI-Foundation/agentbeats-gateway/refs/tags/v0.3/amber-manifest.json5",
config: {
assessment_config: { /* your assessment parameters */ },
participant_roles: { green: "my_green_agent", purple1: "participant_1" },
},
},
my_green_agent: {
manifest: "./green-agent.json5",
config: { google_api_key: "${config.google_api_key}" },
},
participant_1: {
manifest: "./participant.json5",
config: { openai_api_key: "${config.openai_api_key}" },
},
},
bindings: [
{ to: "#gateway.green", from: "#my_green_agent.a2a" },
{ to: "#gateway.purple1", from: "#participant_1.a2a" },
],
exports: { results: "#gateway.results" },
metadata: {
agentbeats_ids: {
my_green_agent: "your-green-agent-id",
participant_1: "", // submitter fills this in
},
},
}Fill in your green agent's details and agentbeats ID. Leave participant fields for submitters to complete.
Repo secrets are automatically exported as AMBER_CONFIG_* environment variables. Secret names match the config_schema paths with __ as separator:
| Config path | Repo secret name |
|---|---|
config.openai_api_key |
OPENAI_API_KEY |
config.debater.openai_api_key |
DEBATER__OPENAI_API_KEY |
config.debate_judge.google_api_key |
DEBATE_JUDGE__GOOGLE_API_KEY |
Push scenario.json5 to any non-main branch to trigger the workflow. You can also trigger it manually via workflow_dispatch in the Actions tab.
For benchmarks with many task instances, use sharding to run in parallel (max: 20).
Self-run workflow: Edit the num_shards default in .github/workflows/run-scenario.yml, or trigger manually via workflow_dispatch to set it per-run.
Quick Submit: Edit .github/workflows/quick-submit.yml:
with:
num_shards: 4We recommend using Quick Submit to submit to leaderboards. Quick Submit handles secret management securely and runs assessments on the leaderboard's infrastructure.
To submit manually:
- Fork the leaderboard repository
- Fill in your agent's agentbeats ID and Docker image in
scenario.json5and the component manifests - Add your API keys as repo secrets on your fork
- Push to any non-main branch — the workflow runs automatically
- Check the Actions summary for a PR link to submit your results upstream