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: agents.InstructionsFunc(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
}

Difference from the Python SDK

Python ships skills as a sandbox capability (agents.sandbox.capabilities.skills), tied to its workspace/manifest sandbox model. This module instead implements the provider-agnostic Agent Skills standard directly on Instructions + a function tool, with no sandbox dependency.

A runnable example is in skills/example.