feat(v1): bump rlm pin to nano-rlm main, expose guardrail and role-append knobs - #2492
Conversation
7fba627 to
8df93ad
Compare
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This change alters the default RLM execution model by enabling nano-rlm’s recursive default and adds tree-wide budgets, tool limits, role-specific prompts, and new skills through an updated runtime dependency. An unresolved review finding also identifies configurations that can pass local validation but fail when the RLM session starts. You can add or adjust custom eligibility rules. Learn more. |
8df93ad to
973270c
Compare
…pend knobs Bumps the default nano-rlm ref from 4ef3438 to 240090d, picking up the merged execution guardrails (#158) and role-aware sub-agent prompting (#151 + #166), and exposes the matching harness config: - max_total_turns / max_total_tokens: tree-total budgets (tokens counted as NEW work: completion + uncached prompt) - max_tool_output_bytes: per-tool-result truncation override - max_concurrent_subagents: overrides the max(4, max_depth) default - append_to_system_prompt (joined after the taskset system prompt), subagent_append_to_system_prompt, leaf_append_to_system_prompt - builtin_skills now accepts bash and fetch Optional knobs go on the wire only when set, so older pins that predate a field keep validating. Payload shapes (new-full and legacy-minimal) validated against nano-rlm's runtime-v1 contract at the new pin. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
973270c to
a201007
Compare
| """Git ref (branch, tag, or commit) of nano-rlm to install. Must know every | ||
| field this harness puts on the wire, i.e. be at least the default ref.""" | ||
| max_depth: NonNegativeInt | None = None | ||
| """Recursion depth RLM may spawn sub-agents to; `None` = nano-rlm's default (1). |
There was a problem hiding this comment.
should we myb not spell out the actual default value so that this cannot diverge?
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a201007. Configure here.
| raise ValueError( | ||
| "`max_concurrent_subagents` must be at least `max_depth` " | ||
| "(nano-rlm rejects the policy otherwise)." | ||
| ) |
There was a problem hiding this comment.
Concurrent default undershoots max depth
Medium Severity
When max_concurrent_subagents is left unset, the policy omits it and nano-rlm applies a fixed default of 4. That can be below max_depth, which nano-rlm rejects. The new validator only compares the two knobs when both are set, so this config is accepted and then fails at session start.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit a201007. Configure here.


Companion to the recently merged nano-rlm work. Two parts:
Pin bump:
4ef3438→240090dThe new default picks up everything merged to nano-rlm main since the compaction pin:
max_total_turns/max_total_tokensbudgets (tokens counted as new work: completion + uncached prompt; every engine stops gracefully once spent), andmax_tool_output_bytesoverriding the built-in 20KB per-tool-result truncation.subagent_…/leaf_…with leaf → subagent → root fallback), plus root-prompt clarity fixes. Validated on a 3-model, 32-task SWE-bench Pro before/after (never worse, slightly cheaper on every model).extra="ignore").New harness config knobs
max_total_turnspolicy.max_total_turnsmax_total_tokenspolicy.max_total_tokensmax_tool_output_bytespolicy.max_tool_output_bytesmax_concurrent_subagentspolicy.max_concurrent_subagentsmax(4, max_depth)append_to_system_promptsubagent_append_to_system_promptleaf_append_to_system_promptbuiltin_skills"bash","fetch"Compatibility: the payload always carries the full field set of the
runtime-v1contract at the default pin (unset knobs go as explicitNone), validated against nano-rlm's contract models. The harness was already unconditionally sending post-compaction fields, so the effective rule stays what it was:versionmust be at least the default ref — pinning older refs than the harness's contract era is unsupported.Related: #2487 (builtin tools passthrough,
RLM_BUILTIN_TOOLS) stays separate — this PR only widens the skills literal.Note
Bump
RLMHarnessConfigrlm pin to240090dand add guardrail and prompt-append knobsversionfrom4ef3438to240090dand expandsBuiltinSkillto include"bash"and"fetch".max_concurrent_subagents,max_total_turns,max_total_tokens,max_tool_output_bytes, and threeappend_to_system_promptvariants (global, subagent, leaf) with precedence/fallback semantics.max_depthtype changes fromint(default0) toOptional[NonNegativeInt](defaultNone):Nonedefers to nano-rlm's default of1,0disables recursion._runtime_metadatanow conditionally includes policy keys only when configured and no longer forcesmax_concurrent_subagentstomax(4, max_depth).max_concurrent_subagentsis set lower thanmax_depth; previous consumers relying on the hardcoded concurrent-subagent floor will now get nano-rlm defaults orNoneinstead.Macroscope summarized a201007.
Note
Medium Risk
Changes default recursion/concurrency behavior when configs omit fields, and wires new execution budgets into the nano-rlm runtime contract.
Overview
Bumps the default nano-rlm install ref from
4ef3438to240090dand widensbuiltin_skillsto allowbashandfetchin addition toeditandsearch.RLMHarnessConfiggains optional knobs that map into the runtimepolicyand prompt contract: tree-widemax_total_turns/max_total_tokens, per-toolmax_tool_output_bytes,max_concurrent_subagents, plus root/sub-agent/leafappend_to_system_promptfields.max_depthis nowNonNegativeInt | None(unset defers to nano-rlm’s default instead of hard-coding0), with validation thatmax_concurrent_subagents≥max_depthwhen both are set._runtime_metadatamerges the taskset system prompt withappend_to_system_prompt, forwards the new sub-agent/leaf append fields, and omits policy keys whose values areNoneso nano-rlm defaults apply—replacing the prior always-sentmax_depthand computedmax(4, max_depth)for concurrency.Reviewed by Cursor Bugbot for commit a201007. Bugbot is set up for automated code reviews on this repo. Configure here.