In Azure AI Foundry (Preview version), how do you set and retrieve variables in your workflow?

Summary

The issue at hand is setting and retrieving variables in a workflow within Azure AI Foundry (Preview version). The goal is to pass variables from one part of the workflow to another without relying solely on the System.LastMessage variable. The provided syntax for setting and retrieving variables is not working as expected.

Root Cause

The root cause of the problem lies in the incorrect syntax used for setting and retrieving variables in the workflow. Specifically, the issue is with how the variable and value fields are defined in the SetTextVariable and InvokeAzureAgent actions. The correct syntax for referencing variables is not being used, leading to the failure in passing variables between steps.

Why This Happens in Real Systems

This issue occurs in real systems due to:

  • Misunderstanding of the syntax for variable referencing
  • Incorrect usage of System variables versus Local variables
  • Lack of clear documentation on variable passing between workflow steps
  • Insufficient testing of variable passing mechanisms

Real-World Impact

The real-world impact of this issue includes:

  • Failure to pass critical information between workflow steps
  • Inability to leverage variables for dynamic decision-making in workflows
  • Increased complexity in debugging and troubleshooting workflow issues
  • Potential security risks if sensitive information is not handled correctly

Example or Code

kind: workflow
trigger:
  kind: OnConversationStart
  id: trigger_wf
actions:
  - kind: SetTextVariable
    id: save_original_user_message
    variable: Local.OriginalUserMessage
    value: "{{System.LastMessage}}"
  - kind: InvokeAzureAgent
    id: agent1
    agent:
      name: orchestrator-agent
      description: Orchestrator Agent
    conversationId: "{{System.ConversationId}}"
    input:
      messages: "{{Local.OriginalUserMessage}}"
    output:
      intent: Local.Intent
    autoSend: false

How Senior Engineers Fix It

Senior engineers fix this issue by:

  • Correctly referencing variables using the appropriate syntax (e.g., {{variable_name}})
  • Understanding the scope of variables (e.g., System vs. Local)
  • Thoroughly testing variable passing mechanisms to ensure data integrity
  • Consulting documentation and community resources to stay up-to-date with the latest syntax and best practices

Why Juniors Miss It

Juniors may miss this issue due to:

  • Lack of experience with workflow variable passing mechanisms
  • Insufficient understanding of variable scopes and syntax
  • Inadequate testing of workflow steps and variable passing
  • Limited familiarity with the specific platform (Azure AI Foundry) and its documentation