开发插件
技能接口
每个技能实现 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{})