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.
Current status: Beta - Stable API but under active development
Version: v0.2.0
Go Version: 1.24+
Comparison | Syndicate | Direct API Calls | Other Solutions |
---|---|---|---|
Modularity | ✅ Fully modular architecture | ❌ Code coupled to a provider | |
Multi-agent | ✅ Native support for orchestrating multiple agents | ❌ Requires manual implementation | |
Memory Management | ✅ Customizable and thread-safe | ❌ Not included | |
Tool Integration | ✅ Automatic with schema validation | ❌ Manual | |
Overhead | ✅ Minimal, built for performance | ✅ None | ❌ Often significant |
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 | - |
For a complete overview of the SDK features, see our Quick Guide.
go get github.com/Dieg0Code/syndicate-go
Create AI entities with distinct personalities, knowledge bases, and toolsets. Agents can work independently or together in pipelines to handle complex workflows.
Create structured, detailed prompts that guide agent behavior with consistent responses. The SDK includes utilities for building and managing sophisticated prompts.
Connect agents with external tools and services using automatically generated JSON schemas from Go structures, complete with validation.
Implement customizable memory systems to maintain context across conversations, with support for various storage backends from in-memory to databases.
Build multi-agent pipelines that process information sequentially, enabling complex conversational workflows that mirror real-world processes.
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.
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()
- sashabaranov/go-openai - Apache License 2.0
- cohesion-org/deepseek-go - MIT License
Contributions are welcome! Feel free to open issues or submit pull requests on GitHub.
This project is licensed under Apache License 2.0 - See the LICENSE file for details.