Home/AI Agents/cuga-agent
cuga-agent logo

cuga-agent

Enrichment pending
cuga-project/cuga-agent

CUGA is an open-source generalist agent harness for the enterprise, supporting complex task execution on web and APIs, OpenAPI/MCP integrations, composable architecture, reasoning modes, and policy-aw

GraphCanon updated today · GitHub synced today

861 stars144 forksLast push today Python Other

Verify the decision

Maintenance and security

Full trust report
Maintenance
Very active (0d since push)
As of today
Provenance
Not a fork · Organization account
As of today
Security (OSV)
2 low (2 low)
As of today

Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.

Install

pip install cuga-agent
PyPI

Similar tools

Same-category neighbours. No typed graph edges are catalogued for this tool yet.

Evidence and technical details

Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.

Overview

CUGA is an open-source generalist agent harness for the enterprise, supporting complex task execution on web and APIs, OpenAPI/MCP integrations, composable architecture, reasoning modes, and policy-aware features.

Capability facts

Deploy
Self-host

Source: dockerfile:Dockerfile · Jul 15, 2026

Docker
Dockerfile present

Source: dockerfile:Dockerfile · Jul 15, 2026

CLI
CLI entrypoint

Source: pyproject.toml:[project.scripts] · Jul 15, 2026

Languages
python

Source: github.language+pyproject.toml · Jul 15, 2026

Categories

Compatibility

Sourced claims from the README excerpt - not unsourced marketing copy.

Python runtimePython

Source: README excerpt (regex_v1, Jul 15, 2026)

- **Python 3.12+** - [Download here](https://www.python.org/downloads/)
Source link

Tags

README

Manage, publish, and self-hosting

Manage and publish — Run cuga start manager to start the manage-mode stack. You edit agent configuration (tools, MCP servers, LLM selection, policies) as a draft, try it in the draft chat, then publish to create a new version that production chat uses. Published versions are tracked so you can roll forward and audit what shipped.

Self-host on Kubernetes — The repo includes a Helm chart under deployment/helm/, helper scripts such as deployment/deploy-local.sh, and documentation for building images, pushing to a registry, and wiring API keys via Kubernetes secrets for clusters such as kind, minikube, Docker Desktop Kubernetes, GKE, EKS, or AKS. See deployment/README.md.

Explore the Roadmap to see what's ahead, or join the Call for the Community to get involved.


Quick Start

Prerequisites (click to expand)

---

### Quick Start

```python
from cuga import CugaAgent
from langchain_core.tools import tool
import asyncio

@tool
def add_numbers(a: int, b: int) -> int:
    '''Add two numbers together'''
    return a + b

@tool
def multiply_numbers(a: int, b: int) -> int:
    '''Multiply two numbers together'''
    return a * b

---

### Quick Start

```python
from cuga import CugaAgent, CugaSupervisor
from langchain_core.tools import tool
import asyncio

@tool
def get_customers(limit: int = 10) -> str:
    """Fetch top customers from CRM with name, email, and revenue. Returns a formatted string."""
    customers = [
        "Alice (alice@example.com, $250,000)",
        "Bob (bob@example.com, $180,000)",
        "Carol (carol@example.com, $120,000)",
        "Dave (dave@example.com, $95,000)",
        "Eve (eve@example.com, $88,000)",
    ]
    top = customers[: min(limit, len(customers))]
    return "Top customers by revenue: " + "; ".join(f"{i+1}. {c}" for i, c in enumerate(top))

@tool
def send_email(to: str, body: str) -> str:
    """Send an email. Returns confirmation."""
    return f"Email sent successfully to {to}"

async def main():
    crm_agent = CugaAgent(tools=[get_customers])
    crm_agent.description = "CRM and customer data"

    email_agent = CugaAgent(tools=[send_email])
    email_agent.description = "Sending emails and notifications"

    supervisor = CugaSupervisor(agents={
        "crm": crm_agent,
        "email": email_agent,
    })

    result = await supervisor.invoke("Get our top 5 customers by revenue, then send the top customer a thank-you email")
    print(result.answer)

asyncio.run(main())

To add a remote agent via A2A, pass an external config in agents: "analytics": {"type": "external", "description": "...", "config": {"a2a_protocol": {"endpoint": "http://localhost:9999", "transport": "http"}}}.

For agents

This page has a .md twin and JSON over the API.

Was this helpful?

Anonymous feedback helps us improve pages and translations.