Categorygithub.com/Dieg0Code/syndicate-go
repositorypackage
0.2.1
Repository: https://github.com/dieg0code/syndicate-go.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

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?

ComparisonSyndicateDirect API CallsOther 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

ProviderStatusSupported Models
OpenAI✅ CompleteGPT-4o, GPT-4, o3, etc.
Azure OpenAI✅ CompleteAll Azure OpenAI models
Deepseek✅ BasicDeepseekR1
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.