| What it is | Embeddable AI agent runtime — a headless engine your product talks to over REST + SSE | AI application studio — you build chatbots and workflows inside Dify’s visual editor |
| Core stack | Go — one compiled binary plus PostgreSQL (2 containers) | Python (Flask + Celery) with a Next.js frontend — 13 containers in the default self-host stack (v1.15) |
| Multi-agent | Dynamic: a supervisor delegates and spawns sub-agents at runtime, with concurrency and cycle policies | Agent nodes inside a workflow canvas (Function Calling or ReAct, capped iterations) — no runtime sub-agent spawning |
| Tenant context in tools | Forwarded automatically: Authorization, org, user, and custom headers travel from your API request into every MCP tool call | Static per-server headers set at config time; no documented per-request header forwarding into tool calls |
| Human confirmation | Per-tool: mark any tool confirm-before and execution pauses for explicit user approval | Workflow-level Human Input node; per-tool confirmation was declined in their tracker (closed “not planned”) |
| MCP | HTTP, SSE, streamable-HTTP, and stdio transports; per-agent tool scoping; server-side execution | Two-way MCP over HTTP only (no stdio); can also publish Dify apps as MCP servers |
| Knowledge | Vector RAG plus typed knowledge graphs with auto-generated, deterministic retrieval tools | Knowledge bases with vector retrieval and summary-index options |
| License | Standard BSL 1.1 (MariaDB, Sentry, CockroachDB model) → Apache 2.0 after four years; self-host free, multi-tenant allowed | Modified Apache 2.0: multi-tenant use prohibited without written authorization; logo may not be removed from the frontend |
| Implementation service | Optional done-for-you production build with a measured acceptance bar | Platform plus partner ecosystem |