Skip to content

Syndicate: A Go SDK for orchestrating AI agents with tool integration, memory management, and multi-agent workflows. Built for developers who need clean, idiomatic Go code with minimal overhead and maximum flexibility.

License

Notifications You must be signed in to change notification settings

Dieg0Code/syndicate-go

Repository files navigation

Syndicate SDK Logo

Go Report Card GitHub Workflow Status codecov GoDoc License: Apache 2.0 Release

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

🤝 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.

About

Syndicate: A Go SDK for orchestrating AI agents with tool integration, memory management, and multi-agent workflows. Built for developers who need clean, idiomatic Go code with minimal overhead and maximum flexibility.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages