LLM Actions
Overview
LLM Actions in Agent Studio provide powerful built-in capabilities to leverage large language model (LLM) functionalities directly within your Compound Actions and Conversational Processes. These actions enable tasks such as summarization, reasoning, classification, data extraction, and content generation, allowing you to build sophisticated workflows without custom integrations.
This documentation focuses on two key LLM Actions: generate_text_action
and generate_structured_value_action
. These actions are designed to help you process unstructured data, generate insights, and structure outputs efficiently.
generate_text_action
Description
The generate_text_action
invokes an LLM to produce free-form text output based on user-provided input. This action is ideal for tasks requiring natural language generation, such as summarizing documents, generating responses, or performing step-by-step reasoning.
Use this action when you need unstructured text results, like drafting emails, explaining concepts, or brainstorming ideas.
Input Parameters
Field | Type | Required | Description |
---|---|---|---|
system_prompt | string | ❌ | Defines the model's behavior or instructions. For example, "Act as a helpful assistant that summarizes technical articles." |
user_input | string | ✅ | The primary context or query for the LLM to process. |
model | string | ❌ | Specifies the LLM model to use. See the Model Reference for available options. Defaults to gpt-4o-mini-2024-07-18 |
temperature | number | ❌ | Control the randomness of the output. Higher values will make the output more random, while lower values will make it more focused and deterministic |
reasoning_effort | string | ❌ | Optional reasoning effort argument. Can be set to one of "minimal" (only gpt-5 models), "low" , "medium" , or "high" . Must be left empty for non-reasoning models such as gpt-4.1 . |
Output
Field | Type | Description |
---|---|---|
generated_output | string | The LLM-generated text response. |
Usage Examples
Here are practical examples demonstrating various LLM abilities. Each includes a sample request schema for integration into a Compound Action.
Example 1: Text Summarization
Summarize a lengthy article or user query into a concise overview.
- action:
action_name: mw.generate_text_action
input_args:
system_prompt: '''Summarize the following text in 3-5 bullet points, focusing on key takeaways.'''
user_input: data.article_content # e.g., a long blog post fetched from an API
model: '''gpt-4o-mini'''
temperature: 0.7
output_key: summary_output
Example 2: Content Generation
Generate creative or instructional content, such as drafting a user email.
- action:
action_name: mw.generate_text_action
input_args:
system_prompt: '''Write a professional email response based on the user's complaint.'''
user_input: data.user_complaint # e.g., "My order is delayed by two weeks."
output_key: email_draft
Example 3: Step-by-Step Reasoning
Guide the LLM through logical reasoning for problem-solving.
- action:
action_name: mw.generate_text_action
input_args:
system_prompt: '''Solve the problem step by step, explaining your reasoning.'''
user_input: '''What is the next number in the sequence: 2, 4, 8, 16?'''
reasoning_effort: '''high'''
model: '''gpt-5-2025-08-07'''
output_key: reasoning_output
generate_structured_value_action
Description
The generate_structured_value_action
calls an LLM to extract or generate data in a predefined structured format (JSON schema). This is particularly useful for classification, entity extraction, or transforming unstructured input into queryable data.
Apply this action for tasks where output consistency is critical, such as tagging content, extracting key-value pairs, or categorizing user inputs.
Input Parameters
Field | Type | Required | Description |
---|---|---|---|
payload | object | ✅ | The data or text to analyze. |
user_input | string | ✅ | The primary context or query for the LLM to process. |
output_schema | object | ✅ | JSON Schema defining the expected output structure |
system_prompt | string | ❌ | Defines the model's behavior or instructions. For example, "Act as a helpful assistant that summarizes technical articles." |
model | string | ❌ | Specifies the LLM model to use. Defaults to "gpt-4o-mini-2024-07-18" . IMPORTANT: This action is only compatible with gpt-4o-mini-2024-07-18 and later and gpt-4o-2024-08-06 and later. |
strict | boolean | ❌ | Enforces schema adherence. Defaults to false . |
output_schema_name | string | ❌ | LLM-facing name for the schema (defaults to extracted_value ) |
output_schema_description | string | ❌ | Description of the schema for the LLM. |
reasoning_effort | string | ❌ | Optional reasoning effort argument. Can be set to one of "minimal" (only gpt-5 models), "low" , "medium" , or "high" . Must be left empty for non-reasoning models such as gpt-4.1 . |
Output
Field | Type | Description |
---|---|---|
generated_output | object | Structured data matching the provided schema. |
Usage Examples
Examples illustrate extraction, classification, and more. Include request schemas for easy implementation.
Example 1: Topic Classification (Existing Example, Expanded)
Classify a research abstract into predefined topics.
- action:
action_name: mw.generate_structured_value_action
input_args:
payload: data.research_paper_abstract
system_prompt: '''Given a research paper abstract and a list of topic options, output up to 5 topics that accurately apply to the paper.'''
output_schema: >-
{
"type": "object",
"properties": {
"topic_tags": {
"type": "array",
"items": {
"type": "string",
"enum": data.topic_tag_options # e.g., ["AI", "ML", "NLP"]
}
}
},
"required": ["topic_tags"],
"additionalProperties": false
}
strict: true
output_key: classified_topics
Expected Output
generated_output: {
"topic_tags": ["LLM Capabilities", "Reinforcement Learning (RL)", "Reasoning"]
}
Example 2: Entity Extraction
Extract named entities like names, dates, and locations from text.
- action:
action_name: mw.generate_structured_value_action
input_args:
payload: data.user_message # e.g., "John Doe will arrive in New York on October 15, 2025."
system_prompt: '''Extract entities such as persons, locations, and dates from the text.'''
output_schema: >-
{
"type": "object",
"properties": {
"persons": {"type": "array", "items": {"type": "string"}},
"locations": {"type": "array", "items": {"type": "string"}},
"dates": {"type": "array", "items": {"type": "string"}}
},
"required": ["persons", "locations", "dates"],
"additionalProperties": false
}
reasoning_effort: '''low'''
model: '''gpt-5-2025-08-07'''
output_key: extracted_entities
Expected Output
generated_output: {
"persons": ["John Doe"],
"locations": ["New York"],
"dates": ["October 15, 2025"]
}
Example 3: Sentiment Classification
Classify text sentiment with confidence scores.
- action:
action_name: mw.generate_structured_value_action
input_args:
payload: data.customer_review
system_prompt: '''Analyze the sentiment of the review and output the category with a confidence score.'''
output_schema: >-
{
"type": "object",
"properties": {
"sentiment": {
"type": "string",
"enum": ["positive", "negative", "neutral"]
},
"confidence": {"type": "number"}
},
"required": ["sentiment", "confidence"],
"additionalProperties": false
}
output_key: sentiment_analysis
Expected Output
generated_output: {
"sentiment": "positive",
"confidence": 0.85
}
Model Reference
Model | Context Window | Reasoning Effort Compatible | Availability |
---|---|---|---|
| 128K tokens | ❌ | Any commercial cloud. Not available to GovCloud. |
| 128K tokens | ❌ | Any commercial cloud. Not available to GovCloud. |
| 1M tokens | ❌ | All |
| 1M tokens | ❌ | All |
| 1M tokens | ❌ | All |
| ✅ | All | |
| ✅ | All | |
| ✅ | All | |
| ✅ | All | |
| ✅ | OpenAI direct only. Not available to Azure AI. Not available for | |
| ✅ | OpenAI direct only. Not available to Azure AI. Not available for | |
| ✅ | OpenAI direct only. Not available to Azure AI. Not available for |
Updated about 2 hours ago