Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
d4d0952
Add AGS rollout buffer generator
FunJim Jul 7, 2026
a4b921d
Add AGS rollout concurrency
FunJim Jul 8, 2026
29a5e75
Log AGS rollout metrics
FunJim Jul 8, 2026
3a7ebad
Fix AGS rollout session isolation
FunJim Jul 9, 2026
ddc6e20
Add Harbor prompt data converter
FunJim Jul 10, 2026
615f25d
Add CodeBuddy Code AGS harness
FunJim Jul 10, 2026
bc76729
Add top_k to rollout sampling params
FunJim Jul 13, 2026
5ef5267
Add Weave tracing for AGS rollouts
FunJim Jul 14, 2026
c360ac8
Use stream JSON for CodeBuddy Code harness
FunJim Jul 14, 2026
e3df50e
Parse AGS Weave traces by agent
FunJim Jul 14, 2026
dccbcb2
Encode Harbor eval payloads with gzip+base64
FunJim Jul 15, 2026
a1d8b67
Add AGS wandb metrics hooks
FunJim Jul 15, 2026
1b8d561
Handle fan-out passrate metrics
FunJim Jul 16, 2026
7ef7e1f
Support AGS periodic eval
FunJim Jul 16, 2026
361e742
Support proxied AGS adapter smoke runs
FunJim Jul 17, 2026
349e5e3
Drain AGS rollout jobs before offload
FunJim Jul 17, 2026
fe33cd9
Add two-node AGS rollout buffer training script
FunJim Jul 17, 2026
699f9ae
Add four-node AGS rollout buffer training script
FunJim Jul 20, 2026
a3f953a
Reuse AGS adapter for periodic eval
FunJim Jul 20, 2026
e9796a4
Advance AGS prompt source by rollout id
FunJim Jul 20, 2026
3b6dd88
chore: Update save interval and WandB project name
FunJim Jul 20, 2026
554b1e7
chore: Harden AGS rollout buffer launch scripts
FunJim Jul 21, 2026
6ae28a1
chore: Tune AGS launch defaults and WandB ownership
FunJim Jul 22, 2026
2d956be
fix: Handle partial AGS rollout groups
FunJim Jul 23, 2026
b084ddc
fix: Preserve Harbor image workspace by default
FunJim Jul 23, 2026
9e40455
fix: Align AGS evaluation with Harbor semantics
FunJim Jul 23, 2026
6701272
chore: Tune AGS evaluation and sandbox defaults
FunJim Jul 23, 2026
38200c3
chore: Increase sandbox CPU and memory defaults
FunJim Jul 23, 2026
8586593
chore: Make uvicorn port configurable via env var
FunJim Jul 27, 2026
367291a
fix: Restore epoch when AGS prompt source seeks
FunJim Jul 28, 2026
c8a7310
Disable CodeBuddy auto memory in AGS rollouts
FunJim Jul 28, 2026
6df7c14
Add empty-patch guardrail to the AGS rollout
FunJim Jul 28, 2026
ddf5219
Keep text and reasoning on the OpenAI adapter's manager message
FunJim Jul 29, 2026
4c9cf9d
Set the AGS prompt style separately for training and eval
FunJim Jul 29, 2026
85b86b1
Let AGS eval stand up its own adapter, and stop the CLI overriding it…
FunJim Jul 29, 2026
0185e60
Add an eval-only AGS launcher for scoring a single checkpoint
FunJim Aug 4, 2026
3d63df9
Rename the Claude Code AGS examples for multi-harness use
FunJim Aug 5, 2026
be939b7
Add CodeBuddy launchers and cut the harness knobs to two per agent
FunJim Aug 5, 2026
6b24af2
Trigger agent auto-compaction by percentage of the real context window
FunJim Aug 5, 2026
3d22eee
fix(scripts): update wandb-dir path to LOG_DIR directly
FunJim Aug 6, 2026
fc9348f
Run the AGS generator tests in CI
FunJim Aug 6, 2026
76fdf32
Shim asyncio.timeout in the AGS generator test for Python 3.10
FunJim Aug 6, 2026
19079d6
Align the DP schedule by repacking when no bin can be split
FunJim Aug 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/workflows/pr-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -744,6 +744,18 @@ jobs:
{
"num_gpus": 0,
"test_file": "test_agent/test_agent_rollout_cpu.py"
},
{
"num_gpus": 0,
"test_file": "test_rollout_buffer/test_ags_prompt_source.py"
},
{
"num_gpus": 0,
"test_file": "test_rollout_buffer/test_ags_empty_patch_guard.py"
},
{
"num_gpus": 0,
"test_file": "test_rollout_buffer/test_ags_generator.py"
}
]
defaults:
Expand Down Expand Up @@ -774,6 +786,8 @@ jobs:
pip install torch --index-url https://download.pytorch.org/whl/cpu
pip install pytest numpy packaging pyyaml omegaconf tqdm httpx requests ray pybase64 pylatexenc sympy aiohttp pillow safetensors

