Skip to content

Idun-Group/idun-agent-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

396 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
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
Loading

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

About

πŸŸͺ 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.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors