enzu
1.0.0
Enzu هو إطار عمل تعريفي لـ Go مصمم لبناء أنظمة ذكاء اصطناعي متطورة متعددة الوكلاء. إنه يمكّن LLMs ووكلاء الذكاء الاصطناعي من التعاون وتنفيذ المهام المتوازية والاستفادة من الأدوات القابلة للتوسعة مع الحفاظ على تسلسلات هرمية وأنماط اتصال واضحة.
// 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
)توزيع المهام الموازي
تكامل خدمة HTTP
التنسيق بين الوكلاء المتعددين
go get github.com/teilomillet/enzu
/docs
: أدلة الهندسة المعمارية والتكامل/docs/tutorials
: أنماط التنفيذ خطوة بخطوة/examples
: التطبيقات المرجعية وحالات الاستخدامexamples/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
تكامل سجل الأداة
تعاون الوكيل