idun-agent-platform

mcp
SUMMARY

๐ŸŸช Open source Agent Governance Platform that turns any LangGraph or ADK agent into a production-ready service. Supports: AG-UI, CopilotKit API, OpenTelemetry, MCP, memory, guardrails, SSO, RBAC.

README.md
Idun Agent Platform

Everything you need to deploy AI agents to production


License: GPLv3
CI
PyPI
Discord
Stars
Commits


Cloud ยท Quickstart ยท Docs ยท Discord ยท Book a demo

โญ If you find this useful, please star the repo. It helps others discover the project.


Idun Agent Platform is an open-source, self-hosted control plane for LangGraph and Google ADK agents. Enroll your agent and get a production-grade service with built-in observability, guardrails, memory persistence, MCP tool governance, prompt management, and SSO with workspace isolation.

Why Idun? Teams building agents face a bad tradeoff: build the platform yourself (slow, expensive) or adopt a SaaS (lock-in, no sovereignty). Idun is the third path: you keep your agent code, your data, and your infrastructure. The platform handles the production layer.

Idun Agent Platform demo


Quick start

Prerequisites: Docker and Git.

git clone https://github.com/Idun-Group/idun-agent-platform.git && cd idun-agent-platform
cp .env.example .env
docker compose -f docker-compose.dev.yml up --build

Open localhost:3000. Create an account. Deploy your first agent in 3 clicks.

[!TIP]
Don't need the full platform? Run a standalone agent with no Manager and no database:

pip install idun-agent-engine && idun init

The interactive TUI configures framework, memory, observability, guardrails, and MCP in one pass. See the CLI docs.


What's inside

Observability

Langfuse ยท Arize Phoenix ยท LangSmith ยท GCP Trace ยท GCP Logging

Trace every agent run. Connect multiple providers at the same time through config.

Observability

Guardrails

PII detection ยท Toxic language ยท Ban lists ยท Topic restriction ยท Bias checks ยท NSFW ยท 9 more

Apply policies per agent on input, output, or both. Powered by Guardrails AI.

Guardrails

MCP tool governance

Register MCP servers and control which tools each agent can access. Supports stdio, SSE, streamable HTTP, and WebSocket.

MCP

Memory and persistence

PostgreSQL ยท SQLite ยท In-memory ยท Vertex AI ยท ADK Database

Conversations persist across restarts. Pick a backend per agent.

Memory

Prompt management

Versioned templates with Jinja2 variables. Assign prompts to agents from the UI or API.

Prompts

Messaging integrations

WhatsApp ยท Discord ยท Slack

Bidirectional: receive messages, invoke agents, send replies. Webhook verification handled.

Integrations

[!NOTE]
SSO and multi-tenancy โ€” OIDC with Google and Okta, or username/password. Role-based workspaces (owner, admin, member, viewer). Every resource is scoped to a workspace.

[!NOTE]
AG-UI streaming โ€” Every agent gets a standards-based streaming API, compatible with CopilotKit clients. Built-in chat playground for testing.

Agent detail


Architecture

Engine Wraps LangGraph/ADK agents into a FastAPI service with AG-UI streaming, checkpointing, guardrails, observability, MCP, and SSO. Config from YAML or Manager API.
Manager Control plane. Agent CRUD, resource management, multi-tenant workspaces. Serves materialized configs to engines.
Web UI React 19 admin dashboard. Agent creation wizard, resource config, built-in chat, user management.
flowchart LR
  subgraph Actors
    Users["End users / Apps"]
    Admin["Admin / DevOps"]
    CICD["CI/CD"]
  end

  subgraph Platform["Idun Agent Platform"]
    direction TB
    UI["Web UI"]
    MGR["Manager API"]
    subgraph Engines["Engines"]
      ENG1["LangGraph"]
      ENG2["ADK"]
    end
    DB[(PostgreSQL)]
  end

  subgraph Infra["Your stack"]
    OBS["Observability"]
    MEM[(Memory)]
    LLM["LLMs"]
    TOOLS["MCP tools"]
  end

  Admin --> UI --> MGR --> DB
  Engines -- "config" --> MGR
  CICD --> Engines
  Users --> Engines --> Infra

Integrations

LangGraph ADK Langfuse MCP PostgreSQL Phoenix LangSmith Google Cloud Okta Guardrails AI LangChain A2A AG-UI


