Step 7.5: daily dream loop with task-shaped directives#12
Merged
rockfordlhotka merged 1 commit intomainfrom Apr 23, 2026
Merged
Step 7.5: daily dream loop with task-shaped directives#12rockfordlhotka merged 1 commit intomainfrom
rockfordlhotka merged 1 commit intomainfrom
Conversation
Wire agent.AddScheduling() + agent.WithDreaming() in Program.cs. Enable five subtypes relevant to a browser worker (main orchestrator, skill-optimize, skill-gap, sequence-skill, memory-mining); disable the eight personality-agent subtypes (preference, episode, tier-routing, entity, graph-consolidation, identity, DLQ, Wisp). RockBot ships no default directive content — intentionally, since the framework can't know what any given agent needs. Foragent authors its own five directives under src/Foragent.Agent/directives/, shipped via CopyToOutputDirectory so they land at /app/directives/ in the container. DreamService resolves each directive relative to AgentProfileOptions.BasePath, which Program.cs configures to "directives" (resolved against AppContext.BaseDirectory for relative values — confirmed by IL inspection). Dreams are opt-in: ForagentDreams:Enabled defaults false so `dotnet run` smoke tests don't burn tokens; docker-compose.yml sets it true for the full harness. Cron defaults to daily 03:00 UTC — framework default of every 12h is too frequent. ProtectedSkillPrefixes stays empty deliberately so operator primers get improved rather than frozen. framework-feedback.md step-7.5 entry captures the directive intentionality, the AgentProfileOptions.BasePath resolution path, and a candidate companion-package offering (Directives.Personality / Directives.Task) that would reduce onboarding cost without compromising the no-hardcoded-content principle. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Replaces #11 (auto-closed when the step-7 branch was deleted after #10 merged). Rebased cleanly onto main; no code changes vs #11.
Summary
agent.AddScheduling()+agent.WithDreaming()inProgram.cs. Opt-in viaForagentDreams:Enabled— default false inappsettings.jsonsodotnet runsmoke sessions don't burn tokens;docker-compose.ymlsets it true.src/Foragent.Agent/directives/, shipped with the binary viaCopyToOutputDirectory.DreamServiceresolves these relative toAgentProfileOptions.BasePath(confirmed via IL inspection — relative paths combine againstAppContext.BaseDirectory).ProtectedSkillPrefixesstays empty on purpose so operator primers (like the seededsites/bsky.app/login) get improved by the dream rather than frozen.Manual test plan
dotnet buildclean, 51 agent + 10 browser unit tests still green.dotnet buildoutput contains all 5 directives atbin/Release/net10.0/directives/.docker compose up --build— verify startup log showsForagentDreams enabled; daily dream pass on schedule '0 3 * * *'.docker compose exec foragent ls /app/directives/lists all 5 markdowns.ForagentDreams__Enabled=falsepath also logs correctly.Framework feedback
docs/framework-feedback.mdgains a Step 7.5 section:RockBot.Host.Directives.Personality/RockBot.Host.Directives.Task) with selectable starter sets.DreamServicetakes 17 ctor dependencies covering every subtype whether enabled or not — lower-priority refactor candidate.ProtectedSkillPrefixesis literal-only (StartsWith); wildcard patterns would be a natural extension.🤖 Generated with Claude Code