enzu
1.0.0
Enzu est un framework Go déclaratif conçu pour créer des systèmes d'IA multi-agents sophistiqués. Il permet aux LLM et aux agents IA de collaborer, d'exécuter des tâches parallèles et d'exploiter des outils extensibles tout en conservant des hiérarchies et des modèles de communication clairs.
// 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
)FetchURL
)Répartition des tâches parallèles
Intégration des services HTTP
Coordination multi-agents
go get github.com/teilomillet/enzu
/docs
: Guides d'architecture et d'intégration/docs/tutorials
: Modèles d'implémentation étape par étape/examples
: implémentations de référence et cas d'utilisationexamples/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
)Intégration de l'API HTTP
Intégration du registre d'outils
Collaboration des agents