-
Notifications
You must be signed in to change notification settings - Fork 2
Add programmatic memory harness #61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
e7f6586
Add programmatic memory harness
yourconscience e4abc0f
Add shared max_steps cap and honest bundled-comparison framing for pilot
yourconscience 337151a
Fix ruff format in test_runner.py
yourconscience b52d91b
fix: split reporting by model+harness so same-model runs don't collapse
yourconscience de14f88
Fix whole-token history search
yourconscience 17c3772
Use canonical agent state for retrieval
yourconscience File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,74 @@ | ||
| # Small pilot comparison for docs/PROGRAMMATIC_MEMORY_PROPOSAL.md. | ||
| # Holds model, temperature, quest set, quest_timeout, and max_steps constant | ||
| # across the five harnesses in the proposal's "Primary comparison" table. | ||
| # | ||
| # This is an EXPLORATORY BUNDLED-HARNESS COMPARISON, not an isolated | ||
| # single-dimension treatment: programmatic_memory simultaneously removes | ||
| # CompactionMemory (compaction) and replaces tool_compact's clipped | ||
| # quest_history search with full read/search, and its tool/prompt path also | ||
| # differs from reasoning_recent's (tool-select-then-act loop, calculator and | ||
| # scratchpad tools, memo-producing prompt) rather than varying retrieval | ||
| # fidelity alone. A result from this pilot cannot attribute a success-rate or | ||
| # cost change to programmatic retrieval specifically -- it can only say | ||
| # whether the programmatic_memory harness, as a whole, out- or | ||
| # under-performs each existing baseline harness on this quest set. Isolating | ||
| # retrieval fidelity from compaction would need a separate ablation family | ||
| # (e.g. compaction on/off with retrieval fixed, and retrieval fidelity varied | ||
| # with compaction fixed); that is out of scope for this pilot. | ||
| # | ||
| # Quests are reused from existing benchmark configs (exp3/exp5/exp6, | ||
| # memory_modes_pilot) and the fake-provider e2e smoke quest rather than | ||
| # cherry-picked for this comparison: Boat.qm is a short stateful puzzle | ||
| # (present locally, always runnable), Banket_eng.qm and Borzukhan_eng.qm are | ||
| # longer multi-turn quests already exercised together in | ||
| # tests/integration/test_mode_agents_e2e.py. This is a pilot scale to validate | ||
| # the matrix and artifacts before increasing repetitions or quest count. | ||
| name: programmatic_memory_pilot | ||
| quests: | ||
| - quests/Boat.qm | ||
| - quests/sr_2_1_2121_eng/Banket_eng.qm | ||
| - quests/sr_2_1_2121_eng/Borzukhan_eng.qm | ||
| agents: | ||
| # Minimal bounded-context baseline: recent context only, no external history. | ||
| - model: openrouter:google/gemini-3-flash-preview | ||
| harness: reasoning_recent | ||
| temperature: 0.4 | ||
| runs: 3 | ||
|
|
||
| # Capacity-heavy baseline: full transcript in every prompt, no external history. | ||
| - model: openrouter:google/gemini-3-flash-preview | ||
| harness: reasoning_full | ||
| temperature: 0.4 | ||
| runs: 3 | ||
|
|
||
| # Summary baseline: recent context plus LLM-compacted summary/memo. | ||
| - model: openrouter:google/gemini-3-flash-preview | ||
| harness: memo_compact | ||
| temperature: 0.4 | ||
| runs: 3 | ||
| compaction_interval: 10 | ||
|
|
||
| # Current closest tool baseline: compacted memory plus clipped keyword search. | ||
| - model: openrouter:google/gemini-3-flash-preview | ||
| harness: tool_compact | ||
| temperature: 0.4 | ||
| runs: 3 | ||
| compaction_interval: 10 | ||
|
|
||
| # Proposed treatment: recent bounded context plus full read/search retrieval, | ||
| # no LLM compaction. | ||
| - model: openrouter:google/gemini-3-flash-preview | ||
| harness: programmatic_memory | ||
| temperature: 0.4 | ||
| runs: 3 | ||
|
|
||
| debug: false | ||
| quest_timeout: 600 | ||
| # Shared step cap: reasoning_recent/reasoning_full make one model call per | ||
| # decision while tool_compact/programmatic_memory can make two, so without a | ||
| # shared max_steps a faster one-call harness could execute more quest actions | ||
| # before quest_timeout than a slower one, confounding success/timeout | ||
| # comparisons independent of the memory/retrieval difference under test. | ||
| max_steps: 60 | ||
| max_workers: 2 | ||
|
yourconscience marked this conversation as resolved.
|
||
| output_dir: results/benchmarks | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.