-
Notifications
You must be signed in to change notification settings - Fork 3.6k
feat(agent): add per-agent skills filtering #5987
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: dev
Are you sure you want to change the base?
Conversation
Add ability to filter which skills are visible to each agent via the
'skills' field in agent configuration (opencode.json or markdown frontmatter).
Supports two modes:
- Whitelist mode: when any true values present, only matching skills shown
- Blacklist mode: when only false values, exclude matching skills
Examples:
# Only show spreadsheets skill to excel agent
skills:
spreadsheets: true
# Hide git skills from read-only agent
skills:
"git-*": false
Uses same wildcard pattern matching as tools filtering.
|
hang onto this - we're reworking a bunch of permissions stuff and this can come after that |
|
Looks like #6000 makes this not needed? |
True denied skills are already filtered out of agents context |
|
See, the original idea was similar, I am now leaning towards an entirely different thing. Current implementation basically loads all the skills into all agents unless you edit them. There needs to be something that allows easier allow/deny skills and I believe they should all be disabled as default.
|
Actually global deny is very easy in your config simply:
Would deny it globally this is how I have it setup at the moment. Also there is a new permission system in the works so lets hold on till release. |
|
Having said that I agree that some guided configurations on the agent setup process would be nice to have. So thats a direction worth taking |
Yeah agree but it's the defaults that are the problem - creating a build agent config is not something that everyone does. I can see how having all the skills enabled as default can be problematic |
Don't shoot the messenger, purely vibecoded.
Summary
Add ability to filter which skills are visible to each agent via a new
skillsfield in agent configuration.This addresses the issue where all discovered skills are loaded into the system prompt for every agent, causing:
Usage
In
opencode.json:{ "agent": { "excel-maestro": { "skills": { "spreadsheets": true } }, "read-only-explorer": { "skills": { "git-*": false } } } }In agent markdown frontmatter (
.opencode/agent/excel-maestro.md):Behavior
truevalues are present, only skills matching atruepattern are shownfalsevalues are present, all skills except those matchingfalsepatterns are shownUses the same wildcard pattern matching as existing
toolsfiltering.Changes
config/config.ts: Addedskillsfield to Agent schemaagent/agent.ts: Addedskillsto Agent.Info type and state builderskill/skill.ts: Addedfilter()andforAgent()functionssession/system.ts: Updatedskills()to accept optional filter parametersession/prompt.ts: Pass agent's skills filter to SystemPrompt.skills()