Skip to content

Inline skill embedding in agents.yaml #2798

@maxcleme

Description

@maxcleme

Summary

Allow skills to be defined inline within agents.yaml so that a single file (or remote URL) is all that's needed to run a fully functional agent: no local skill imports, no repository scaffolding required.

Motivation

Currently, using skills with an agent requires either:

  • placing skill files in the user's home folder, or
  • including them in the current project repository

This creates friction when sharing agents across machines, teams, or environments. The dream is to be able to run:

docker-agent run https://<remote_agent_specs>

from any machine, and have the agent work exactly as intended, no setup, no file hunting.

Proposed Solution

Extend the agents.yaml schema to support an inline skills block where skill logic can be embedded directly:

agents:
  root:
    skills:
      - name: summarize
        inline: |
          You are a summarization expert. Given any text, return a concise summary...
    
      - name: code-reviewer
        inline: |
          Review the following code for bugs, style issues, and performance...

Alternatively (or additionally), support referencing remote skill URLs alongside inline definitions:

skills:
  - name: summarize
    source: https://skills.example.com/summarize.yaml

And/or top-level skills definitions, similarly to OpenAPI specs?

skills:
  - name: summarize
    source: https://skills.example.com/summarize.yaml
agents:
  root:
    skills:
      - name: summarize
        ref: '#/skills/summarize'

Schema Naming Conflict

The skills field feels like a natural fit for this feature but it likely collides with the existing behavior of the field (skill discovery / import path resolution). To avoid a breaking change and make the distinction explicit, the current field would be renamed to something like skillsDiscovery (open to bikeshedding):

agents:
  root:
    skillsDiscovery: true # additionally look skills found from local dirs
    skills:
      - name: summarize
        inline: |
          ...

This gives skills an intuitive, declarative meaning ("these are the skills this agent has") while skillsDiscovery clearly conveys the path-resolution/import mechanism.

Goals

  • agents.yaml becomes a fully portable, self-contained artifact
  • docker-agent run <url> works end-to-end with zero local dependencies

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/skillsSkills system and custom slash commands

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions