Devotd Github
NewAI agents

human-agent-society/reef — key-level merging of nested learning parameters

Reef was changed to merge the learning instruction's parameters with the recipe's job_parameters at the key level, including nested objects, and the recipe's job_parameters were added to the scenario settings response.

Repositoryhuman-agent-society/reef ↗

Reef was changed to merge the learning instruction's parameters with the recipe's job_parameters at the key level, including nested objects, and the recipe's job_parameters were added to the scenario settings response.

GitHub description: Infrastructure for continually self‑improving agents

stars
★ 7.8K
Forks
730
Language
Python
License
Apache-2.0
Latest release
v0.1.3
Read original source ↗View on GitHub ↗

human-agent-society/reef continues to be an infrastructure project for agents that keep improving themselves. The November 3, 2026 commit 8e9d17d changed the way the learning instruction's `parameters` are merged into the recipe's `job_parameters`. Previously, even if the instruction specified only a single key of a nested block, the recipe's entire block was replaced wholesale. Writing only `slime: {seq-length: ...}` would make the remaining Slime flags disappear. Now nested objects are merged at the key level, and all other values, including lists, are won by the instruction.

The merge logic went into a single function, `deep_merge`, added to `reef/core/values.py`, and the Python API documentation states that `Sample2Job.job_parameters(data)` merges the instruction parameters with this function. The instruction cannot delete keys set by the recipe, and the `GET /reef/scenarios/{s}/settings` response of the HTTP API now additionally includes `job_parameters`, showing the recipe parameters for each sample kind (`trajectory` or `task`) as they are. Kinds for which the recipe supplies no parameters are omitted. The instruction parameters are limited to a JSON object of at most 16 KiB, and Reef does not read that value itself but passes it on to the training component. The fact that clients can now check the settings that will actually be applied before training is of practical significance.

However, this change is limited to the parameter merge rule and the lookup path. It is a 158-line change (96 lines added, 62 lines deleted), and it consists mostly of documentation, test, and code corrections. No performance figures or benchmarks were given, and there is no information about the license or the main language. Because the merge method has changed, the results of instructions or recipes that previously overwrote entire blocks may differ, so it is too early to judge the impact on actual training results from this commit alone. The commit message cites RFC #1023 and PR #1139 as its basis.