diff --git a/en/guides/workflow/variables.mdx b/en/guides/workflow/variables.mdx
index 4306ecdd..5bc1c9fa 100644
--- a/en/guides/workflow/variables.mdx
+++ b/en/guides/workflow/variables.mdx
@@ -12,23 +12,23 @@ You'll work with different types of variables, each serving a specific purpose i
### Input Variable
-- **User input variable**: Collects information from end users when they run your app, defined in a User Input node. For example, a user might provide a name, upload a file, or enter a question to be processed by the app.
+- **User input variable**: Collects information from end users when they run your app, defined in a User Input node. For example, a user might provide a name, upload a file, or enter a question for the app to process.
For more about user input variables, see [User Input](/en/guides/workflow/node/user-input).
-- **Node input variable**: Defines what data each node receives from upstream nodes to perform its task, such as the text for an LLM node to process, a query for a Knowledge Retrieval node to search for, or a conditional value for an IF/ELSE node to evaluate.
+- **Node input variable**: Defines the data a node receives to perform its task, usually an output variable of another node. For example, the text for an LLM node to process, a query for a Knowledge Retrieval node to search for, or a conditional value for an IF/ELSE node to evaluate.
### Output Variable
-- **Node output variable**: Holds the results generated by a node after it completes its task. They can be referenced by downstream nodes as their input.
+- **Node output variable**: Holds the results generated by a node after it completes its task, available for downstream nodes to use as input.
-- **Application output variable**: Returns information to the end user, specified in an [Output node](/en/guides/workflow/node/output) (in Workflows) or an [Answer node](/en/guides/workflow/node/answer) (in Chatflows).
+- **Application output variable**: Returns information to the end user, specified in an [Output node](/en/guides/workflow/node/output) (for Workflows) or an [Answer node](/en/guides/workflow/node/answer) (for Chatflows).
### System Variable
-System variables are pre-set, system-level parameters that are globally available.
+System variables are system-defined, globally available parameters.
@@ -57,19 +57,17 @@ System variables are pre-set, system-level parameters that are globally availabl
-### Environment Variables
+### Environment Variable
-You can use environment variables to store sensitive information—such as API keys, database passwords, or other credentials—that is used in your app.
+Environment variables store sensitive information—such as API keys, database passwords, or other credentials—used in your app.
-Instead of hardcoding these values directly into your app logic, you define them once as environment variables and reference them throughout your workflow.
-
-This allows a clean separation between secrets and the Dify app itself, so you don't have to risk exposing passwords and keys when sharing your app's DSL.
+Instead of hardcoding these values directly into your app, you define them once as environment variables and reference them as needed. This separates sensitive data and the app itself, so you won't risk exposing passwords and keys when sharing your app's DSL.
Once set, environment variables cannot be updated during workflow execution.
-
+
Supported data types:
@@ -77,49 +75,88 @@ Supported data types:
- **Number**: Numeric values such as IDs, rate limits, or port numbers.
- **Secret**: Sensitive values like passwords or API keys. Secret variables are masked in the interface after saving.
- 
+
-### Conversation Variables
+### Conversation Variable
- Conversation variables are available for Chatflows only.
+ Available for Chatflows only.
+Conversation variables serve as short-term memory for a single chat session. They allow you to store and access dynamic information across multiple dialogue turns within the same conversation.
-**Conversation variables allow application developers to specify particular information that needs to be temporarily stored within the same Chatflow session, ensuring that this information can be referenced across multiple rounds of chatting within the current chatflow**. This can include context, files uploaded to the chatting box(coming soon), user preferences input during the conversation, etc. It's like providing a "memo" for the LLM that can be checked at any time, avoiding information bias caused by LLM memory errors.
+
+ Conversation variables are reset when a new conversation begins.
+
-For example, you can store the language preference input by the user in the first round of chatting in a conversation variable. The LLM will refer to the information in the conversation variable when answering and use the specified language to reply to the user in subsequent chats.
+Unlike environment variables that are read-only during execution, conversation variables are read-write. Their values can be updated using a [Variable Assigner](/en/guides/workflow/node/variable-assigner) node as the conversation progresses.
-
+This enables you to track and manage stateful data such as user preferences, accumulated data (e.g., shopping cart items, to-do lists, token cost), or contextual details that the LLM needs to remember and reference consistently throughout the chat.
-**Conversation variables** support the following eight data types:
+For example, you can use a conversation variable to store users' language preferences from their first message and ensure the LLM responds in that same language for the rest of the conversation.
-* String
-* Number
-* Object
-* Boolean
-* Array\[string]
-* Array\[number]
-* Array\[object]
-* Array\[boolean]
-
-**Conversation variables** have the following features:
-
-* Conversation variables can be referenced globally within most nodes in the same Chatflow App;
-* Writing to conversation variables requires using the [Variable Assigner](/en/guides/workflow/node/variable-assigner) node;
-* Conversation variables are read-write variables;
-
-About how to use conversation variables with the Variable Assigner node, please refer to the [Variable Assigner](/en/guides/workflow/node/variable-assigner).
-
-To track changes in conversation variable values during debugging the app, click the conversation variable icon at the top of the Chatflow app preview page.
-
-
+
+
+
Supported data types:
+
+
+ - String
+ - Number
+ - Object
+ - Boolean
+
+
+ - Array[string]
+ - Array[boolean]
+ - Array[number]
+ - Array[object]
+
+
+
## Reference Variables
-## Variable Inspector
+Once a variable is defined, it can be referenced among nodes to pass data throughout your workflow.
+You can reference variables in two ways:
+
+- In an **input field**: Click and select the target variable from the dropdown.
+
+- In a **text field**: Type `/` or `{` and select the target variable from the dropdown.
+
+
+ A node can only access variables from nodes within its own execution branch. For example, a node in the **If** branch of an **If/Else** node cannot reference variables from the **Else** branch.
+
+
+
+
+
+
+
+
+
+
+
+## Variable Inspect
+
+
+
+After you test-run the entire workflow or a single node, the generated values for all related variables are automatically cached. View these cached values in the **Variable Inspect** panel by clicking **View cached variables** at the bottom of the canvas.
+
+In the **Variable Inspect** panel, you can:
+
+- **Centrally inspect** all available variables along with their data types and last-run values.
+
+- **Directly edit** a variable's cached value without re-running the corresponding node or the entire workflow. This is useful for testing how a specific node responds to different inputs—simply modify the variable value and re-run the target node.
+
+
+ - Editing a variable value in **Variable Inspect** does not alter the corresponding node's last-run logs. It only provides temporary input for testing purposes.
+
+ - Modified variables can be reverted to their original cached values.
+
+
+- **Quickly clear** a single variable's cached value or clear all cached values at once.
{/*
Contributing Section
diff --git a/images/conversation_variable.png b/images/conversation_variable.png
new file mode 100644
index 00000000..07ce9969
Binary files /dev/null and b/images/conversation_variable.png differ
diff --git a/images/reference_variable_in_input_field.png b/images/reference_variable_in_input_field.png
new file mode 100644
index 00000000..22fc8129
Binary files /dev/null and b/images/reference_variable_in_input_field.png differ
diff --git a/images/reference_variable_in_text_field.png b/images/reference_variable_in_text_field.png
new file mode 100644
index 00000000..af08b53d
Binary files /dev/null and b/images/reference_variable_in_text_field.png differ
diff --git a/images/variable_inspect.png b/images/variable_inspect.png
new file mode 100644
index 00000000..02f0c11b
Binary files /dev/null and b/images/variable_inspect.png differ