agentspec

package
v0.16.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 1, 2026 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type A2ACapabilities

type A2ACapabilities struct {
	Streaming              bool `json:"streaming,omitempty" bson:"streaming,omitempty" yaml:"streaming,omitempty"`
	PushNotifications      bool `json:"push_notifications,omitempty" bson:"push_notifications,omitempty" yaml:"push_notifications,omitempty"`
	StateTransitionHistory bool `json:"state_transition_history,omitempty" bson:"state_transition_history,omitempty" yaml:"state_transition_history,omitempty"`
}

A2ACapabilities declares optional A2A features supported by the agent.

type A2AConfig

type A2AConfig struct {
	Endpoint     string           `json:"endpoint,omitempty" bson:"endpoint,omitempty" yaml:"endpoint,omitempty"`
	Skills       []A2ASkill       `json:"skills,omitempty" bson:"skills,omitempty" yaml:"skills,omitempty"`
	Capabilities *A2ACapabilities `json:"capabilities,omitempty" bson:"capabilities,omitempty" yaml:"capabilities,omitempty"`
}

A2AConfig holds Agent-to-Agent protocol settings.

type A2ASkill

type A2ASkill struct {
	ID          string   `json:"id" bson:"id" yaml:"id"`
	Name        string   `json:"name" bson:"name" yaml:"name"`
	Description string   `json:"description,omitempty" bson:"description,omitempty" yaml:"description,omitempty"`
	Tags        []string `json:"tags,omitempty" bson:"tags,omitempty" yaml:"tags,omitempty"`
}

A2ASkill describes a single skill exposed over the A2A protocol.

type AgentRequirements

type AgentRequirements struct {
	Bins        []string `json:"bins,omitempty" bson:"bins,omitempty" yaml:"bins,omitempty"`
	EnvRequired []string `json:"env_required,omitempty" bson:"env_required,omitempty" yaml:"env_required,omitempty"`
	EnvOptional []string `json:"env_optional,omitempty" bson:"env_optional,omitempty" yaml:"env_optional,omitempty"`
}

AgentRequirements declares runtime requirements for the agent.

type AgentSpec

type AgentSpec struct {
	ForgeVersion   string          `json:"forge_version" bson:"forge_version" yaml:"forge_version"`
	AgentID        string          `json:"agent_id" bson:"agent_id" yaml:"agent_id"`
	Version        string          `json:"version" bson:"version" yaml:"version"`
	Name           string          `json:"name" bson:"name" yaml:"name"`
	Description    string          `json:"description,omitempty" bson:"description,omitempty" yaml:"description,omitempty"`
	Runtime        *RuntimeConfig  `json:"runtime,omitempty" bson:"runtime,omitempty" yaml:"runtime,omitempty"`
	Tools          []ToolSpec      `json:"tools,omitempty" bson:"tools,omitempty" yaml:"tools,omitempty"`
	PolicyScaffold *PolicyScaffold `json:"policy_scaffold,omitempty" bson:"policy_scaffold,omitempty" yaml:"policy_scaffold,omitempty"`
	Identity       *Identity       `json:"identity,omitempty" bson:"identity,omitempty" yaml:"identity,omitempty"`
	A2A            *A2AConfig      `json:"a2a,omitempty" bson:"a2a,omitempty" yaml:"a2a,omitempty"`
	Model          *ModelConfig    `json:"model,omitempty" bson:"model,omitempty" yaml:"model,omitempty"`

	Requirements *AgentRequirements `json:"requirements,omitempty" bson:"requirements,omitempty" yaml:"requirements,omitempty"`

	// Container packaging extensions
	ToolInterfaceVersion  string `json:"tool_interface_version,omitempty" bson:"tool_interface_version,omitempty" yaml:"tool_interface_version,omitempty"`
	SkillsSpecVersion     string `json:"skills_spec_version,omitempty" bson:"skills_spec_version,omitempty" yaml:"skills_spec_version,omitempty"`
	ForgeSkillsExtVersion string `json:"forge_skills_ext_version,omitempty" bson:"forge_skills_ext_version,omitempty" yaml:"forge_skills_ext_version,omitempty"`
	EgressProfile         string `json:"egress_profile,omitempty" bson:"egress_profile,omitempty" yaml:"egress_profile,omitempty"`
	EgressMode            string `json:"egress_mode,omitempty" bson:"egress_mode,omitempty" yaml:"egress_mode,omitempty"`
}

AgentSpec is the canonical in-memory representation of an agent specification.

type CommandFilter

type CommandFilter struct {
	Pattern string `json:"pattern"`
	Message string `json:"message"`
}

CommandFilter blocks tool execution when the command matches.

type ForgeToolMeta

