You already have an agent. Maybe it’s a LangGraphDocumentation Index
Fetch the complete documentation index at: https://docs.idun-group.com/llms.txt
Use this file to discover all available pages before exploring further.
StateGraph in my_agent.py, or an ADK Agent in a Python package. This guide shows the smallest possible step from “I have an agent” to “I have an HTTP service with a chat UI, traces, and admin panel.”
Prerequisites
- Python 3.12 or newer
- Your agent code, with a top-level variable that holds the graph (LangGraph) or agent (ADK)
pip install idun-agent-engine(this ships theidunCLI and the bundled standalone admin UI)
Example: a LangGraph echo agent
Assume you havemy_agent.py in the current directory:
my_agent.py
Assign an uncompiled
StateGraph to the top-level variable. The engine compiles it with its own checkpointer and store. A CompiledStateGraph is also accepted (the engine extracts its .builder and recompiles), but you’ll see a deprecation warning.Step 1: Write a minimal config.yaml
config.yaml
agent.type:"LANGGRAPH"or"ADK"(case-insensitive). Determines which adapter wraps your code.agent.config.name: display name shown in the admin panel.agent.config.graph_definition:"<path>:<variable>"for LangGraph. For ADK, the equivalent field isagent.config.agent.
graph_definition format
The string is parsed as <path_or_module>:<variable_name>. The engine tries file-path resolution first, then falls back to Python module import:
graph, app, agent. Anything that resolves to a StateGraph works.
Step 2: Run
For evaluation and local development, use the standalone launcher:idun init runs Alembic migrations, seeds the DB from your config.yaml, opens your browser, and serves on http://localhost:8000. Subsequent boots only need:
IDUN_CONFIG_PATH points at ./config.yaml. Override with --config or the env var if your config lives elsewhere:
Or run programmatically (engine-only)
If you don’t want the admin panel and DB-backed config, use the engine SDK directly. No CLI, no DB, no UI:serve.py
POST /agent/run. You bring your own admin tooling.
Step 3: Test the agent
Openhttp://localhost:8000/ in a browser. The chat UI streams your agent’s responses.
Or call the API directly:
What you got for free
By writing eight lines of YAML, you now have:- A FastAPI service at
/agent/runwith AG-UI streaming - A chat UI at
/ - An admin panel at
/admin/for editing guardrails, memory, MCP servers, observability, and integrations - A trace viewer at
/admin/traces/with a waterfall span tree - An OpenAPI schema at
/docs
ADK agents
The flow is identical, withagent.type: "ADK" and the agent field instead of graph_definition:
config.yaml
What’s next
Production hardening
before exposing this beyond localhost
Guardrails overview
add input and output guards
Observability overview
wire Langfuse, Phoenix, or LangSmith
MCP Servers
attach MCP servers
Troubleshooting
graph load errors, reload failures