2026-04-14 12:00:03 +08:00
|
|
|
package instruction
|
2026-04-14 10:03:52 +08:00
|
|
|
|
|
|
|
|
import (
|
2026-08-21 00:41:07 +08:00
|
|
|
"code.tczkiot.com/wlw/ai-agent/internal/ai/runtime/tooling"
|
|
|
|
|
"code.tczkiot.com/wlw/ai-agent/internal/models"
|
|
|
|
|
"code.tczkiot.com/wlw/ai-agent/internal/pkg/toolx"
|
2026-04-14 10:03:52 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type ToolAppendixProvider struct{}
|
|
|
|
|
|
|
|
|
|
func NewToolAppendixProvider() *ToolAppendixProvider {
|
|
|
|
|
return &ToolAppendixProvider{}
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-14 10:24:13 +08:00
|
|
|
type SkillInstructionProvider struct{}
|
|
|
|
|
|
|
|
|
|
func NewSkillInstructionProvider() *SkillInstructionProvider {
|
|
|
|
|
return &SkillInstructionProvider{}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (p *SkillInstructionProvider) Resolve(selectedSkill *models.SkillDefinition) string {
|
2026-04-14 12:00:03 +08:00
|
|
|
return BuildSelectedSkillActivationInstruction(selectedSkill)
|
2026-04-14 10:24:13 +08:00
|
|
|
}
|
|
|
|
|
|
2026-04-18 11:25:48 +08:00
|
|
|
func (p *ToolAppendixProvider) Build(toolDefinitions []tooling.MCPToolDefinition, extraToolCodes map[string]string) []string {
|
2026-04-14 10:24:13 +08:00
|
|
|
appendixParts := make([]string, 0, 1)
|
2026-04-14 10:03:52 +08:00
|
|
|
toolCodes := make([]string, 0, len(toolDefinitions)+len(extraToolCodes))
|
|
|
|
|
for _, item := range toolDefinitions {
|
|
|
|
|
toolCodes = append(toolCodes, item.ToolCode)
|
|
|
|
|
}
|
|
|
|
|
for _, item := range extraToolCodes {
|
|
|
|
|
toolCodes = append(toolCodes, item)
|
|
|
|
|
}
|
|
|
|
|
appendixParts = append(appendixParts, toolx.BuildToolAppendicesForCodes(len(toolDefinitions) > 0, toolCodes)...)
|
|
|
|
|
return appendixParts
|
|
|
|
|
}
|