Files
ai-agent-scaffold-go/internal/domain/agent/model/config.go

97 lines
3.4 KiB
Go
Raw Normal View History

2026-05-30 23:16:49 +08:00
package model
type WorkflowType string
const (
WorkflowTypeLoop WorkflowType = "loop"
WorkflowTypeParallel WorkflowType = "parallel"
WorkflowTypeSequential WorkflowType = "sequential"
)
type AiAgentConfigTable struct {
AppName string `yaml:"app-name" json:"appName"`
Agent AgentSummary `yaml:"agent" json:"agent"`
Module AgentModule `yaml:"module" json:"module"`
}
type AgentSummary struct {
AgentID string `yaml:"agent-id" json:"agentId"`
AgentName string `yaml:"agent-name" json:"agentName"`
AgentDesc string `yaml:"agent-desc" json:"agentDesc"`
}
type AgentModule struct {
AiAPI AiAPIConfig `yaml:"ai-api" json:"aiApi"`
ChatModel ChatModelConfig `yaml:"chat-model" json:"chatModel"`
Agents []AgentConfig `yaml:"agents" json:"agents"`
AgentWorkflows []AgentWorkflowConfig `yaml:"agent-workflows" json:"agentWorkflows"`
Runner RunnerConfig `yaml:"runner" json:"runner"`
}
type AiAPIConfig struct {
BaseURL string `yaml:"base-url" json:"baseUrl"`
APIKey string `yaml:"api-key" json:"apiKey"`
CompletionsPath string `yaml:"completions-path" json:"completionsPath"`
EmbeddingsPath string `yaml:"embeddings-path" json:"embeddingsPath"`
}
type ChatModelConfig struct {
Model string `yaml:"model" json:"model"`
ToolMCPList []ToolMCPConfig `yaml:"tool-mcp-list" json:"toolMcpList"`
ToolSkillsList []ToolSkillsConfig `yaml:"tool-skills-list" json:"toolSkillsList"`
}
type ToolMCPConfig struct {
SSE *SSEServerParameters `yaml:"sse,omitempty" json:"sse,omitempty"`
Stdio *StdioServerParameters `yaml:"stdio,omitempty" json:"stdio,omitempty"`
Local *LocalToolParameters `yaml:"local,omitempty" json:"local,omitempty"`
}
type SSEServerParameters struct {
Name string `yaml:"name" json:"name"`
BaseURI string `yaml:"base-uri" json:"baseUri"`
SSEEndpoint string `yaml:"sse-endpoint" json:"sseEndpoint"`
RequestTimeout int `yaml:"request-timeout" json:"requestTimeout"`
}
type StdioServerParameters struct {
Name string `yaml:"name" json:"name"`
RequestTimeout int `yaml:"request-timeout" json:"requestTimeout"`
ServerParameters ServerParameters `yaml:"server-parameters" json:"serverParameters"`
}
type ServerParameters struct {
Command string `yaml:"command" json:"command"`
Args []string `yaml:"args" json:"args"`
Env map[string]string `yaml:"env" json:"env"`
}
type LocalToolParameters struct {
Name string `yaml:"name" json:"name"`
}
type ToolSkillsConfig struct {
Type string `yaml:"type" json:"type"`
Path string `yaml:"path" json:"path"`
}
type AgentConfig struct {
Name string `yaml:"name" json:"name"`
Instruction string `yaml:"instruction" json:"instruction"`
Description string `yaml:"description" json:"description"`
OutputKey string `yaml:"output-key" json:"outputKey"`
}
type AgentWorkflowConfig struct {
Type WorkflowType `yaml:"type" json:"type"`
Name string `yaml:"name" json:"name"`
SubAgents []string `yaml:"sub-agents" json:"subAgents"`
Description string `yaml:"description" json:"description"`
MaxIterations int `yaml:"max-iterations" json:"maxIterations"`
}
type RunnerConfig struct {
AgentName string `yaml:"agent-name" json:"agentName"`
PluginNameList []string `yaml:"plugin-name-list" json:"pluginNameList"`
}