# Zero Skills - AI 技能框架 > zero-skills 是基于 go-zero 的 AI 技能管理框架,用于创建和管理 AI 助手的自定义技能。 ## 官方资源 - [GitHub](https://github.com/zeromicro/zero-skills) ## 概述 zero-skills 提供了一套技能定义和执行的框架,使得可以方便地为 AI 系统添加自定义功能和业务逻辑。 ## 核心概念 ### 技能 (Skill) 技能是 AI 系统可以执行的一个原子性任务或功能,例如: - 发送邮件 - 调用 API - 数据库查询 - 文件处理 ### 技能定义 ```go type Skill struct { Name string // 技能名称 Description string // 技能描述 Parameters map[string]interface{} // 参数定义 Handler HandlerFunc // 处理函数 } type HandlerFunc func(ctx context.Context, args map[string]interface{}) (interface{}, error) ``` ## 使用示例 ### 定义技能 ```go package skills import ( "context" "fmt" ) var SendEmailSkill = &Skill{ Name: "send_email", Description: "Send an email to a recipient", Parameters: map[string]interface{}{ "to": map[string]string{"type": "string", "description": "Recipient email"}, "subject": map[string]string{"type": "string", "description": "Email subject"}, "body": map[string]string{"type": "string", "description": "Email body"}, }, Handler: func(ctx context.Context, args map[string]interface{}) (interface{}, error) { to := args["to"].(string) subject := args["subject"].(string) body := args["body"].(string) // 发送邮件逻辑 fmt.Printf("Sending email to %s: %s\n", to, subject) return map[string]interface{}{ "success": true, "message": "Email sent successfully", }, nil }, } ``` ### 注册技能 ```go package main import ( "github.com/yourapp/skills" ) func main() { // 初始化技能管理器 skillManager := skills.NewManager() // 注册技能 skillManager.Register(skills.SendEmailSkill) skillManager.Register(skills.QueryDatabaseSkill) // 启动服务 // ... } ``` ## 技能配置 ```yaml skills: enabled: true base_path: "./skills" skills: - name: "send_email" enabled: true config: smtp_host: "smtp.example.com" smtp_port: 587 - name: "query_database" enabled: true config: connection_string: "user:pass@localhost:3306/db" ``` ## 中间件支持 ```go // 添加日志中间件 skillManager.Use(middleware.Logger()) // 添加认证中间件 skillManager.Use(middleware.Auth()) // 添加限流中间件 skillManager.Use(middleware.RateLimit(100)) ```