type ForgeToolMeta struct {
	AllowedTables    []string `json:"allowed_tables,omitempty" bson:"allowed_tables,omitempty" yaml:"allowed_tables,omitempty"`
	AllowedEndpoints []string `json:"allowed_endpoints,omitempty" bson:"allowed_endpoints,omitempty" yaml:"allowed_endpoints,omitempty"`
	NetworkScopes    []string `json:"network_scopes,omitempty" bson:"network_scopes,omitempty" yaml:"network_scopes,omitempty"`
	AllowedBinaries  []string `json:"allowed_binaries,omitempty" bson:"allowed_binaries,omitempty" yaml:"allowed_binaries,omitempty"`
	EnvPassthrough   []string `json:"env_passthrough,omitempty" bson:"env_passthrough,omitempty" yaml:"env_passthrough,omitempty"`
}

ForgeToolMeta carries Forge-specific metadata for a tool.

type Guardrail

type Guardrail struct {
	Type   string         `json:"type" bson:"type" yaml:"type"`
	Config map[string]any `json:"config,omitempty" bson:"config,omitempty" yaml:"config,omitempty"`
}

Guardrail defines a single guardrail rule applied to an agent.

type Identity

type Identity struct {
	Issuer   string   `json:"issuer,omitempty" bson:"issuer,omitempty" yaml:"issuer,omitempty"`
	Audience string   `json:"audience,omitempty" bson:"audience,omitempty" yaml:"audience,omitempty"`
	Scopes   []string `json:"scopes,omitempty" bson:"scopes,omitempty" yaml:"scopes,omitempty"`
}

Identity holds agent identity and authentication metadata.

type ModelConfig

type ModelConfig struct {
	Provider   string         `json:"provider,omitempty" bson:"provider,omitempty" yaml:"provider,omitempty"`
	Name       string         `json:"name,omitempty" bson:"name,omitempty" yaml:"name,omitempty"`
	Version    string         `json:"version,omitempty" bson:"version,omitempty" yaml:"version,omitempty"`
	Parameters map[string]any `json:"parameters,omitempty" bson:"parameters,omitempty" yaml:"parameters,omitempty"`
}

ModelConfig holds LLM/model configuration for the agent.

type OutputFilter

type OutputFilter struct {
	Pattern string `json:"pattern"`
	Action  string `json:"action"` // "block" or "redact"
}

OutputFilter blocks or redacts tool output matching a pattern.

type PolicyScaffold

type PolicyScaffold struct {
	Guardrails      []Guardrail          `json:"guardrails,omitempty" bson:"guardrails,omitempty" yaml:"guardrails,omitempty"`
	SkillGuardrails *SkillGuardrailRules `json:"skill_guardrails,omitempty" bson:"skill_guardrails,omitempty" yaml:"skill_guardrails,omitempty"`
}

PolicyScaffold defines the policy and guardrail configuration for an agent.

type RuntimeConfig

type RuntimeConfig struct {
	Image          string            `json:"image,omitempty" bson:"image,omitempty" yaml:"image,omitempty"`
	Entrypoint     []string          `json:"entrypoint,omitempty" bson:"entrypoint,omitempty" yaml:"entrypoint,omitempty"`
	Port           int               `json:"port,omitempty" bson:"port,omitempty" yaml:"port,omitempty"`
	Env            map[string]string `json:"env,omitempty" bson:"env,omitempty" yaml:"env,omitempty"`
	DepsFile       string            `json:"deps_file,omitempty" bson:"deps_file,omitempty" yaml:"deps_file,omitempty"`
	DepsInstallCmd string            `json:"deps_install_cmd,omitempty" bson:"deps_install_cmd,omitempty" yaml:"deps_install_cmd,omitempty"`
	HealthCheck    string            `json:"health_check,omitempty" bson:"health_check,omitempty" yaml:"health_check,omitempty"`
	User           string            `json:"user,omitempty" bson:"user,omitempty" yaml:"user,omitempty"`
}

RuntimeConfig holds container runtime settings.

type SkillGuardrailRules

type SkillGuardrailRules struct {
	DenyCommands  []CommandFilter `json:"deny_commands,omitempty"`
	DenyOutput    []OutputFilter  `json:"deny_output,omitempty"`
	DenyPrompts   []CommandFilter `json:"deny_prompts,omitempty"`
	DenyResponses []CommandFilter `json:"deny_responses,omitempty"`
}

SkillGuardrailRules holds aggregated skill-level deny patterns.

type ToolSpec

type ToolSpec struct {
	Name        string          `json:"name" bson:"name" yaml:"name"`
	Description string          `json:"description,omitempty" bson:"description,omitempty" yaml:"description,omitempty"`
	InputSchema json.RawMessage `json:"input_schema,omitempty" bson:"input_schema,omitempty" yaml:"input_schema,omitempty"`
	Permissions []string        `json:"permissions,omitempty" bson:"permissions,omitempty" yaml:"permissions,omitempty"`
	ForgeMeta   *ForgeToolMeta  `json:"forge_meta,omitempty" bson:"forge_meta,omitempty" yaml:"forge_meta,omitempty"`
	Category    string          `json:"category,omitempty" bson:"category,omitempty" yaml:"category,omitempty"`
	SkillOrigin string          `json:"skill_origin,omitempty" bson:"skill_origin,omitempty" yaml:"skill_origin,omitempty"`
}

ToolSpec defines a tool available to an agent.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL