Documentation
¶
Overview ¶
Package skill 提供 Skill(技能)注册、发现和执行系统
Skill 是可复用的 Agent 能力单元,支持:
- 动态注册和注销
- 按名称/标签/描述搜索
- 启用/禁用控制
- 签名验证确保安全
- 变更钩子通知
使用示例:
registry := skill.NewRegistry()
registry.Register(&skill.Skill{
Name: "translate",
Description: "多语言翻译",
Handler: func(ctx context.Context, input map[string]any) (map[string]any, error) {
return map[string]any{"result": "translated"}, nil
},
})
result, err := registry.Execute(ctx, "translate", input)
Package skill 的签名验证模块 ¶
提供技能签名验证能力,确保技能来源可信:
- HMAC-SHA256 签名
- 通用 Verifier 接口(可扩展 Ed25519 等)
使用示例:
signer := skill.NewHMACSigner([]byte("secret"))
sig := signer.Sign([]byte("data"))
err := signer.Verify([]byte("data"), sig)
Index ¶
- Variables
- func VerifySkill(s *Skill, sig *SkillSignature, verifier Verifier) error
- type HMACSigner
- type Hook
- type HookEvent
- type Registry
- func (r *Registry) Count() int
- func (r *Registry) Disable(name string) error
- func (r *Registry) Enable(name string) error
- func (r *Registry) Execute(ctx context.Context, name string, input map[string]any) (map[string]any, error)
- func (r *Registry) Get(name string) (*Skill, error)
- func (r *Registry) List() []*Skill
- func (r *Registry) ListAll() []*Skill
- func (r *Registry) OnChange(hook Hook)
- func (r *Registry) Register(s *Skill) error
- func (r *Registry) Search(query string) []*Skill
- func (r *Registry) Unregister(name string) error
- type Signer
- type Skill
- type SkillSignature
- type Verifier
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrSkillNotFound 技能未找到 ErrSkillNotFound = errors.New("skill: 技能未找到") // ErrSkillExists 技能已存在 ErrSkillExists = errors.New("skill: 技能已存在") // ErrSkillDisabled 技能已禁用 ErrSkillDisabled = errors.New("skill: 技能已禁用") // ErrInvalidSkill 无效的技能定义 ErrInvalidSkill = errors.New("skill: 无效的技能定义") )
View Source
var ( // ErrInvalidSignature 签名验证失败 ErrInvalidSignature = errors.New("skill: 签名验证失败") // ErrNoVerifier 未配置签名验证器 ErrNoVerifier = errors.New("skill: 未配置签名验证器") )
Functions ¶
func VerifySkill ¶
func VerifySkill(s *Skill, sig *SkillSignature, verifier Verifier) error
VerifySkill 验证技能签名
Types ¶
type HMACSigner ¶
type HMACSigner struct {
// contains filtered or unexported fields
}
HMACSigner 基于 HMAC-SHA256 的签名器
func NewHMACSigner ¶
func NewHMACSigner(secret []byte) *HMACSigner
NewHMACSigner 创建 HMAC-SHA256 签名器
secret 会被拷贝,调用方后续修改不影响签名器。
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry 技能注册中心
管理所有已注册的 Skill,提供增删改查和执行能力。 线程安全。
func (*Registry) Execute ¶
func (r *Registry) Execute(ctx context.Context, name string, input map[string]any) (map[string]any, error)
Execute 查找并执行技能
type Skill ¶
type Skill struct {
// Name 技能名称(唯一标识)
Name string `json:"name"`
// Description 技能描述
Description string `json:"description"`
// Version 版本号
Version string `json:"version"`
// Author 作者
Author string `json:"author,omitempty"`
// Tags 标签列表(用于分类和搜索)
Tags []string `json:"tags,omitempty"`
// Schema 输入参数 Schema(JSON Schema 格式)
Schema map[string]any `json:"schema,omitempty"`
// Handler 执行处理函数
Handler func(ctx context.Context, input map[string]any) (map[string]any, error) `json:"-"`
// CreatedAt 注册时间
CreatedAt time.Time `json:"created_at"`
// Enabled 是否启用
Enabled bool `json:"enabled"`
}
Skill 技能定义
type SkillSignature ¶
type SkillSignature struct {
// SkillName 技能名称
SkillName string
// Version 技能版本
Version string
// Signature 签名数据
Signature []byte
}
SkillSignature 技能签名信息
func SignSkill ¶
func SignSkill(s *Skill, signer Signer) *SkillSignature
SignSkill 对技能进行签名
将技能的 Name+Version 序列化后计算签名。
Click to show internal directories.
Click to hide internal directories.