Skip to content

feat(agents): capability bindings/protocols/mixins#28

Draft
pradeepvrd wants to merge 1 commit into
submit/2-verificationfrom
submit/3-agents-capabilities
Draft

feat(agents): capability bindings/protocols/mixins#28
pradeepvrd wants to merge 1 commit into
submit/2-verificationfrom
submit/3-agents-capabilities

Conversation

@pradeepvrd

@pradeepvrd pradeepvrd commented Jun 20, 2026

Copy link
Copy Markdown
Owner

Agent capabilities used to be scattered across the evaluate.py path: the system instruction in pkg/evaluator/evaluate.py (SYSTEM_INSTRUCTION / SYSTEM_INSTRUCTION_NO_MCP), MCP server paths + hard-coded tool lists in pkg/agents/runner/gcli.py, and skill discovery in pkg/agents/runner/api/. This consolidates the three axes into devops_bench/agents/capabilities/ as typed bindings (AgentRules, McpBinding, SkillBinding, AllCapabilities) plus structural Protocols (SupportsRules/SupportsMcp/SupportsSkills). No new deps.

Behavior changes

  • Rules, MCP servers, and skills are now data the orchestrator binds, not strings/lists hard-coded in runner code; an agent's allowed-tools are derived from the bindings.
  • The three axes are independent: an agent can be granted skills without MCP (and vice versa); previously skills/MCP were entangled in the runner.
  • Capability support is expressed structurally (isinstance(agent, SupportsMcp)), so the orchestrator grants only what an agent actually consumes.

Comment thread devops_bench/agents/capabilities/mcp.py Outdated
Comment thread devops_bench/agents/capabilities/aggregate.py Outdated
@pradeepvrd pradeepvrd force-pushed the submit/2-verification branch from 6592b55 to a510df6 Compare June 21, 2026 01:30
@pradeepvrd pradeepvrd force-pushed the submit/3-agents-capabilities branch from 822d901 to 51db598 Compare June 21, 2026 01:30
@pradeepvrd pradeepvrd changed the title feat(agents): capability bindings/protocols/mixins (leaf, core-only imports) feat(agents): capability bindings/protocols/mixins Jun 23, 2026
@pradeepvrd pradeepvrd force-pushed the submit/2-verification branch from a510df6 to 9500fba Compare June 23, 2026 06:37
@pradeepvrd pradeepvrd force-pushed the submit/3-agents-capabilities branch from 51db598 to 887c755 Compare June 23, 2026 06:37
@pradeepvrd pradeepvrd force-pushed the submit/2-verification branch from 9500fba to 2da6431 Compare June 23, 2026 07:19
@pradeepvrd pradeepvrd force-pushed the submit/3-agents-capabilities branch from 887c755 to 6e9a5ac Compare June 23, 2026 07:20
@pradeepvrd pradeepvrd force-pushed the submit/2-verification branch from 2da6431 to 415e316 Compare June 23, 2026 18:02
Agent capabilities used to be scattered across the `evaluate.py` path: the system instruction in `pkg/evaluator/evaluate.py` (`SYSTEM_INSTRUCTION` / `SYSTEM_INSTRUCTION_NO_MCP`), MCP server paths + hard-coded tool lists in `pkg/agents/runner/gcli.py`, and skill discovery in `pkg/agents/runner/api/`. This consolidates the three axes into `devops_bench/agents/capabilities/` as typed bindings (`AgentRules`, `McpBinding`, `SkillBinding`, `AllCapabilities`) plus structural Protocols (`SupportsRules`/`SupportsMcp`/`SupportsSkills`). No new deps.

**Behavior changes**
- Rules, MCP servers, and skills are now data the orchestrator binds, not strings/lists hard-coded in runner code; an agent's allowed-tools are derived from the bindings.
- The three axes are independent: an agent can be granted skills without MCP (and vice versa); previously skills/MCP were entangled in the runner.
- Capability support is expressed structurally (`isinstance(agent, SupportsMcp)`), so the orchestrator grants only what an agent actually consumes.
@pradeepvrd pradeepvrd force-pushed the submit/3-agents-capabilities branch from 6e9a5ac to 1f3c053 Compare June 23, 2026 18:05
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