[PR #3160] FEAT: NEW WORKFLOW ENGINE #24015

Closed
opened 2026-02-21 20:22:12 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/3160

State: closed
Merged: Yes


Introducing Dify Workflow! 🎉

The much-anticipated workflow feature is here: In a nutshell, workflow provides a visual canvas for defining complex tasks as smaller, manageable steps (nodes). This reduces reliance on prompt engineering and LLM agent capabilities, taking the stability and reproducibility of your LLM applications to the next level by letting you be in control.
There are two Workflow application types with this update:

  • Workflow App
    Targeting Automation and Batch Processing: This is ideal for translation, data analysis, content generation, email automation, and more.
    image

  • Chatflow App (A Sub-Type of Chatbot)
    For Conversational Applications: Suitable for customer service, semantic search, and more conversational apps requiring multi-step logic in crafting the response.
    Compared to the regular Workflow app type, Chatflow adds chat-specific features such as conversation history support (Memory), tagged replies, an Answer node type for streaming responses, and support for rich text and images.

    image

For more information, please visit: https://docs.dify.ai/features/workflow/introduce

Other Enhancements:

  • Optimized UI flow for app creation.

  • Conversion support from various basic application types to Workflow-based applications.

    • Basic / Expert mode Chatbot apps → Chatflow

    • Text Generator → Workflow

      image

  • Dify's official app templates are now available in self-hosted mode.

  • Support for adding descriptions to applications.

  • Support for porting applications in and out of Dify with DSL.

  • Under the hood, we also refactored the underlying execution logic of all app types for cleaner architecture and a tidier repo.

Update Guide

If you need to upgrade from 0.6.0-preview-workflow.1, you will need to connect to PostgreSQL and execute the following SQL (migration inserted in the main branch) to ensure data integrity.

ALTER TABLE dataset_keyword_tables ADD COLUMN data_source_type VARCHAR(255) NOT NULL DEFAULT 'database';
ALTER TABLE embeddings ADD COLUMN provider_name VARCHAR(40) NOT NULL DEFAULT '';
ALTER TABLE embeddings DROP CONSTRAINT embedding_hash_idx;
ALTER TABLE embeddings ADD CONSTRAINT embedding_hash_idx UNIQUE (model_name, hash, provider_name);

Docker compose deployments:

  1. Get the latest code from the main branch:

    git checkout main
    git pull origin main
    
  2. Go to the next step and update to the latest image:

    cd docker
    docker compose up -d
    
  3. We also moved the agent data within the database, Execute the below script to complete the migrate: (NEW)

    docker compose exec api flask convert-to-agent-apps
    

Source Code deployments:

  1. Stop API server, Worker and Web frontend Server.

  2. Get the latest code from the main branch:

    git checkout main
    git pull origin main
    
  3. Update Python dependencies:

    cd api
    pip install -r requirements.txt
    
  4. Then, let's run the migration script:

    flask db upgrade
    
  5. We also moved the agent data within the database, Execute the below script to complete the migrate: (NEW)

    flask convert-to-agent-apps
    
  6. Finally, run API server, Worker and Web frontend Server again.

**Original Pull Request:** https://github.com/langgenius/dify/pull/3160 **State:** closed **Merged:** Yes --- ## Introducing Dify Workflow! 🎉 The much-anticipated workflow feature is here: In a nutshell, workflow provides a visual canvas for defining complex tasks as smaller, manageable steps (nodes). This reduces reliance on prompt engineering and LLM agent capabilities, taking the stability and reproducibility of your LLM applications to the next level by letting you be in control. **There are two Workflow application types with this update:** - **Workflow App** Targeting Automation and Batch Processing: This is ideal for translation, data analysis, content generation, email automation, and more. ![image](https://github.com/langgenius/dify/assets/5485478/67c214e1-bc7e-44ad-8d81-297a30ebcc99) - **Chatflow App (A Sub-Type of Chatbot)** For Conversational Applications: Suitable for customer service, semantic search, and more conversational apps requiring multi-step logic in crafting the response. Compared to the regular Workflow app type, Chatflow adds chat-specific features such as conversation history support (Memory), tagged replies, an Answer node type for streaming responses, and support for rich text and images. ![image](https://github.com/langgenius/dify/assets/5485478/3fe94294-7e44-497a-9f19-e89808b2675f) For more information, please visit: https://docs.dify.ai/features/workflow/introduce Other Enhancements: - Optimized UI flow for app creation. - Conversion support from various basic application types to Workflow-based applications. > - Basic / Expert mode Chatbot apps → Chatflow > - Text Generator → Workflow > > ![image](https://github.com/langgenius/dify/assets/5485478/9227958e-4a9d-482b-91b8-7c5b72a16a14) - Dify's official app templates are now available in self-hosted mode. - Support for adding descriptions to applications. - Support for porting applications in and out of Dify with DSL. - Under the hood, we also refactored the underlying execution logic of all app types for cleaner architecture and a tidier repo. ## Update Guide **If you need to upgrade from** `0.6.0-preview-workflow.1`**, you will need to connect to** **PostgreSQL** **and execute the following SQL (migration inserted in the main branch) to ensure data integrity.** ```SQL ALTER TABLE dataset_keyword_tables ADD COLUMN data_source_type VARCHAR(255) NOT NULL DEFAULT 'database'; ALTER TABLE embeddings ADD COLUMN provider_name VARCHAR(40) NOT NULL DEFAULT ''; ALTER TABLE embeddings DROP CONSTRAINT embedding_hash_idx; ALTER TABLE embeddings ADD CONSTRAINT embedding_hash_idx UNIQUE (model_name, hash, provider_name); ``` ### Docker compose deployments: 1. Get the latest code from the main branch: ```Shell git checkout main git pull origin main ``` 2. Go to the next step and update to the latest image: ```Shell cd docker docker compose up -d ``` 3. We also moved the agent data within the database, **Execute** **the below script** **to complete the migrate:** **(NEW)** ```Shell docker compose exec api flask convert-to-agent-apps ``` ### Source Code deployments: 1. Stop API server, Worker and Web frontend Server. 2. Get the latest code from the main branch: ```Shell git checkout main git pull origin main ``` 3. Update Python dependencies: ```Shell cd api pip install -r requirements.txt ``` 4. Then, let's run the migration script: ```Shell flask db upgrade ``` 5. We also moved the agent data within the database, **Execute the below script to complete the migrate: (NEW)** ```Shell flask convert-to-agent-apps ``` 6. Finally, run API server, Worker and Web frontend Server again.
yindo added the pull-request label 2026-02-21 20:22:12 -05:00
yindo closed this issue 2026-02-21 20:22:12 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#24015