Skip to content

docs(designs): Add skills sdk design#528

Draft
mkmeral wants to merge 5 commits intostrands-agents:mainfrom
mkmeral:feature/skills-sdk-design
Draft

docs(designs): Add skills sdk design#528
mkmeral wants to merge 5 commits intostrands-agents:mainfrom
mkmeral:feature/skills-sdk-design

Conversation

@mkmeral
Copy link
Contributor

@mkmeral mkmeral commented Feb 5, 2026

WIP

Containerized Agent added 4 commits February 4, 2026 23:19
This design proposes adding a skills parameter to the Agent class for loading
and managing AgentSkills.io compatible skills.

Key features:
- Simple API: Agent(skills='./skills')
- Dynamic skill management between invocations
- Active skill tracking
- allowed_tools enforcement via hooks
- Session manager integration

Addresses: strands-agents/sdk-python#1181
- Follow documentation style guide (collaborative 'we', active voice)
- Teach the concept before diving into API details
- Show the problem first, then the solution
- Use concrete examples throughout
- Remove unnecessary complexity
- Clearer structure following the design template
Key changes to the Skills SDK design:

- Remove BeforeToolCallEvent hook approach for tool restrictions
- Add pre-filtering mechanism: filter tools BEFORE sending to model
- Model only sees tools it's allowed to use (cleaner, no wasted tokens)
- Add detailed implementation section showing the filtering flow
- Add 'Hook-Based Tool Enforcement' to Alternatives Considered section
  explaining why pre-filtering is the better approach

The insight: why show the model tools it can't use? Pre-filtering is
more efficient and requires no error recovery logic.
Less is more - the original doc is concise and matter-of-fact.
Removed verbose explanations, ASCII diagrams, and repetition.
@strands-agent
Copy link
Contributor

Documentation Deployment Failed

The documentation deployment encountered an error. Please check the deployment logs for more details.

- Add docstrings to API signatures (properties, class methods)
- Document error handling: SkillLoadError, when it's raised
- Clarify active_skill detection mechanism
- Add comment on allowed_tools=None meaning
- Show proper import patterns in module exports
- Reference DECISIONS.md re: why Skill doesn't extend HookProvider
- Document behavior for non-existent tools in allowed_tools (warn, don't fail)
@strands-agent
Copy link
Contributor

Documentation Deployment Failed

The documentation deployment encountered an error. Please check the deployment logs for more details.

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.

2 participants