Skip to main content

sunholo

A Python toolkit for building, configuring, and deploying GenAI applications. Sunholo provides a config-driven approach to working with multiple LLM providers, agent frameworks, and cloud infrastructure — letting you swap models, vectorstores, and deployment targets via YAML configuration rather than code changes.

Listen to a NotebookLM generated podcast about this blogpost:

Key Capabilities

  • Multi-provider GenAI — Use Google Gemini, OpenAI, Anthropic, Ollama, and Azure through a unified interface
  • Agent frameworks — Build agents with Google ADK, LangChain, or LlamaIndex
  • Config-driven architecture — Define models, tools, permissions, and infrastructure in YAML
  • Cloud-native deployment — Deploy to GCP Cloud Run, with AlloyDB vectorstores, Pub/Sub, and Firestore
  • Protocol support — FastAPI services with streaming, MCP (Model Context Protocol), and A2A
  • Multi-channel messaging — Connect agents to Email, Telegram, and WhatsApp

Installation

pip install sunholo

Install with specific feature groups:

ExtraInstall commandWhat it adds
[all]pip install sunholo[all]All dependencies
[cli]pip install sunholo[cli]Command-line interface
[gcp]pip install sunholo[gcp]Google Cloud Platform integration
[database]pip install sunholo[database]AlloyDB, Postgres, LanceDB
[firestore]pip install sunholo[firestore]Firestore with circuit breaker
[adk]pip install sunholo[adk]Google ADK agent framework
[channels]pip install sunholo[channels]Email, Telegram, WhatsApp
[openai]pip install sunholo[openai]OpenAI provider
[anthropic]pip install sunholo[anthropic]Anthropic provider
[pipeline]pip install sunholo[pipeline]Chunking and embedding pipeline
[http]pip install sunholo[http]HTTP tools with retry

Module Overview

ModuleDescription
sunholo.agentsFastAPI/Flask route handlers for GenAI services (VACs)
sunholo.adkGoogle ADK integration — agent config, sessions, events, MCP tools
sunholo.channelsMulti-channel messaging — Email, Telegram, WhatsApp
sunholo.databaseVector stores — AlloyDB, Postgres, LanceDB, Firestore, Supabase
sunholo.genaiGeneric AI interface with extended thinking capture
sunholo.streamingReal-time response streaming
sunholo.toolsConfig-driven permissions and async tool orchestration
sunholo.authOAuth, RBAC, GCP/Azure authentication
sunholo.mcpModel Context Protocol server and client
sunholo.cliCommand-line interface for chat, deploy, and config management
sunholo.integrationsLangChain, LlamaIndex, Vertex AI, Langfuse

Quick Example

Sunholo uses YAML configuration files to define your GenAI application. Access settings via ConfigManager:

from sunholo.utils import ConfigManager

# Load configuration for a VAC (Virtual Agent Computer)
config = ConfigManager("my_agent")

# Access model settings from vac_config.yaml
llm = config.vacConfig("llm") # e.g. "openai"
model = config.vacConfig("model") # e.g. "gpt-4"
agent_type = config.vacConfig("agent") # e.g. "langchain"

Define your agent in vac_config.yaml:

kind: vacConfig
apiVersion: v1
vac:
my_agent:
llm: openai
model: gpt-4
agent: langchain
display_name: My Agent
tags:
- general

What is Multivac?

Multivac is the full platform built on top of sunholo for deploying and managing GenAI applications at scale. It adds a web UI, user management, billing, and orchestration on Google Cloud Platform. See the Multivac documentation for more details.

Running Tests

pip install pytest
pytest tests
Sunholo Multivac

Get in touch to see if we can help with your GenAI project.

Contact us

Other Links

Sunholo Multivac - GenAIOps

Copyright ©

Holosun ApS 2026