Skip to content

feat: seed starter skills from tool providers at agent startup (#70) - #70

Merged
rockfordlhotka merged 1 commit into
mainfrom
feature/starter-skill-discovery
Feb 20, 2026
Merged

feat: seed starter skills from tool providers at agent startup (#70)#70
rockfordlhotka merged 1 commit into
mainfrom
feature/starter-skill-discovery

Conversation

@rockfordlhotka

Copy link
Copy Markdown
Member

Summary

  • Adds StarterSkillService (IHostedService) that seeds the skill store on startup with a skill for each registered IToolSkillProvider that doesn't already have one
  • Tool guides (memory, MCP, web, scheduling, scripts, skills) now flow through the normal skill discovery paths — session index injection and per-turn BM25 recall — making them as discoverable as user-created skills
  • Seeding is additive-only: existing skills are never overwritten, so the agent and dream cycle can refine content over time without being reset on every restart
  • Registered automatically via AgentMemoryExtensions.WithSkills() — no call-site changes needed

Problem solved

Tool guides were only accessible via on-demand tools (list_tool_guides / get_tool_guide), requiring the agent to proactively discover them. The agent naturally reaches for skills (pushed into context via session index + BM25 recall) but rarely thought to check for guides — leading to spotty MCP skill creation and missing foundational skills for memory and skill management.

Test plan

  • dotnet build RockBot.slnx — clean build, 0 errors
  • dotnet test RockBot.slnx — all tests pass
  • Deployed to k8s — confirmed all 6 skills seeded on first boot: memory, skills, mcp, web, scheduling, scripts
  • On subsequent restarts: "0 seeded, 6 already present" (no overwrite)

🤖 Generated with Claude Code

Tool guides (memory, MCP, web, etc.) were only accessible via on-demand
tools (list_tool_guides / get_tool_guide), requiring the agent to
proactively discover them. Skills are pushed into context via session
index injection and per-turn BM25 recall, so the agent naturally reaches
for them — but guides were not part of that flow.

StarterSkillService (IHostedService) seeds the skill store on startup
with a skill for each registered IToolSkillProvider that doesn't already
have one. This means memory, skills, mcp, web, scheduling, and scripts
guides appear in the session skill index and BM25 recall automatically,
making them as discoverable as user-created skills.

Seeding is additive-only: existing skills are never overwritten, so the
agent and dream cycle can refine content over time without it being reset
on every restart.

- New StarterSkillService in RockBot.Host
- Registered automatically via AgentMemoryExtensions.WithSkills()
- Added RockBot.Tools.Abstractions project reference to RockBot.Host

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@rockfordlhotka
rockfordlhotka merged commit a604bce into main Feb 20, 2026
2 checks passed
@rockfordlhotka
rockfordlhotka deleted the feature/starter-skill-discovery branch February 20, 2026 21:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant