Files
Cyrene_v2/pkg/plugins/sdk/skill.go
T

56 lines
1.7 KiB
Go

package sdk
// Step is one unit of a Skill's reusable workflow.
type Step struct {
// Name is a short identifier for the step.
Name string
// Prompt is the instruction the model follows for this step.
Prompt string
// Depends lists the Names of steps that must finish before this step runs.
Depends []string
}
// Ref is a reference a Skill may pull in for extra context or shared tooling.
type Ref struct {
// Name identifies the reference.
Name string
// Type is a free-form kind, for example "tool", "doc" or "file".
Type string
// Value is the reference payload or pointer.
Value string
// Optional reports whether the reference may be absent without failing.
Optional bool
}
// Guardrail is a constraint a Skill applies while running.
type Guardrail struct {
// ID names the guardrail.
ID string
// Message is the rule text enforced on the workflow.
Message string
// Enforced reports whether a violation aborts the Skill (true) or is only a
// warning (false).
Enforced bool
}
// Skill is a reusable, higher-order workflow: an ordered set of steps paired
// with prompts, references and guardrails. It is more structured than a Tool
// and typically composes several steps.
//
// Implementations must be safe for concurrent use.
type Skill interface {
// Name returns the unique skill identifier.
Name() string
// Description explains what the Skill accomplishes; the model uses it to
// select a Skill for a task.
Description() string
// Prompt returns the base system prompt for the Skill.
Prompt() string
// Steps returns the ordered workflow steps.
Steps() []Step
// Refs returns the references the Skill may draw on.
Refs() []Ref
// Guardrails returns the constraints the Skill enforces.
Guardrails() []Guardrail
}