{"id":23714901,"url":"https://github.com/teilomillet/enzu","last_synced_at":"2025-09-03T19:32:08.760Z","repository":{"id":263338027,"uuid":"860299091","full_name":"teilomillet/enzu","owner":"teilomillet","description":"A framework for building multi-agent AI systems. Enables LLMs to collaborate through hierarchical organization, parallel task execution, and extensible tools.","archived":false,"fork":false,"pushed_at":"2024-11-17T23:26:26.000Z","size":51,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-18T00:24:04.917Z","etag":null,"topics":["agent-systems","agents","ai-frame","anthropic","anthropic-claude","chatgpt","distributed-agents","genai","go","golang","llm","llms","multi-agent","multi-agent-systems","openai","parallel-processing","swarm","synergy","task","tool-integration"],"latest_commit_sha":null,"homepage":"https://enzu.ai","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teilomillet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-20T07:20:35.000Z","updated_at":"2024-11-17T23:29:04.000Z","dependencies_parsed_at":"2024-11-18T01:31:04.308Z","dependency_job_id":null,"html_url":"https://github.com/teilomillet/enzu","commit_stats":null,"previous_names":["teilomillet/enzu"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teilomillet%2Fenzu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teilomillet%2Fenzu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teilomillet%2Fenzu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teilomillet%2Fenzu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teilomillet","download_url":"https://codeload.github.com/teilomillet/enzu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231913959,"owners_count":18445008,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-systems","agents","ai-frame","anthropic","anthropic-claude","chatgpt","distributed-agents","genai","go","golang","llm","llms","multi-agent","multi-agent-systems","openai","parallel-processing","swarm","synergy","task","tool-integration"],"created_at":"2024-12-30T20:51:32.406Z","updated_at":"2024-12-30T20:51:34.328Z","avatar_url":"https://github.com/teilomillet.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Enzu: Multi-Agent Framework for AI Systems\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/teilomillet/enzu.svg)](https://pkg.go.dev/github.com/teilomillet/enzu)\n[![Go Report Card](https://goreportcard.com/badge/github.com/teilomillet/enzu)](https://goreportcard.com/report/github.com/teilomillet/enzu)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nEnzu is a declarative Go framework designed for building sophisticated multi-agent AI systems. It enables LLMs and AI agents to collaborate, execute parallel tasks, and leverage extensible tools while maintaining clear hierarchies and communication patterns.\n\n## 🎯 Framework Capabilities\n\n### Agent System Architecture\n- **Hierarchical Agent Organization**: Define agent roles, responsibilities, and relationships\n- **Dynamic Task Distribution**: Automatically route tasks to specialized agents\n- **Parallel Processing**: Execute multiple agent tasks concurrently\n- **State Management**: Track and maintain agent states across interactions\n\n### Tool Integration System\n- **Declarative Tool Registry**: Register and manage tools with clear interfaces\n- **Inheritance Patterns**: Tools can be inherited and shared across agent hierarchies\n- **Thread-Safe Operations**: Concurrent tool access with built-in safety mechanisms\n- **Custom Tool Creation**: Extend functionality through a standardized tool interface\n\n### Execution Patterns\n- **Synergy-Based Collaboration**: Group agents into task-focused collaborative units\n- **Context Propagation**: Share context and state across agent boundaries\n- **Parallel Task Execution**: Optimize performance through concurrent processing\n- **Error Recovery**: Built-in retry mechanisms and error handling patterns\n\n### Communication Infrastructure\n- **HTTP Server Integration**: Built-in REST API capabilities\n- **Structured Message Passing**: Type-safe communication between agents\n- **Event System**: Publish-subscribe patterns for agent coordination\n- **Logging System**: Comprehensive tracing and debugging capabilities\n\n## 🔧 Core Integration Patterns\n\n### 1. Research and Analysis Pattern\n```go\n// Pattern: Distributed Research System\ntype ResearchRequest struct {\n    Topic       string   `json:\"topic\"`\n    Subtopics   []string `json:\"subtopics,omitempty\"`\n    MaxResults  int      `json:\"max_results,omitempty\"`\n    TimeoutSecs int      `json:\"timeout_secs,omitempty\"`\n}\n\n// Create specialized research agents\nresearcher := enzu.NewAgent(\"Primary Researcher\",\n    \"Deep research and fact verification\",\n    llm,\n    enzu.WithToolLists(\"ResearchTool\"),\n    enzu.WithParallelExecution(true),\n)\n\nanalyst := enzu.NewAgent(\"Data Analyst\",\n    \"Process and analyze research results\",\n    llm,\n    enzu.WithToolLists(\"AnalysisTool\"),\n    enzu.WithParallelExecution(true),\n)\n```\n\n### 2. Self-Aware System Pattern\n```go\n// Pattern: Self-Aware Interactive System\nmanager := enzu.NewSynergyManager(\"Self-Aware System\", llm, logger)\n\n// Define capability domains\nresearchSynergy := createDomainSynergy(\"Research\", llm, logger)\nanalysisSynergy := createDomainSynergy(\"Analysis\", llm, logger)\ncreativeSynergy := createDomainSynergy(\"Creative\", llm, logger)\n\n// Register domains\nmanager.AddSynergy(researchSynergy)\nmanager.AddSynergy(analysisSynergy)\nmanager.AddSynergy(creativeSynergy)\n```\n\n### 3. Tool Integration Pattern\n```go\n// Pattern: Extensible Tool System\nexaSearchOptions := tools.ExaSearchOptions{\n    NumResults: 5,\n    Type:      \"neural\",\n    Contents: tools.Contents{\n        Text: true,\n    },\n    UseAutoprompt:      true,\n    StartPublishedDate: \"2023-01-01T00:00:00.000Z\",\n}\ntools.RegisterTool(\"ResearchTool\", exaSearchOptions)\n```\n\n### 4. API Integration Pattern\n```go\n// Pattern: Multi-Agent API Server\ntype Server struct {\n    synergy *enzu.Synergy\n    logger  *enzu.Logger\n}\n\n// Initialize server with parallel processing capabilities\nfunc NewServer() (*Server, error) {\n    // Create research agents with specific roles\n    researchAgent1 := enzu.NewAgent(\"Research Agent 1\",\n        \"Agent specialized in AI research\",\n        llm,\n        enzu.WithToolLists(\"ResearchTool\"),\n        enzu.WithParallelExecution(true),\n    )\n    researchAgent2 := enzu.NewAgent(\"Research Agent 2\",\n        \"Agent specialized in startup research\",\n        llm,\n        enzu.WithToolLists(\"ResearchTool\"),\n        enzu.WithParallelExecution(true),\n    )\n\n    // Create parallel processing synergy\n    synergy := enzu.NewSynergy(\n        \"Parallel AI Research\",\n        llm,\n        enzu.WithAgents(researchAgent1, researchAgent2),\n        enzu.WithLogger(logger),\n    )\n\n    return \u0026Server{synergy: synergy, logger: logger}, nil\n}\n\n// Handle parallel task execution\nfunc (s *Server) handleExecute(w http.ResponseWriter, r *http.Request) {\n    var request struct {\n        Tasks []string `json:\"tasks\"`\n    }\n    \n    // Distribute tasks among agents\n    agents := s.synergy.GetAgents()\n    for i, taskDescription := range request.Tasks {\n        agent := agents[i%len(agents)] // Round-robin distribution\n        tasks = append(tasks, enzu.NewTask(taskDescription, agent))\n    }\n}\n```\n\n## 🚀 Capability Domains\n\n### 1. Research \u0026 Information Retrieval\n- Neural search integration (`ExaSearch` tool)\n- Multi-agent research coordination\n- Parallel information gathering\n- Research result synthesis\n\n### 2. Task Management \u0026 Execution\n- Multi-agent task distribution\n- Parallel task execution\n- Progress tracking\n- Result aggregation\n\n### 3. Web Content Processing\n- URL content fetching (`FetchURL` tool)\n- HTML parsing and extraction\n- CSS selector-based targeting\n- Structured data collection\n\n### 4. Synergy Management\n- Multi-synergy orchestration\n- Result synthesis across synergies\n- Team-based agent organization\n- Cross-team coordination\n- Hierarchical task execution\n\n### 5. Team Organization\n- Role-specialized agents\n- Team-based synergies\n- Domain-specific agent groups\n- Task-team alignment\n\n### 6. API Integration \u0026 Scaling\n- **Parallel Task Distribution**\n  - Round-robin task assignment\n  - Load-balanced processing\n  - Concurrent execution\n  - Real-time response handling\n\n- **HTTP Service Integration**\n  - RESTful endpoints\n  - JSON request/response\n  - Error handling patterns\n  - Status monitoring\n\n- **Multi-Agent Coordination**\n  - Role-based agent assignment\n  - Task synchronization\n  - Result aggregation\n  - State management\n\n## 📦 Installation\n\n```bash\ngo get github.com/teilomillet/enzu\n```\n\n## 📚 Integration Resources\n\n### Core Documentation\n- `/docs`: Architecture and integration guides\n- `/docs/tutorials`: Step-by-step implementation patterns\n- `/examples`: Reference implementations and use cases\n\n### Example Implementations\n1. Research Assistant System (`examples/8_research_assistant_example.go`)\n2. Self-Aware System (`examples/7_manager_mode_example.go`)\n3. Parallel Processing System (`examples/4_parallel_example.go`)\n4. Tool Integration System (`examples/3_tools_example.go`)\n5. API Integration System (`examples/6_api_example.go`)\n\n### Integration Patterns\n1. **HTTP API Integration**\n   - REST endpoint creation\n   - Request/Response handling\n   - Timeout management\n   - Error recovery\n   - Round-robin task distribution\n   - Load balancing strategies\n\n2. **Tool Registry Integration**\n   - Tool registration\n   - Capability inheritance\n   - Access control\n   - Resource management\n\n3. **Agent Collaboration**\n   - Task distribution\n   - Result synthesis\n   - Context sharing\n   - Error handling\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteilomillet%2Fenzu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteilomillet%2Fenzu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteilomillet%2Fenzu/lists"}