pip install openai transformers wandb fastapi uvicorn


- name: Install
shell: bash
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/pr-test.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,15 @@
'label': 'run-ci-agent',
'always': True,
'cpu': True,
'extra_pip_deps': 'openai transformers wandb fastapi uvicorn',
'tests': [
{'test_file': 'test_agent/test_trajectory_manager_branching.py', 'num_gpus': 0},
{'test_file': 'test_agent/test_adapters.py', 'num_gpus': 0},
{'test_file': 'test_agent/test_harness.py', 'num_gpus': 0},
{'test_file': 'test_agent/test_agent_rollout_cpu.py', 'num_gpus': 0},
{'test_file': 'test_rollout_buffer/test_ags_prompt_source.py', 'num_gpus': 0},
{'test_file': 'test_rollout_buffer/test_ags_empty_patch_guard.py', 'num_gpus': 0},
{'test_file': 'test_rollout_buffer/test_ags_generator.py', 'num_gpus': 0},
],
},

Expand Down
21 changes: 21 additions & 0 deletions examples/coding_agent_rl_ags/eval_cbc_qwen35_35b_a3b_swe_2nodes.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/usr/bin/env bash
# Score one checkpoint on SWE-bench Verified with the CodeBuddy Code (cbc)
# harness, 2 nodes, no training.
#
# Thin wrapper: the launcher logic lives in eval_cc_qwen35_35b_a3b_swe_2nodes.sh
# and is harness-agnostic -- SWE_AGENT selects the harness, and that script sets
# both harnesses' EXTRA_ARGS/EXTRA_ENVS knobs -- so there is one copy to keep correct.
#
# Every variable the CC eval script reads works here too:
# LOAD_DIR=<ckpt_root> CKPT_STEP=99 EVAL_DATA=<jsonl> \
# bash examples/coding_agent_rl_ags/eval_cbc_qwen35_35b_a3b_swe_2nodes.sh
#
# Omit LOAD_DIR/CKPT_STEP to score the untrained HF model as the baseline.
set -euo pipefail

SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"

export SWE_AGENT=codebuddy_code
export EXP_TAG="${EXP_TAG:-coding_agent_rl_ags_eval_cbc_qwen35_35b_a3b${CKPT_STEP:+_step${CKPT_STEP}}}"

exec bash "${SCRIPT_DIR}/eval_cc_qwen35_35b_a3b_swe_2nodes.sh" "$@"
598 changes: 598 additions & 0 deletions examples/coding_agent_rl_ags/eval_cc_qwen35_35b_a3b_swe_2nodes.sh

Large diffs are not rendered by default.

21 changes: 21 additions & 0 deletions examples/coding_agent_rl_ags/run_cbc_qwen35_35b_a3b_swe_2nodes.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/usr/bin/env bash
# GRPO training on SWE-rebench with the CodeBuddy Code (cbc) harness, 2 nodes.
#
# Thin wrapper: the launcher logic lives in run_cc_qwen35_35b_a3b_swe_2nodes.sh
# and is harness-agnostic -- SWE_AGENT selects the harness, and that script sets
# both harnesses' EXTRA_ARGS/EXTRA_ENVS knobs. Duplicating ~370 lines per harness
# would guarantee the two copies drift, which is the failure this rename cleans up.
#
# Everything the CC script accepts works here too, e.g.
# PROMPT_DATA=... NUM_ROLLOUT=50 bash run_cbc_qwen35_35b_a3b_swe_2nodes.sh
#
# Usage (from a long-lived shell / tmux on the head node, inside the container):
# bash examples/coding_agent_rl_ags/run_cbc_qwen35_35b_a3b_swe_2nodes.sh
set -euo pipefail

SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"

export SWE_AGENT=codebuddy_code
export EXP_TAG="${EXP_TAG:-coding_agent_rl_ags_cbc_qwen35_35b_a3b_2nodes}"

exec bash "${SCRIPT_DIR}/run_cc_qwen35_35b_a3b_swe_2nodes.sh" "$@"
14 changes: 14 additions & 0 deletions examples/coding_agent_rl_ags/run_cbc_qwen35_35b_a3b_swe_4nodes.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
# GRPO training on SWE-rebench with the CodeBuddy Code (cbc) harness, 4 nodes.
#
# Thin wrapper around the harness-agnostic 4-node launcher; see
# run_cbc_qwen35_35b_a3b_swe_2nodes.sh for why these are wrappers rather than
# copies.
set -euo pipefail

SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"

export SWE_AGENT=codebuddy_code
export EXP_TAG="${EXP_TAG:-coding_agent_rl_ags_cbc_qwen35_35b_a3b_4nodes}"

exec bash "${SCRIPT_DIR}/run_cc_qwen35_35b_a3b_swe_4nodes.sh" "$@"
Loading
Loading