Skip to content

开发插件

技能接口

每个技能实现 Skill 接口:

go
type Skill interface {
    Name() string
    Description() string
    Parameters() map[string]ParameterDef
    Execute(env Environment, params map[string]any) (string, error)
}

创建技能

go
package myplugin

import "yunque-agent/pkg/skills"

type MySkill struct{}

func (s *MySkill) Name() string        { return "my-skill" }
func (s *MySkill) Description() string { return "实现某个功能" }
func (s *MySkill) Parameters() map[string]skills.ParameterDef {
    return map[string]skills.ParameterDef{
        "input": {Type: "string", Description: "输入文本", Required: true},
    }
}

func (s *MySkill) Execute(env skills.Environment, params map[string]any) (string, error) {
    input := params["input"].(string)
    return "结果:" + input, nil
}

创建插件

go
type MyPlugin struct{}

func (p *MyPlugin) Name() string        { return "my-plugin" }
func (p *MyPlugin) Description() string { return "我的自定义插件" }
func (p *MyPlugin) SystemPrompt() string { return "你是一个专业的助手..." }
func (p *MyPlugin) Skills() []skills.Skill { return []skills.Skill{&MySkill{}} }

注册

cmd/agent/main.go 中注册:

go
pluginRegistry.Register(&myplugin.MyPlugin{})

© 2025 云鸢科技(青岛)有限公司 × Dream Lab