ReasoningBank boundary
Type: agentic-system-analyses/types/agentic-system-boundary.md
Boundary and evidence
ReasoningBank is in scope as a model-dependent memory system. This run covers the repository's shipped implementation, not just its retrieval API or the conceptual memory-item format. Its intended use is to derive reusable reasoning from agent trajectories and supply it to subsequent web-navigation and software-engineering tasks. The source describes that intent directly (SRC-1, README.md):
We introduce ReasoningBank, a memory mechanism for agents that learns from both successful and failed trajectories, with reasoning stored as memory content. ---
README.md
The target class is memory/knowledge/context-engineering system, with a whole-system boundary. This includes the shipped callers, agents, induction prompts, retrieval and embedding-cache maintenance, trajectory persistence, feedback evaluators, and scaling variant. The WebArena driver and modified mini-swe-agent batch runner are inside the target: they own persistence and subsequent consumption, rather than being unspecified external callers. Whole-system denotes functional coverage of the shipped memory loops; it does not assert that all entry points work or that every dependency is frozen.
The initial entry-point trace establishes both sides of the memory loop:
- WebArena:
WebArena/pipeline_memory.pyinvokesWebArena/run.py,WebArena/autoeval/evaluate_trajectory.py, andWebArena/induce_memory.pyin task order. The runner reloads the JSONL bank, selects records throughWebArena/memory_management.py, and writes selected content to the text file passed into the shipped agent.WebArena/agents/legacy/agent.pyreads that file into the system message. Induction uses success/failure instructions and appends new records to the bank (SRC-1, these paths). - SWE-Bench:
SWE-Bench/run.shentersthird_party/and callsmini-extra swebench. The script registration inthird_party/pyproject.tomland dispatch inthird_party/src/minisweagent/run/mini_extra.pylead tothird_party/src/minisweagent/run/extra/swebench.py. Itsprocess_instancereloads the bank, retrieves prior records, calls the agent with selected memory, saves a trajectory, judges that trajectory with a model, induces new items, and appends them.third_party/src/minisweagent/agents/default.pyplaces the selected content in its system message (SRC-1, these paths). - The WebArena scaling path is also included:
WebArena/pipeline_scaling.pylaunches trials and invokesWebArena/induce_scaling.py, whose instructions come fromWebArena/prompts/memory_instruction.py. Inclusion is not a claim that its sampling, feedback interpretation or client wiring is correct; those require mechanism-level review (SRC-1, these paths).
Minimum implementation passages supporting inclusion of the shipped producers and consumers follow. In the WebArena induction path:
# write memory to jsonl file with open(args.output_path, 'a') as f: f.write(json.dumps({ "task_id": args.task.split(".")[-1], "query": ex["query"], "think_list": ex["think_list"], "action_list": ex["action_list"], "status": ex["status"], "memory_items": generated_memory_item.split("\n\n"), "template_id": ex["template_id"] }) + '\n')---
WebArena/induce_memory.py
In the modified SWE-Bench runner, retained records are reloaded before retrieval:
with open(f"./memory/{model.config.model_name}.jsonl", "r") as f: memory_bank = [json.loads(line) for line in f.readlines()]---
third_party/src/minisweagent/run/extra/swebench.py
The same runner subsequently persists induced content:
with open(f"./memory/{model.config.model_name}.jsonl", "a") as f: f.write(json.dumps({ "task_id": instance_id, "query": task, "memory_items": generated_memory_item, "status": "success" if status else "fail", }) + "\n")---
third_party/src/minisweagent/run/extra/swebench.py
The frozen evidence is the acquired Git repository at ed80611788292ea739f1effd31f16c53823b8a0d, with applicability cutoff 2026-10-14. HEAD matched that pin on inspection; the checkout reported no working-tree changes. The overall evidence tier is code-grounded. Source reading establishes implementation structure and declared instructions, not successful execution, measured improvement, or causal effectiveness. No target execution, provider call, dependency installation or experiment was performed.
Repository coverage
Every top-level tracked file or directory is classified below. “Included” makes the material available for analysis within this boundary; initial inspection is distinguished from exhaustive auditing. Paths in this table are SRC-1 commit-relative anchors.
| Top-level tracked item | Decision and role | Initial inspection and limits |
|---|---|---|
.gitignore |
Excluded: repository hygiene. | Tree inventoried; content not inspected. No conclusion about which local outputs or credentials Git ignores. |
.python-version |
Included: interpreter selection. | Tree inventoried; content not yet inspected. No interpreter-compatibility conclusion. |
CONTRIBUTING.md |
Excluded: contribution process, not memory maintenance instructions. | Tree inventoried; content not inspected. No conclusion about contributor governance. Runtime induction instructions are included separately below. |
LICENSE |
Excluded: legal terms. | Tree inventoried; content not inspected. No licensing assessment. |
README.md |
Included: declared purpose, setup, entry points and dependency boundaries. | Read completely. Its performance framing and setup directions are doctrine/design, not execution evidence. |
SWE-Bench/ |
Included: shipped launcher and output accounting. | Read SWE-Bench/run.sh and SWE-Bench/compute_stats.py; traced launcher to the vendored batch runner. External benchmark grading is not thereby observed. |
WebArena/ |
Included: full web-task memory loop and feedback/scaling variants. | Inspected WebArena/pipeline_memory.py, WebArena/pipeline_scaling.py, runner reload/selection in WebArena/run.py, induction/persistence in WebArena/induce_memory.py and WebArena/induce_scaling.py, retrieval/cache writes in WebArena/memory_management.py, consumer injection in WebArena/agents/legacy/agent.py, and success/failure/parallel instructions in WebArena/prompts/memory_instruction.py. Traced WebArena/autoeval/evaluate_trajectory.py through saved feedback and searched WebArena/autoeval/evaluator.py. Also inventoried/searched alternate agents, prompting, client utilities, WebArena/config_files/generate_config_files.py, WebArena/utils/evaluate_trajectory.py, WebArena/webarena_patch.py and WebArena/reeval_memevol_prompt.py. These available ancillary paths are included but not yet exhaustively inspected; no claim of compatibility among all alternate entry points. |
assets/ |
Included: design illustrations referenced by README, assets/method.png and assets/reasoningbank.png. |
Tree inventoried; images not yet inspected. No figure-derived claim or unavailable-image gap. |
main.py |
Included: root executable. | Read completely; prints a greeting rather than running the memory loops. The material launchers are the benchmark paths above. |
pyproject.toml |
Included: root package metadata and dependencies. | Read completely; records BrowserGym, browser automation and model-client dependencies. Dependency declarations do not establish installed versions or successful setup. |
third_party/ |
Included: shipped modified runtimes, prompts, environments and evaluation machinery, not an excluded host. | Read script registration in third_party/pyproject.toml, CLI dispatch in third_party/src/minisweagent/run/mini_extra.py, and material memory lifecycle in third_party/src/minisweagent/run/extra/swebench.py. Inspected prompt injection in third_party/src/minisweagent/agents/default.py, instructions in third_party/src/minisweagent/memory/instruction.py, retrieval/cache maintenance in third_party/src/minisweagent/memory/memory_management.py; searched standalone third_party/src/minisweagent/memory/induce_memory.py. The tree also includes model/environment adapters, configs, interactive/single-instance runners and trajectory saving/inspection utilities. Vendored third_party/webarena/agent/, third_party/webarena/browser_env/, third_party/webarena/llms/, third_party/webarena/evaluation_harness/ and third_party/webarena/test.raw.json are included; searched evaluator routing and feedback code in third_party/webarena/evaluation_harness/evaluators.py. Ancillary adapters, raw fixtures and alternate runners are available but not yet exhaustively inspected, not access gaps. |
uv.lock |
Included: dependency-resolution metadata. | Tree inventoried; lock contents not yet inspected. No reproducibility or environment-reconstruction claim. |
External dependencies and conclusion limits
External provider services, credentials and model weights, BrowserGym's installed experiment runner, hosted benchmark websites/container images, SWE-Bench datasets/task repositories and the external SWE-Bench grading service are outside the frozen source. Their declared use is visible in SRC-1 README.md, pyproject.toml, WebArena/run.py and SWE-Bench/run.sh; their live behavior and exact deployment state are not captured. Consequently this analysis cannot establish live provider behavior, environment reproducibility, actual task success, agreement between model feedback and benchmark grading, or measured memory/scaling gains. Shipped adapters and vendored benchmark/evaluator modifications remain inside the boundary; responsibility for those changes is not attributed to an external host.
No external paper, linked upstream repository, live documentation page or new revision is registered. README claims may be treated as attributed design statements, not as independent evidence from its linked paper. No supplied execution trace or causal experiment is registered. Available but initially uninspected files at the frozen commit can be inspected by later analysts under SRC-1; this register is not a path allowlist.
Source register
| source ID | kind | identity/location | revision or capture | evidence layer | inspected scope | citation anchors | access gaps and conclusion prevented |
|---|---|---|---|---|---|---|---|
| SRC-1 | git | https://github.com/google-research/reasoning-bank |
ed80611788292ea739f1effd31f16c53823b8a0d | implementation; doctrine/design | Access root: /home/zby/llm/commonplace/.commonplace/worktrees/reasoning-bank-f0bedcab086c/related-systems/google-research--reasoning-bank. Implementation: entry-point, retention, reload, retrieval/cache, injection, feedback and scaling paths named in the coverage table. Doctrine/design: README setup/purpose and inspected success/failure/parallel induction prompts. Tracked tree inventoried in full; ancillary inspection limits are stated above. |
Implementation: WebArena pipeline, WebArena induction, SWE-Bench lifecycle. Doctrine/design: README, web memory instructions, coding memory instructions. | No missing material shipped memory-loop source identified. External environments/services and execution evidence are not captured: implementation and intent do not establish successful operation, benchmark effectiveness or causality. |