by Idun-Group
🟪 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.
# Add to your Claude Code skills
git clone https://github.com/Idun-Group/idun-agent-platformCloud · Quickstart · Docs · Discord · Book a demo
⭐ If you find this useful, please star the repo. It helps others discover the project.
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.
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 initThe interactive TUI configures framework, memory, observability, guardrails, and MCP in one pass. See the CLI docs.
Langfuse · Arize Phoenix · LangSmith · GCP Trace · GCP Logging
Trace every agent run. Connect multiple providers at the same time through config.
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.
Register MCP servers and control which tools each agent can access. Supports stdio, SSE, streamable HTTP, and WebSocket.
PostgreSQL · SQLite · In-memory · Vertex AI · ADK Database
Conversations persist across restarts. Pick a backend per agent.
Versioned templates with Jinja2 variables. Assign prompts to agents from the UI or API.
WhatsApp · Discord · Slack
Bidirectional: receive messages, invoke agents, send replies. Webhook verification handled.
[!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.
| | | |---|---| | 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
| | 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.
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:
- pro
No comments yet. Be the first to share your thoughts!