====== Dify ======
**Dify** is an open-source agentic workflow platform that enables developers and non-technical users to build, deploy, and manage LLM-powered applications through a visual workflow designer and programmatic APIs. With over **134,000 GitHub stars**, Dify has become one of the most popular platforms for orchestrating AI agents and RAG pipelines.
| **Repository** | [[https://github.com/langgenius/dify|github.com/langgenius/dify]] |
| **License** | Apache 2.0 |
| **Language** | Python, TypeScript |
| **Stars** | 134K+ |
| **Category** | Agentic Workflow Platform |
===== Key Features =====
* **Visual Workflow Studio** — Drag-and-drop interface for designing AI workflows, training agents, and configuring RAG systems
* **Multi-Model Support** — Access, switch, and compare performance across dozens of LLM providers including OpenAI, Anthropic, open-source models
* **RAG Pipeline** — Built-in retrieval-augmented generation engine that extracts, transforms, and indexes data from various sources into vector databases
* **Agent Node System** — Autonomous decision-making nodes within workflows using ReAct, Function Calling, Chain-of-Thought, Tree-of-Thought, and custom strategies
* **Prompt IDE** — Dedicated prompt orchestration interface for configuring and managing prompts
* **MCP Integration** — Native Model Context Protocol support for accessing external APIs, databases, and services
* **Backend-as-a-Service** — One-click deployment as APIs, chatbots, or internal business tools
===== Architecture =====
Dify employs a **Beehive modular architecture** where each component can be developed, tested, and deployed independently. The platform comprises three core operational layers:
* **LLM Orchestration Layer** — Manages connections and switching between multiple large language models
* **Visual Studio Layer** — Drag-and-drop interface for designing workflows and configuring agents
* **Deployment Hub** — Enables publishing as APIs, chatbots, or internal tools
Model suppliers and models are configured declaratively using **YAML-based DSL**, standardizing the process of adding new models while maintaining API consistency across integration points.
graph TB
subgraph Client["Client Layer"]
WebUI[Web UI]
API[REST API]
MCP[MCP Server]
end
subgraph Core["Core Engine"]
WF[Workflow Engine]
Agent[Agent Node]
Prompt[Prompt IDE]
end
subgraph Models["LLM Orchestration"]
OpenAI[OpenAI]
Claude[Anthropic]
OSS[Open Source Models]
end
subgraph Data["Data Layer"]
RAG[RAG Pipeline]
VDB[(Vector DB)]
KB[Knowledge Base]
end
Client --> Core
Core --> Models
Core --> Data
RAG --> VDB
RAG --> KB
Agent --> WF
===== Agent Strategies =====
The Agent Node functions as a decision center within workflows, supporting multiple reasoning strategies:
* **ReAct** — Chain of Think-Act-Observe cycles
* **Function Calling** — Precise function-based tool invocation
* **Chain-of-Thought (CoT)** — Step-by-step reasoning
* **Tree-of-Thought (ToT)** — Branching exploration of reasoning paths
* **Graph-of-Thought (GoT)** — Graph-based reasoning structures
Developers can create custom strategy plugins using CLI tools and customize configuration forms.
===== Code Example =====
import requests
DIFY_API_KEY = "app-your-api-key"
BASE_URL = "https://api.dify.ai/v1"
def run_workflow(inputs, user_id="default"):
response = requests.post(
f"{BASE_URL}/workflows/run",
headers={
"Authorization": f"Bearer {DIFY_API_KEY}",
"Content-Type": "application/json"
},
json={
"inputs": inputs,
"response_mode": "blocking",
"user": user_id
}
)
return response.json()
result = run_workflow({"query": "Summarize this document"})
print(result["data"]["outputs"])
===== References =====
* [[https://github.com/langgenius/dify|Dify GitHub Repository]]
* [[https://dify.ai|Dify Official Website]]
* [[https://docs.dify.ai|Dify Documentation]]
* [[https://dify.ai/blog/dify-rolls-out-new-architecture|Dify Architecture Blog Post]]
===== See Also =====
* [[ragflow|RAGFlow]] — RAG engine with deep document understanding
* [[langfuse|Langfuse]] — LLM observability and tracing
* [[mem0|Mem0]] — Memory layer for AI agents
* [[mcp_servers|MCP Servers]] — Model Context Protocol implementations