Repository navigation
0.10.0: prompt version 8, the strategy's whole action, and every month - #11
Merged
Merged
Conversation
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.
0.10.0: find the gap between the 0.9.0 live agent and its own strategy, close it in prompt version 8, fix the hot-side comfort miss, and score everything on every local month. The envelope is unchanged from 0.9.0. The analysis, strategy and estimates were built from recorded runs and offline controllers before any live call; live Haiku months on all four months of the set follow them, and the phase 2 live run is published to the viewer.
Where the 0.9.0 live month left its strategy (
scripts/analyze_deviations.py: each hour, building and device againststrategy_plan_v7on the same observation, then the month's own replies replayed through the unchanged envelope with one class at a time put back to the strategy; control reproduces the published KPIs exactly)strategy_batteryin 2,150 of 2,157 building-hours and never used the tank. It did not start trims: its reasons ("overcooled but trim off so baseline cooling kept") show it read the v7 line thatnullis for "only when trim state is off or end" as "send null when the trim is off".Hot side (0.0181 against 0.0176): one building-hour, Building_1 at hour 404 (day 17, 9 pm), 0.10 C over the band after a 15 hour outage, in a room left about 1 C warmer than the baseline's overnight by the previous afternoon's 0.15 trim. The scripted v7 strategy has the same miss, and its extra warm hours on the tuning months follow the same pattern: a trim takes away the baseline's cushion of about 2 C below the setpoint.
Changes
strategy(cooling, dhw, battery fromstrategy_plan_v8, inside the envelope's ranges) withstrategy_reason, in place ofstrategy_battery. The prompt says a trim starts when an overcooled room's state is off and a held trim is a number;signal_outlookis dropped. Version 7 stays selectable.tune_strategy.py --version 8, 36 settings, comfort first; a first rule with cost held within 0.001 qualified none, documented in the CHANGELOG).hyperbolic/months.py,hyperbolic months,run --month,baseline --month): the phase 2 month plus tuning June, July and August, each its own episode, with a per-month and mean report.scripts/analyze_deviations.py: classes, attribution replays and v8 estimates.Every month, offline (cost / discomfort / too warm)
Ramping, both peaks and outage energy are in the README table; v8 moves ramping and peaks by 0.0031 at most against v7, and outage energy ties the baseline.
Estimates for a live v8 month (0.9.0 live replies with the v8 strategy filled in): cooling from
strategy, the agent's own battery: cost 0.9031, emissions 0.9447, discomfort 0.0374, too warm 0.0116, ramping 0.9977. Trims started but nothing else changed: 0.8920, 0.9337, 0.0417, 0.0181, 1.0051. Only live runs can show whether Haiku sends the strategy's cooling as given.Request size and cost: v8 requests average 9,456 characters against 10,748 for v7 (12.0 percent smaller). A Haiku month should cost about $0.42 (worst case $0.95 for 719 hours, $0.98 for 743); all four months about $1.69 to $1.78, each under its own $2.00 cap.
The 0.9.0 and 0.8.0 live months, the rule-based run and the committed baseline replay 719 of 719 hours, and
EnvelopeConfigis still pinned to 0.8.0 field by field.Live results (
claude-haiku-5-5, prompt version 8, $2.00 budget each; phase 2 run 20261023T160151Z, June 20261023T160150Z, July 20261023T160200Z, August 20261023T160206Z; scored withhyperbolic months --run)The full table with baseline, rule-based and v8 scripted per month is in the README and CHANGELOG.
docs/data) now shows the 0.10.0 phase 2 live run in place of 0.9.0 (cost down 9.6 percent, emissions down 5.5 percent). Phase 2 stays the published month so the viewer stays comparable with earlier releases.Tests: 277 passed locally (CI skips the 2 that need the live runs kept in
runs/). Repo checks passed.