Idun vs alternatives

Idun Platform LangGraph Cloud LangSmith DIY (FastAPI + glue)
Self-hosted / on-prem โœ… โŒ โŒ โœ…
Multi-framework (LangGraph + ADK) โœ… LangGraph only โŒ (observability only) Manual
Guardrails (PII, toxicity, topic) โœ… 15+ built-in โŒ โŒ Build yourself
MCP tool governance โœ… per-agent โŒ โŒ Build yourself
Multi-tenant workspaces + RBAC โœ… โŒ โœ… Build yourself
SSO (OIDC, Okta, Google) โœ… โŒ โœ… Build yourself
Observability (Langfuse, Phoenix, LangSmith, GCP) โœ… multi-provider โŒ LangSmith only โœ… LangSmith only Manual
Memory / checkpointing โœ… Postgres, SQLite, in-memory โœ… โŒ Build yourself
Prompt management (versioned, Jinja2) โœ… โŒ โœ… Hub Build yourself
Messaging (WhatsApp, Discord, Slack) โœ… โŒ โŒ Build yourself
AG-UI / CopilotKit streaming โœ… โœ… โŒ Manual
Admin UI โœ… โœ… โœ… โŒ
Vendor lock-in None High High None
Open source โœ… GPLv3 โŒ โŒ โ€”
Maintenance burden Low Low Low High

[!NOTE]
Idun is not a replacement for LangSmith (observability) or LangGraph Cloud (hosting). It is the layer between your agent code and production that handles governance, security, and operations, regardless of which observability or hosting you choose.


Configuration

Every agent is configured through a single YAML file. Here is a complete example with all features enabled:

server:
  api:
    port: 8001

agent:
  type: "LANGGRAPH"
  config:
    name: "Support Agent"
    graph_definition: "./agent.py:graph"
    checkpointer:
      type: "sqlite"
      db_url: "sqlite:///checkpoints.db"

observability:
  - provider: "LANGFUSE"
    enabled: true
    config:
      host: "https://cloud.langfuse.com"
      public_key: "${LANGFUSE_PUBLIC_KEY}"
      secret_key: "${LANGFUSE_SECRET_KEY}"

guardrails:
  input:
    - config_id: "DETECT_PII"
      on_fail: "reject"
      reject_message: "Request contains personal information."
  output:
    - config_id: "TOXIC_LANGUAGE"
      on_fail: "reject"

mcp_servers:
  - name: "time"
    transport: "stdio"
    command: "docker"
    args: ["run", "-i", "--rm", "mcp/time"]

prompts:
  - prompt_id: "system-prompt"
    version: 1
    content: "You are a support agent for {{ company_name }}."
    tags: ["latest"]

sso:
  enabled: true
  issuer: "https://accounts.google.com"
  client_id: "123456789.apps.googleusercontent.com"
  allowed_domains: ["yourcompany.com"]

integrations:
  - provider: "WHATSAPP"
    enabled: true
    config:
      access_token: "${WHATSAPP_ACCESS_TOKEN}"
      phone_number_id: "${WHATSAPP_PHONE_ID}"
      verify_token: "${WHATSAPP_VERIFY_TOKEN}"

[!TIP]
Environment variables like ${LANGFUSE_SECRET_KEY} are resolved at startup. You can use .env files or inject them through Docker/Kubernetes.

Serve from a file:

pip install idun-agent-engine
idun agent serve --source file --path config.yaml

Or fetch config from the Manager:

export IDUN_AGENT_API_KEY=your-agent-api-key
export IDUN_MANAGER_HOST=https://manager.example.com
idun agent serve --source manager

[!IMPORTANT]
Full config reference: docs.idunplatform.com/configuration

9 runnable agent examples: idun-agent-template


Community

Questions and help Discord
Feature requests GitHub Discussions
Bug reports GitHub Issues
Contributing CONTRIBUTING.md
Roadmap ROADMAP.md

Commercial support

Maintained by Idun Group. We help with platform architecture, deployment, and IdP/compliance integration. Book a call ยท [email protected]

Telemetry

Minimal, anonymous usage metrics via PostHog. No PII. View source. Opt out: IDUN_TELEMETRY_ENABLED=false

License

GPLv3

Yorumlar (0)

Sonuc bulunamadi