-
Notifications
You must be signed in to change notification settings - Fork 100
feat: implement progressive disclosure for skills #1484
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Add AgentSkills-compliant skill data flow: - Add to_prompt() function for generating XML skill listings - Add validate_skill() function for directory validation - Add SkillResources model for scripts/references/assets directories - Add description and resources fields to Skill model - Update SkillValidationError to include errors list - Implement progressive disclosure in get_system_message_suffix(): - Triggered skills show in <available_skills> with name, description, location - Repo skills show full content in <REPO_CONTEXT> - Update system_message_suffix.j2 template with <SKILLS> section - Add tests for new functionality Co-authored-by: openhands <openhands@all-hands.dev>
Coverage Report •
|
|||||||||||||||||||||||||||||||||||
Update skill triggering to follow the Codex CLI approach where: - Agent can decide to use skills based on description matching - Progressive disclosure: metadata at startup, full content on demand - Skills triggered when user names them OR task matches description Changes: - Update system_message_suffix.j2 with Codex-style skill usage rules - Export SkillResources, to_prompt, validate_skill from context module - Add example demonstrating Codex-style skill triggering Reference: https://developers.openai.com/codex/skills/ Co-authored-by: openhands <openhands@all-hands.dev>
|
@OpenHands resolve merge conflicts with main |
|
I'm on it! neubig can track my progress at all-hands.dev |
Resolve merge conflicts: - agent_context.py: Keep llm_model/llm_model_canonical params and model family filtering from main, combined with progressive disclosure features - skill.py: Keep all new AgentSkills features (SkillResources, to_prompt, etc.) Co-authored-by: openhands <openhands@all-hands.dev>
|
I've successfully resolved the merge conflicts with main and pushed the changes to the SummaryConflicts resolved in 2 files:
Verification:
The PR is now up-to-date with main and ready for further review. |
|
Looks like there are a few issues preventing this PR from being merged!
If you'd like me to help, just leave a comment, like Feel free to include any additional details that might help me get this PR into a better state. You can manage your notification settings |
Summary
Implement progressive disclosure for skills following the Codex CLI approach and AgentSkills standard.
Key Changes
1. Agent-Triggered Skills (Codex CLI Style)
Skills can now be triggered by the agent based on description matching, not just keyword matching in user messages:
This follows the Codex CLI trigger rules:
2. Progressive Disclosure
Skills use a three-level progressive disclosure model:
3. System Prompt Updates
The
<SKILLS>section in system prompts now includes Codex-style usage rules:4. New Exports
Added to
openhands.sdk.context:SkillResources- Resource directories for skillsto_prompt()- Generate<available_skills>XML for promptsvalidate_skill()- Validate skill directories5. Example
Added
examples/01_standalone_sdk/33_skill_formats_compatibility.pydemonstrating:Backward Compatibility
References
Agent Server images for this PR
• GHCR package: https://github.com/OpenHands/agent-sdk/pkgs/container/agent-server
Variants & Base Images
eclipse-temurin:17-jdknikolaik/python-nodejs:python3.12-nodejs22golang:1.21-bookwormPull (multi-arch manifest)
# Each variant is a multi-arch manifest supporting both amd64 and arm64 docker pull ghcr.io/openhands/agent-server:6bd5cd0-pythonRun
All tags pushed for this build
About Multi-Architecture Support
6bd5cd0-python) is a multi-arch manifest supporting both amd64 and arm646bd5cd0-python-amd64) are also available if needed