agents-go

Skills

The github.com/zzir/agents-go/skills module implements the open Agent Skills format: a skill is a directory with a SKILL.md (YAML frontmatter + Markdown instructions), optionally bundling scripts/, references/ and assets/. It is a separate module so the YAML dependency stays out of the core SDK.

Skills map onto plain SDK primitives — no sandbox required — following the format’s progressive disclosure:

Stage Agent Skills This module
Discovery load name + description RenderIndex → agent instructions
Activation read SKILL.md ReadFileTool (model reads on demand)
Execution run scripts / read refs ReadFileTool; scripts via sandbox.CodeTool (optional)

Usage

import "github.com/zzir/agents-go/skills"

loaded, _ := skills.Load("./skills") // scan dirs, parse each SKILL.md frontmatter

agent := &agents.Agent{
    Name: "assistant",
    Instructions: func(ctx context.Context, rc *agents.RunContext, a *agents.Agent) (string, error) {
        return base + "\n" + skills.RenderIndex(loaded), nil // discovery
    },
    Tools: []*agents.Tool{skills.ReadFileTool("./skills")},   // activation / execution
}

No sandbox dependency

Skills are implemented directly on Instructions plus a function tool, against the provider-agnostic Agent Skills standard. Binding them to a sandbox instead would make loading a SKILL.md require a container.

A runnable example is in skills/example.