feat(v1): rlm harness builtin_tools passthrough - #2487
Draft
hallerite wants to merge 1 commit into
Draft
Conversation
Companion to nano-rlm's contract-tooling change: the runtime contract gains an optional builtin_tools list, so the harness exposes it as a typed field. Sent on the wire only when set - pins that predate the field keep validating. Also syncs the BuiltinSkill names with nano-rlm main (bash, fetch).
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Companion to nano-rlm's contract-tooling change (PrimeIntellect-ai/nano-rlm#164), which moves builtin tool selection out of
RLM_TOOLING/RLM_BUILTIN_TOOLSenv vars and into theai.prime.rlm/runtime-v1contract.RLMHarnessConfig.builtin_tools: list[BuiltinTool] | None— the contract'sbuiltin_tools.None(default) keeps rlm'sipython-only tool set and stays off the wire, so nano-rlm pins that predate the field keep validating; setting it requires a pin that understands it (nano-rlm#164 or later).BuiltinSkillsynced with nano-rlm main's builtins (bash,fetchadded — thefetchskill+tool merged in nano-rlm#132).disabled_toolsrejection message updated (the tool set is no longer described as fixed).Motivation: the
fetchbuiltin tool is otherwise only reachable by smuggling env throughharness.env, exactly the pattern nano-rlm#160 removes everywhere else. This also makes a clean fetch-as-skill vs fetch-as-tool A/B expressible purely in config.Note
Add
builtin_toolspassthrough field toRLMHarnessConfigand expandBuiltinSkillsetbuiltin_tools: list[BuiltinTool] | Nonefield toRLMHarnessConfig; when set, it is included in the RLM runtime metadata payload, and whenNonethe key is omitted for backward compatibility with older pins.BuiltinToolLiteral type (bash,edit,fetch,ipython) and expandsBuiltinSkillfromedit/searchto also includebashandfetch.reject_disabled_toolsvalidator error message to point users atbuiltin_toolsandbuiltin_skillsinstead of claiming a fixed tool set.builtin_toolsis explicitly set.Macroscope summarized f6a75fb.