Dify
Research Date: 2026-02-23
Source URL: https://dify.ai
GitHub Repository: https://github.com/langgenius/dify
Documentation: https://docs.dify.ai
Version at Research: v1.13.0
License: Dify Open Source License (Apache 2.0 with additional conditions)
Overview
Dify is an open-source platform for building LLM applications and agentic workflows. Its visual canvas
combines agentic AI workflows, RAG pipelines, agent capabilities, multi-model management, and LLMOps
observability—enabling teams to move from prototype to production without writing infrastructure code.
With 130K+ GitHub stars and 1,100+ contributors, it is one of the most widely adopted LLM application
development platforms available.
Problem Addressed
| Problem |
Solution |
| Building LLM applications requires deep infrastructure knowledge |
Visual workflow canvas handles orchestration, routing, and state management |
| Switching between LLM providers is costly |
Unified model management layer supports 100+ providers via a single interface |
| RAG pipelines are complex to implement and tune |
Built-in document ingestion, chunking, embedding, and retrieval with configurable strategies |
| Agent tool integration requires custom code per tool |
50+ pre-built tools (Google Search, DALL·E, WolframAlpha, etc.) with custom tool support |
| Monitoring LLM app quality in production is opaque |
LLMOps layer tracks logs, latency, token usage, and user feedback with annotation support |
| Human oversight in automated workflows is hard to embed |
Human-in-the-Loop (HITL) node pauses execution for review, edit, and action-based routing |
| Deploying LLM apps as APIs requires bespoke backend work |
Backend-as-a-Service: all capabilities expose REST APIs for integration into existing systems |
Key Statistics
| Metric |
Value |
Date Gathered |
| GitHub Stars |
130,011 |
2026-02-23 |
| GitHub Forks |
20,249 |
2026-02-23 |
| Open Issues |
748 |
2026-02-23 |
| Contributors |
~1,146 |
2026-02-23 |
| Watchers |
754 |
2026-02-23 |
| Latest Release |
v1.13.0 |
2026-02-11 |
| Primary Language |
TypeScript |
2026-02-23 |
| Repository Created |
2023 |
2026-02-23 |
Key Features
Visual Workflow Builder
- Drag-and-drop canvas: Compose multi-step LLM pipelines with conditional routing, loops, and parallel branches
- Node types: LLM, Code, HTTP Request, Template, Variable Aggregator, Iterator, Parameter Extractor, Document Extractor, Knowledge Retrieval
- Human-in-the-Loop (HITL): Native "Human Input" node suspends execution; supports Webapp and Email delivery of review forms
- Workflow versioning: Save, compare, and roll back workflow versions
- Streaming execution: Workflows run in Celery workers with Redis Pub/Sub for real-time event streaming
Comprehensive Model Support
- 100+ model providers: OpenAI, Anthropic, Mistral, Llama 3, Gemini, Azure, AWS Bedrock, Hugging Face, Ollama, and OpenAI-compatible endpoints
- Unified model management: Switch models per node without rewriting workflow logic
- System model configuration: Set default inference, embedding, reranking, speech-to-text, and TTS models per workspace
RAG Pipeline
- Document ingestion: PDF, DOCX, TXT, HTML, Markdown, CSV, and more via built-in extractors
- Chunking strategies: Fixed-size, semantic, parent-child, and hierarchical chunking
- Embedding models: Configurable embedding provider per knowledge base
- Retrieval modes: Semantic search, full-text search, and hybrid (weighted combination)
- Reranking: Optional reranker model pass for precision improvements
- External knowledge bases: Connect to external vector stores via API extension
Agent Capabilities
- Agent types: ReAct (reasoning + acting) and LLM Function Calling based agents
- Built-in tools: 50+ tools including Google Search, DALL·E, Stable Diffusion, WolframAlpha, web scraping, code execution (sandboxed Python/JavaScript via Dify Sandbox)
- Custom tools: OpenAPI/Swagger schema import or manual tool definition
- Tool permissions: Per-workspace tool access control
Prompt IDE
- Prompt editor: Jinja2-templated prompts with variable binding
- Model comparison: A/B test prompts across multiple models side-by-side
- Dataset annotation: Label production outputs for fine-tuning and evaluation datasets
- Text-to-speech: Add TTS output to chat applications
LLMOps & Observability
- Application logs: Full message history with user metadata, token counts, latency
- Performance dashboards: Active users, token cost, response latency trends over time
- Annotation workflows: Mark production responses as golden examples or corrections
- Tracing integrations: LangFuse, LangSmith, and other observability platforms via plugin
Backend-as-a-Service
- REST APIs: Every application type (chatbot, workflow, agent) exposes a stable REST API
- Webhook support: Trigger workflows from external events
- Streaming API: Server-sent events for real-time token streaming to client applications
- Embedding widget: Iframe or script embed for web pages
Application Types
- Chatbot: Single-turn or multi-turn conversational interfaces
- Text Generator: Batch or single document generation workflows
- Agent: Autonomous tool-using agents with conversation history
- Workflow: Complex multi-step DAG pipelines with parallel execution
Technical Architecture
Stack Components
| Component |
Technology |
| Backend API |
Python (Flask) |
| Frontend |
Next.js (TypeScript) |
| Worker Queue |
Celery + Redis |
| Primary Database |
PostgreSQL |
| Vector Database |
Weaviate / Qdrant / Chroma / pgvector (configurable) |
| Caching |
Redis |
| Storage |
Local / S3 / Azure Blob / Google Cloud Storage |
| Container |
Docker + Docker Compose |
| Orchestration |
Kubernetes (community Helm charts) |
Execution Architecture (v1.13.0)
Client (Web / API)
|
API Process (Flask)
|
+-----------+-------------+
| |
Non-streaming runs Workflow + Advanced Chat streaming
(API process) (Celery: workflow_based_app_execution queue)
|
Redis Pub/Sub (PUBSUB_REDIS_URL)
|
SSE stream → Client
Data Flow (RAG Application)
User query
→ Dify API
→ Knowledge Retrieval node (embed query → vector search → rerank)
→ Retrieved chunks injected into LLM prompt context
→ LLM node (configured provider/model)
→ Response streamed back via Redis Pub/Sub
→ LLMOps log written to PostgreSQL
Installation & Usage
Quick Start with Docker Compose
# Clone the repository
git clone https://github.com/langgenius/dify.git
cd dify/docker
# Configure environment
cp .env.example .env
# Start all services (API, worker, web, sandbox, vector DB, Redis, PostgreSQL)
docker compose up -d
# Access the UI
open http://localhost/install
Environment Configuration (key variables)
# Required: Secret key for session signing
SECRET_KEY=your-secret-key
# Vector store backend (weaviate | qdrant | milvus | pgvector | chroma | opensearch)
VECTOR_STORE=weaviate
# PubSub Redis for HITL/streaming (v1.13.0+)
PUBSUB_REDIS_URL=redis://redis:6379/0
PUBSUB_REDIS_CHANNEL_TYPE=pubsub # or 'sharded' for high-throughput
# Storage backend
STORAGE_TYPE=local # or s3, azure-blob, google-storage
REST API Usage
# Call a workflow via REST API
curl -X POST https://api.dify.ai/v1/workflows/run \
-H "Authorization: Bearer {api-key}" \
-H "Content-Type: application/json" \
-d '{
"inputs": {"query": "Summarize this document"},
"response_mode": "streaming",
"user": "user-123"
}'
Relevance to Claude Code Development
Applications
Workflow orchestration reference: Dify's node-based workflow DAG (conditional routing, parallel branches, loops, error handling) provides a mature reference architecture for designing Claude Code multi-agent pipelines.
RAG pipeline patterns: The chunking, embedding, retrieval, and reranking pipeline in Dify is a production-tested reference for the context-management and skill-generation-tools plugins.
LLMOps instrumentation: Dify's tracing, annotation, and feedback loop patterns can inform observability design in Claude Code skill execution frameworks.
HITL integration: The Human-in-the-Loop node design (pause/resume via Celery + Redis Pub/Sub) is a concrete pattern for building human-approval gates into Claude Code agentic workflows.
Backend-as-a-Service model: Exposing Claude Code agent capabilities as REST APIs mirrors Dify's BaaS approach—useful when integrating Claude Code into external systems.
Patterns Worth Adopting
Visual workflow canvas concepts: Node abstraction (each skill as a node with defined inputs/outputs) maps well to Claude Code skill composition.
Unified model abstraction layer: Provider-agnostic model selection at the node level, rather than hardcoding a model in every skill.
Annotation-driven improvement: Production response labeling and dataset curation as a continuous improvement loop for skill quality.
Streaming via Pub/Sub: Redis Pub/Sub for fan-out streaming of execution events to multiple consumers (UI, logging, downstream agents).
Sandboxed code execution: Dify Sandbox (isolated Python/JavaScript execution environment) is a pattern for safe code execution in Claude Code tool steps.
Integration Opportunities
MCP Server for Dify: Expose Dify workflows as MCP tools so Claude Code can invoke production Dify applications as skills.
Dify as orchestration backend: Use Dify to manage the RAG and model-routing layers while Claude Code handles coding-specific agent behavior.
Cross-tool knowledge bases: Share Dify knowledge bases (vector stores) with Claude Code context management plugins for unified document retrieval.
Dify tools in Claude Code: Import Dify's 50+ pre-built tool definitions as MCP server tools for Claude Code agents.
LLMOps for Claude Code sessions: Route Claude Code session traces to Dify's annotation/evaluation pipeline for quality monitoring.
Competitive Analysis
| Aspect |
Dify |
Claude Code Plugins |
| Interface |
Visual canvas + REST API |
CLI + natural language |
| Workflow definition |
Drag-and-drop DAG |
Markdown skills + agent files |
| Model support |
100+ providers, unified |
Configurable via MCP/tools |
| RAG |
Built-in, production-grade |
Via context-management plugins |
| Agents |
ReAct + Function Calling |
Claude Code native agents |
| Observability |
LLMOps dashboards |
Plugin-level (ai-observability plugins) |
| Deployment |
Self-hosted / cloud |
Local CLI / IDE |
| Extensibility |
Plugin marketplace, custom tools |
Skills, MCP servers |
| Target users |
LLM app builders, business teams |
Software developers |
References
Research Method: Information gathered from the official GitHub repository README, GitHub API (stars, forks, issues, contributors, releases), official documentation, and release notes. Statistics verified via direct GitHub API calls on 2026-02-23.
Freshness Tracking
| Field |
Value |
| Last Verified |
2026-02-23 |
| Version at Verification |
v1.13.0 |
| Next Review Recommended |
2026-05-23 |
Review Triggers:
- Major version release (v2.x)
- New MCP or Claude integration announcements
- GitHub stars milestone (150K, 200K)
- Significant new node types in the workflow builder
- Changes to open-source licensing terms
- New vector store or model provider integrations
1---2name: problem-addressed-143description: Dify is an open-source platform for building LLM applications and agentic workflows.4---5# Dify67**Research Date**: 2026-02-238**Source URL**: <https://dify.ai>9**GitHub Repository**: <https://github.com/langgenius/dify>10**Documentation**: <https://docs.dify.ai>11**Version at Research**: v1.13.012**License**: Dify Open Source License (Apache 2.0 with additional conditions)1314---1516## Overview1718Dify is an open-source platform for building LLM applications and agentic workflows. Its visual canvas19combines agentic AI workflows, RAG pipelines, agent capabilities, multi-model management, and LLMOps20observability—enabling teams to move from prototype to production without writing infrastructure code.21With 130K+ GitHub stars and 1,100+ contributors, it is one of the most widely adopted LLM application22development platforms available.2324---2526## Problem Addressed2728| Problem | Solution |29|---------|----------|30| Building LLM applications requires deep infrastructure knowledge | Visual workflow canvas handles orchestration, routing, and state management |31| Switching between LLM providers is costly | Unified model management layer supports 100+ providers via a single interface |32| RAG pipelines are complex to implement and tune | Built-in document ingestion, chunking, embedding, and retrieval with configurable strategies |33| Agent tool integration requires custom code per tool | 50+ pre-built tools (Google Search, DALL·E, WolframAlpha, etc.) with custom tool support |34| Monitoring LLM app quality in production is opaque | LLMOps layer tracks logs, latency, token usage, and user feedback with annotation support |35| Human oversight in automated workflows is hard to embed | Human-in-the-Loop (HITL) node pauses execution for review, edit, and action-based routing |36| Deploying LLM apps as APIs requires bespoke backend work | Backend-as-a-Service: all capabilities expose REST APIs for integration into existing systems |3738---3940## Key Statistics4142| Metric | Value | Date Gathered |43|--------|-------|---------------|44| GitHub Stars | 130,011 | 2026-02-23 |45| GitHub Forks | 20,249 | 2026-02-23 |46| Open Issues | 748 | 2026-02-23 |47| Contributors | ~1,146 | 2026-02-23 |48| Watchers | 754 | 2026-02-23 |49| Latest Release | v1.13.0 | 2026-02-11 |50| Primary Language | TypeScript | 2026-02-23 |51| Repository Created | 2023 | 2026-02-23 |5253---5455## Key Features5657### Visual Workflow Builder5859- **Drag-and-drop canvas**: Compose multi-step LLM pipelines with conditional routing, loops, and parallel branches60- **Node types**: LLM, Code, HTTP Request, Template, Variable Aggregator, Iterator, Parameter Extractor, Document Extractor, Knowledge Retrieval61- **Human-in-the-Loop (HITL)**: Native "Human Input" node suspends execution; supports Webapp and Email delivery of review forms62- **Workflow versioning**: Save, compare, and roll back workflow versions63- **Streaming execution**: Workflows run in Celery workers with Redis Pub/Sub for real-time event streaming6465### Comprehensive Model Support6667- **100+ model providers**: OpenAI, Anthropic, Mistral, Llama 3, Gemini, Azure, AWS Bedrock, Hugging Face, Ollama, and OpenAI-compatible endpoints68- **Unified model management**: Switch models per node without rewriting workflow logic69- **System model configuration**: Set default inference, embedding, reranking, speech-to-text, and TTS models per workspace7071### RAG Pipeline7273- **Document ingestion**: PDF, DOCX, TXT, HTML, Markdown, CSV, and more via built-in extractors74- **Chunking strategies**: Fixed-size, semantic, parent-child, and hierarchical chunking75- **Embedding models**: Configurable embedding provider per knowledge base76- **Retrieval modes**: Semantic search, full-text search, and hybrid (weighted combination)77- **Reranking**: Optional reranker model pass for precision improvements78- **External knowledge bases**: Connect to external vector stores via API extension7980### Agent Capabilities8182- **Agent types**: ReAct (reasoning + acting) and LLM Function Calling based agents83- **Built-in tools**: 50+ tools including Google Search, DALL·E, Stable Diffusion, WolframAlpha, web scraping, code execution (sandboxed Python/JavaScript via Dify Sandbox)84- **Custom tools**: OpenAPI/Swagger schema import or manual tool definition85- **Tool permissions**: Per-workspace tool access control8687### Prompt IDE8889- **Prompt editor**: Jinja2-templated prompts with variable binding90- **Model comparison**: A/B test prompts across multiple models side-by-side91- **Dataset annotation**: Label production outputs for fine-tuning and evaluation datasets92- **Text-to-speech**: Add TTS output to chat applications9394### LLMOps & Observability9596- **Application logs**: Full message history with user metadata, token counts, latency97- **Performance dashboards**: Active users, token cost, response latency trends over time98- **Annotation workflows**: Mark production responses as golden examples or corrections99- **Tracing integrations**: LangFuse, LangSmith, and other observability platforms via plugin100101### Backend-as-a-Service102103- **REST APIs**: Every application type (chatbot, workflow, agent) exposes a stable REST API104- **Webhook support**: Trigger workflows from external events105- **Streaming API**: Server-sent events for real-time token streaming to client applications106- **Embedding widget**: Iframe or script embed for web pages107108### Application Types109110- **Chatbot**: Single-turn or multi-turn conversational interfaces111- **Text Generator**: Batch or single document generation workflows112- **Agent**: Autonomous tool-using agents with conversation history113- **Workflow**: Complex multi-step DAG pipelines with parallel execution114115---116117## Technical Architecture118119### Stack Components120121| Component | Technology |122|-----------|------------|123| Backend API | Python (Flask) |124| Frontend | Next.js (TypeScript) |125| Worker Queue | Celery + Redis |126| Primary Database | PostgreSQL |127| Vector Database | Weaviate / Qdrant / Chroma / pgvector (configurable) |128| Caching | Redis |129| Storage | Local / S3 / Azure Blob / Google Cloud Storage |130| Container | Docker + Docker Compose |131| Orchestration | Kubernetes (community Helm charts) |132133### Execution Architecture (v1.13.0)134135```text136Client (Web / API)137 |138 API Process (Flask)139 |140 +-----------+-------------+141 | |142Non-streaming runs Workflow + Advanced Chat streaming143(API process) (Celery: workflow_based_app_execution queue)144 |145 Redis Pub/Sub (PUBSUB_REDIS_URL)146 |147 SSE stream → Client148```149150### Data Flow (RAG Application)151152```text153User query154 → Dify API155 → Knowledge Retrieval node (embed query → vector search → rerank)156 → Retrieved chunks injected into LLM prompt context157 → LLM node (configured provider/model)158 → Response streamed back via Redis Pub/Sub159 → LLMOps log written to PostgreSQL160```161162---163164## Installation & Usage165166### Quick Start with Docker Compose167168```bash169# Clone the repository170git clone https://github.com/langgenius/dify.git171cd dify/docker172173# Configure environment174cp .env.example .env175176# Start all services (API, worker, web, sandbox, vector DB, Redis, PostgreSQL)177docker compose up -d178179# Access the UI180open http://localhost/install181```182183### Environment Configuration (key variables)184185```bash186# Required: Secret key for session signing187SECRET_KEY=your-secret-key188189# Vector store backend (weaviate | qdrant | milvus | pgvector | chroma | opensearch)190VECTOR_STORE=weaviate191192# PubSub Redis for HITL/streaming (v1.13.0+)193PUBSUB_REDIS_URL=redis://redis:6379/0194PUBSUB_REDIS_CHANNEL_TYPE=pubsub # or 'sharded' for high-throughput195196# Storage backend197STORAGE_TYPE=local # or s3, azure-blob, google-storage198```199200### REST API Usage201202```bash203# Call a workflow via REST API204curl -X POST https://api.dify.ai/v1/workflows/run \205 -H "Authorization: Bearer {api-key}" \206 -H "Content-Type: application/json" \207 -d '{208 "inputs": {"query": "Summarize this document"},209 "response_mode": "streaming",210 "user": "user-123"211 }'212```213214---215216## Relevance to Claude Code Development217218### Applications2192201. **Workflow orchestration reference**: Dify's node-based workflow DAG (conditional routing, parallel branches, loops, error handling) provides a mature reference architecture for designing Claude Code multi-agent pipelines.2212222. **RAG pipeline patterns**: The chunking, embedding, retrieval, and reranking pipeline in Dify is a production-tested reference for the context-management and skill-generation-tools plugins.2232243. **LLMOps instrumentation**: Dify's tracing, annotation, and feedback loop patterns can inform observability design in Claude Code skill execution frameworks.2252264. **HITL integration**: The Human-in-the-Loop node design (pause/resume via Celery + Redis Pub/Sub) is a concrete pattern for building human-approval gates into Claude Code agentic workflows.2272285. **Backend-as-a-Service model**: Exposing Claude Code agent capabilities as REST APIs mirrors Dify's BaaS approach—useful when integrating Claude Code into external systems.229230### Patterns Worth Adopting2312321. **Visual workflow canvas concepts**: Node abstraction (each skill as a node with defined inputs/outputs) maps well to Claude Code skill composition.2332342. **Unified model abstraction layer**: Provider-agnostic model selection at the node level, rather than hardcoding a model in every skill.2352363. **Annotation-driven improvement**: Production response labeling and dataset curation as a continuous improvement loop for skill quality.2372384. **Streaming via Pub/Sub**: Redis Pub/Sub for fan-out streaming of execution events to multiple consumers (UI, logging, downstream agents).2392405. **Sandboxed code execution**: Dify Sandbox (isolated Python/JavaScript execution environment) is a pattern for safe code execution in Claude Code tool steps.241242### Integration Opportunities2432441. **MCP Server for Dify**: Expose Dify workflows as MCP tools so Claude Code can invoke production Dify applications as skills.2452462. **Dify as orchestration backend**: Use Dify to manage the RAG and model-routing layers while Claude Code handles coding-specific agent behavior.2472483. **Cross-tool knowledge bases**: Share Dify knowledge bases (vector stores) with Claude Code context management plugins for unified document retrieval.2492504. **Dify tools in Claude Code**: Import Dify's 50+ pre-built tool definitions as MCP server tools for Claude Code agents.2512525. **LLMOps for Claude Code sessions**: Route Claude Code session traces to Dify's annotation/evaluation pipeline for quality monitoring.253254### Competitive Analysis255256| Aspect | Dify | Claude Code Plugins |257|--------|------|---------------------|258| Interface | Visual canvas + REST API | CLI + natural language |259| Workflow definition | Drag-and-drop DAG | Markdown skills + agent files |260| Model support | 100+ providers, unified | Configurable via MCP/tools |261| RAG | Built-in, production-grade | Via context-management plugins |262| Agents | ReAct + Function Calling | Claude Code native agents |263| Observability | LLMOps dashboards | Plugin-level (ai-observability plugins) |264| Deployment | Self-hosted / cloud | Local CLI / IDE |265| Extensibility | Plugin marketplace, custom tools | Skills, MCP servers |266| Target users | LLM app builders, business teams | Software developers |267268---269270## References271272- [GitHub Repository](https://github.com/langgenius/dify) (accessed 2026-02-23)273- [Official Documentation](https://docs.dify.ai) (accessed 2026-02-23)274- [Release v1.13.0 Notes](https://github.com/langgenius/dify/releases/tag/1.13.0) (accessed 2026-02-23)275- [Model Providers List](https://docs.dify.ai/getting-started/readme/model-providers) (accessed 2026-02-23)276- [Docker Hub - langgenius](https://hub.docker.com/u/langgenius) (accessed 2026-02-23)277- [Dify Open Source License](https://github.com/langgenius/dify/blob/main/LICENSE) (accessed 2026-02-23)278- [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) (accessed 2026-02-23)279280**Research Method**: Information gathered from the official GitHub repository README, GitHub API (stars, forks, issues, contributors, releases), official documentation, and release notes. Statistics verified via direct GitHub API calls on 2026-02-23.281282---283284## Freshness Tracking285286| Field | Value |287|-------|-------|288| Last Verified | 2026-02-23 |289| Version at Verification | v1.13.0 |290| Next Review Recommended | 2026-05-23 |291292**Review Triggers**:293294- Major version release (v2.x)295- New MCP or Claude integration announcements296- GitHub stars milestone (150K, 200K)297- Significant new node types in the workflow builder298- Changes to open-source licensing terms299- New vector store or model provider integrations