diff --git a/README.md b/README.md index 3e64122..b641b56 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,27 @@ bash run_config/tw/opus-4p6_claude-code.sh To create your own config, copy an existing one and modify the agent, model, and parameters. +### Gemini via the Antigravity CLI + +`run_config/*/gemini-3p6-flash_antigravity.sh` runs Gemini under Google's own +Antigravity CLI (`agy`) instead of Claude Code or mini-swe-agent. Set +`GEMINI_API_KEY` in `.env`; the allowed agent host is +`generativelanguage.googleapis.com`. + +Two things to know before trusting the numbers: + +- Harbor's `antigravity-cli` agent needs + [harbor#2776](https://github.com/harbor-framework/harbor/pull/2776) and + [harbor#2687](https://github.com/harbor-framework/harbor/pull/2687), both open + but unmerged as of 2026-08-18. Without them, settings are written where `agy` + does not read them, `GEMINI_API_KEY` is ignored in favour of an interactive + login that hangs headless, no trajectory is collected, and — absent + `--add-dir` — file-producing tasks can write outside the workdir and score + zero. Test Writing is the track most exposed to that last one. +- `agy` rejects model ids outside its client-side allowlist before any request + leaves the process, so `--model` failures are not quota or auth problems. + Which ids are accepted depends on your key's entitlement. + ## Citation If you use SWE Atlas in your research, please cite our paper: diff --git a/run_config/qa/gemini-3p6-flash_antigravity.sh b/run_config/qa/gemini-3p6-flash_antigravity.sh new file mode 100755 index 0000000..48ddc98 --- /dev/null +++ b/run_config/qa/gemini-3p6-flash_antigravity.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# Gemini under Google's own Antigravity CLI (agy) rather than Claude Code or +# mini-swe-agent. Requires GEMINI_API_KEY in .env. +# +# The model id is what agy's client-side allowlist accepts in Gemini Developer +# API mode; newer ids depend on your key's entitlement and are rejected before +# any request is sent, so change it only if you have verified yours. +set -euo pipefail + +# Load credentials +set -a +source "$(dirname "$0")/../../.env" +set +a + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +: "${GEMINI_API_KEY:?Set GEMINI_API_KEY in .env}" + +harbor run \ + -p ./data/qa \ + -a antigravity-cli \ + -m "google/gemini-3.6-flash" \ + -e modal \ + --ek 'keepalive=["-c","sleep infinity"]' \ + -k 1 \ + -n 12 \ + --ae "GEMINI_API_KEY=${GEMINI_API_KEY}" \ + --allow-agent-host generativelanguage.googleapis.com \ + --agent-include-logs '**' \ + -o results/qa/ \ + --job-name "gemini-3p6-flash_antigravity" diff --git a/run_config/rf/gemini-3p6-flash_antigravity.sh b/run_config/rf/gemini-3p6-flash_antigravity.sh new file mode 100755 index 0000000..c1826e2 --- /dev/null +++ b/run_config/rf/gemini-3p6-flash_antigravity.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# Gemini under Google's own Antigravity CLI (agy) rather than Claude Code or +# mini-swe-agent. Requires GEMINI_API_KEY in .env. +# +# The model id is what agy's client-side allowlist accepts in Gemini Developer +# API mode; newer ids depend on your key's entitlement and are rejected before +# any request is sent, so change it only if you have verified yours. +set -euo pipefail + +# Load credentials +set -a +source "$(dirname "$0")/../../.env" +set +a + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +: "${GEMINI_API_KEY:?Set GEMINI_API_KEY in .env}" + +harbor run \ + -p ./data/rf \ + -a antigravity-cli \ + -m "google/gemini-3.6-flash" \ + -e modal \ + --ek modal_vm_runtime=true \ + -k 1 \ + -n 12 \ + --ae "GEMINI_API_KEY=${GEMINI_API_KEY}" \ + --allow-agent-host generativelanguage.googleapis.com \ + --agent-include-logs '**' \ + -o results/rf/ \ + --job-name "gemini-3p6-flash_antigravity" diff --git a/run_config/tw/gemini-3p6-flash_antigravity.sh b/run_config/tw/gemini-3p6-flash_antigravity.sh new file mode 100755 index 0000000..7112fd8 --- /dev/null +++ b/run_config/tw/gemini-3p6-flash_antigravity.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# Gemini under Google's own Antigravity CLI (agy) rather than Claude Code or +# mini-swe-agent. Requires GEMINI_API_KEY in .env. +# +# The model id is what agy's client-side allowlist accepts in Gemini Developer +# API mode; newer ids depend on your key's entitlement and are rejected before +# any request is sent, so change it only if you have verified yours. +# +# TW runs with network access restricted to an allowlist, so the agent's own +# API host has to be named explicitly -- see HARBOR_AGENT_ALLOWED_HOST in the +# README. For agy that host is generativelanguage.googleapis.com. +set -euo pipefail + +# Load credentials +set -a +source "$(dirname "$0")/../../.env" +set +a + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +HARBOR_BIN="${HARBOR_BIN:-harbor}" +: "${GEMINI_API_KEY:?Set GEMINI_API_KEY in .env}" + +"$HARBOR_BIN" run \ + -p ./data/tw \ + -a antigravity-cli \ + -m "google/gemini-3.6-flash" \ + -e modal \ + --ek 'keepalive=["-c","sleep infinity"]' \ + -k 1 \ + -n 12 \ + --ae "GEMINI_API_KEY=${GEMINI_API_KEY}" \ + --allow-agent-host "${HARBOR_AGENT_ALLOWED_HOST:-generativelanguage.googleapis.com}" \ + --agent-include-logs '**' \ + -o results/tw/ \ + --job-name "gemini-3p6-flash_antigravity"