# README
Syndicate
A Go SDK for building and orchestrating intelligent AI agents that seamlessly connect to LLMs, tools, and workflows without the complexity of direct API management.
🚀 Project Status
Current status: Beta - Stable API but under active development
Version: v0.2.0
Go Version: 1.24+
🤔 Why Syndicate?
Comparison | Syndicate | Direct API Calls | Other Solutions |
---|---|---|---|
Modularity | ✅ Fully modular architecture | ❌ Code coupled to a provider | ⚠️ Varies by implementation |
Multi-agent | ✅ Native support for orchestrating multiple agents | ❌ Requires manual implementation | ⚠️ Limited or complex |
Memory Management | ✅ Customizable and thread-safe | ❌ Not included | ⚠️ Generally basic |
Tool Integration | ✅ Automatic with schema validation | ❌ Manual | ⚠️ Often limited |
Overhead | ✅ Minimal, built for performance | ✅ None | ❌ Often significant |
📊 LLM Compatibility
Provider | Status | Supported Models |
---|---|---|
OpenAI | ✅ Complete | GPT-4o, GPT-4, o3, etc. |
Azure OpenAI | ✅ Complete | All Azure OpenAI models |
Deepseek | ✅ Basic | DeepseekR1 |
Claude | 🔄 In development | - |
📚 Documentation
For a complete overview of the SDK features, see our Quick Guide.
📦 Installation
go get github.com/Dieg0Code/syndicate-go
🔑 Key Features
🤖 Agent Management
Create AI entities with distinct personalities, knowledge bases, and toolsets. Agents can work independently or together in pipelines to handle complex workflows.
🧠 Prompt Engineering
Create structured, detailed prompts that guide agent behavior with consistent responses. The SDK includes utilities for building and managing sophisticated prompts.
🛠️ Tool Integration
Connect agents with external tools and services using automatically generated JSON schemas from Go structures, complete with validation.
💾 Memory Management
Implement customizable memory systems to maintain context across conversations, with support for various storage backends from in-memory to databases.
🔄 Workflow Orchestration
Build multi-agent pipelines that process information sequentially, enabling complex conversational workflows that mirror real-world processes.
🔍 Quick Example
package main
import (
"context"
"fmt"
syndicate "github.com/Dieg0Code/syndicate-go"
openai "github.com/sashabaranov/go-openai"
)
func main() {
// Initialize OpenAI client
client := syndicate.NewOpenAIClient("YOUR_API_KEY")
// Create an order processing agent
orderAgent, _ := syndicate.NewAgent().
SetClient(client).
SetName("OrderAgent").
SetConfigPrompt("You process customer orders.").
SetModel(openai.GPT4).
Build()
// Create a summary agent
summaryAgent, _ := syndicate.NewAgent().
SetClient(client).
SetName("SummaryAgent").
SetConfigPrompt("You summarize order details.").
SetModel(openai.GPT4).
Build()
// Create a pipeline with both agents
system := syndicate.NewSyndicate().
RecruitAgent(orderAgent).
RecruitAgent(summaryAgent).
DefinePipeline([]string{"OrderAgent", "SummaryAgent"}).
Build()
// Process user input
response, _ := system.ExecutePipeline(
context.Background(),
"User",
"I'd like to order two pizzas for delivery to 123 Main St."
)
fmt.Println(response)
}
For a complete step-by-step guide with tool integration and custom memory implementation, see our detailed examples.
🛠️ Advanced Features
Config Prompt Builder
The Config Prompt Builder helps create structured agent configuration prompts using a fluent API:
configPrompt := syndicate.NewPromptBuilder().
CreateSection("Introduction").
AddText("Introduction", "You are a customer service agent.").
CreateSection("Capabilities").
AddListItem("Capabilities", "Answer product questions.").
AddListItem("Capabilities", "Handle order inquiries.").
Build()
📦 Dependencies
- sashabaranov/go-openai - Apache License 2.0
- cohesion-org/deepseek-go - MIT License
🤝 Contributing
Contributions are welcome! Feel free to open issues or submit pull requests on GitHub.
📜 License
This project is licensed under Apache License 2.0 - See the LICENSE file for details.