enzu
1.0.0
Enzu ist ein deklaratives Go-Framework, das für den Aufbau anspruchsvoller Multi-Agent-KI-Systeme entwickelt wurde. Es ermöglicht LLMs und KI-Agenten, zusammenzuarbeiten, parallele Aufgaben auszuführen und erweiterbare Tools zu nutzen und gleichzeitig klare Hierarchien und Kommunikationsmuster beizubehalten.
// Pattern: Distributed Research System
type ResearchRequest struct {
Topic string `json:"topic"`
Subtopics [] string `json:"subtopics,omitempty"`
MaxResults int `json:"max_results,omitempty"`
TimeoutSecs int `json:"timeout_secs,omitempty"`
}
// Create specialized research agents
researcher := enzu . NewAgent ( "Primary Researcher" ,
"Deep research and fact verification" ,
llm ,
enzu . WithToolLists ( "ResearchTool" ),
enzu . WithParallelExecution ( true ),
)
analyst := enzu . NewAgent ( "Data Analyst" ,
"Process and analyze research results" ,
llm ,
enzu . WithToolLists ( "AnalysisTool" ),
enzu . WithParallelExecution ( true ),
)
// Pattern: Self-Aware Interactive System
manager := enzu . NewSynergyManager ( "Self-Aware System" , llm , logger )
// Define capability domains
researchSynergy := createDomainSynergy ( "Research" , llm , logger )
analysisSynergy := createDomainSynergy ( "Analysis" , llm , logger )
creativeSynergy := createDomainSynergy ( "Creative" , llm , logger )
// Register domains
manager . AddSynergy ( researchSynergy )
manager . AddSynergy ( analysisSynergy )
manager . AddSynergy ( creativeSynergy )
// Pattern: Extensible Tool System
exaSearchOptions := tools. ExaSearchOptions {
NumResults : 5 ,
Type : "neural" ,
Contents : tools. Contents {
Text : true ,
},
UseAutoprompt : true ,
StartPublishedDate : "2023-01-01T00:00:00.000Z" ,
}
tools . RegisterTool ( "ResearchTool" , exaSearchOptions )
// Pattern: Multi-Agent API Server
type Server struct {
synergy * enzu. Synergy
logger * enzu. Logger
}
// Initialize server with parallel processing capabilities
func NewServer () ( * Server , error ) {
// Create research agents with specific roles
researchAgent1 := enzu . NewAgent ( "Research Agent 1" ,
"Agent specialized in AI research" ,
llm ,
enzu . WithToolLists ( "ResearchTool" ),
enzu . WithParallelExecution ( true ),
)
researchAgent2 := enzu . NewAgent ( "Research Agent 2" ,
"Agent specialized in startup research" ,
llm ,
enzu . WithToolLists ( "ResearchTool" ),
enzu . WithParallelExecution ( true ),
)
// Create parallel processing synergy
synergy := enzu . NewSynergy (
"Parallel AI Research" ,
llm ,
enzu . WithAgents ( researchAgent1 , researchAgent2 ),
enzu . WithLogger ( logger ),
)
return & Server { synergy : synergy , logger : logger }, nil
}
// Handle parallel task execution
func ( s * Server ) handleExecute ( w http. ResponseWriter , r * http. Request ) {
var request struct {
Tasks [] string `json:"tasks"`
}
// Distribute tasks among agents
agents := s . synergy . GetAgents ()
for i , taskDescription := range request . Tasks {
agent := agents [ i % len ( agents )] // Round-robin distribution
tasks = append ( tasks , enzu . NewTask ( taskDescription , agent ))
}
}
ExaSearch
-Tool)FetchURL
-Tool)Parallele Aufgabenverteilung
HTTP-Service-Integration
Multi-Agenten-Koordination
go get github.com/teilomillet/enzu
/docs
: Architektur- und Integrationshandbücher/docs/tutorials
: Schritt-für-Schritt-Implementierungsmuster/examples
: Referenzimplementierungen und Anwendungsfälleexamples/8_research_assistant_example.go
)examples/7_manager_mode_example.go
)examples/4_parallel_example.go
)examples/3_tools_example.go
)examples/6_api_example.go
)HTTP-API-Integration
Tool-Registry-Integration
Agentenzusammenarbeit