diff --git a/src/docs/.DS_Store b/src/docs/.DS_Store index 1ffb1c5a..1c2d8928 100644 Binary files a/src/docs/.DS_Store and b/src/docs/.DS_Store differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/README.md b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/README.md new file mode 100644 index 00000000..670d5ae7 --- /dev/null +++ b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/README.md @@ -0,0 +1,72 @@ +# Genie Superstore Insights Blueprint + +This blueprint demonstrates how to integrate **Databricks Genie with Kasal agent workflows** to retrieve enterprise data and generate business insights. + +The workflow retrieves structured sales data from a Genie Space connected to Unity Catalog, processes it with multiple agents, and produces enterprise-ready outputs such as summaries or dashboards. + +--- + +# Architecture Overview + +The workflow follows this architecture: + +1. Agents query a Genie Space connected to Unity Catalog +2. Retrieved data is passed back into the workflow +3. Subsequent agents perform post-processing (analysis, summarization, reporting) +4. Results can integrate with BI tools such as Power BI +5. Output becomes enterprise-ready artifacts (executive summaries, dashboards, insights) + +--- + +# Blueprint Components + +This blueprint contains the following documentation: + +### 1️⃣ Creating a Genie Space + +How to create and configure a Genie Space connected to the Superstore dataset. + +➡ See: +`create-genie-space.md` + +--- + +### 2️⃣ Kasal Agent Workflow + +How to import and run the Kasal workflow that uses Genie as backend. + +➡ See: +`kasal-agent-workflow.md` + +--- + +# Example Use Case + +Example business question: + +Which regions had the lowest profit margin last quarter and which product categories drove the losses? + +The workflow retrieves the data from Genie and produces: + +- structured insights +- executive summary +- potential dashboard inputs for BI tools such as Power BI. + +--- + +# Enterprise Extensions + +This blueprint can be extended with: + +- automated Power BI dashboard updates +- anomaly detection agents +- financial reporting workflows +- multi-space Genie queries + +--- + +# Files Included + +- `workflow.json` – importable Kasal workflow +- `create-genie-space.md` – Genie setup guide +- `kasal-agent-workflow.md` – Kasal workflow instructions \ No newline at end of file diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/create_genie_space.md b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/create_genie_space.md new file mode 100644 index 00000000..bf67768d --- /dev/null +++ b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/create_genie_space.md @@ -0,0 +1,103 @@ +# Creating a Genie Space for the Superstore Dataset + +This guide explains how to prepare the **Superstore dataset** and connect it to **Databricks Genie** so it can be used inside Kasal agent workflows. + +The setup consists of three steps: + +1. Download the dataset from Kaggle +2. Load the dataset into Unity Catalog +3. Create a Genie Space connected to the dataset + +--- + +# Step 1 — Download the Superstore Dataset + +Download the dataset from Kaggle: + +https://www.kaggle.com/datasets/vivek468/superstore-dataset-final/data + +After downloading, extract the dataset locally. + +This file contains sales transactions including: + +- region +- category +- sales +- ship mode +- product name +- order date + +--- + +# Step 2 — Upload the Dataset to Databricks + +Open your **Databricks Workspace**. + +Navigate to: + +Catalog → add data → create or modify table + + +Upload the Superstore CSV file. + +--- + +# Step 3 — Create a Unity Catalog Table + +During the upload process configure: + +Example: + +Catalog: main +Schema: sales +Table name: superstore_orders + + +Databricks will automatically infer the schema. + +Example columns: + +| Column | Description | +|------|------| +| order date | Order timestamp | +| region | Sales region | +| category | Product category | +| sub_category | Product sub-category | +| sales | Revenue | +| product name | Product name | + +![Unity Catalog Table](images/unity-catalog-superstore.png) + +# Creating a Genie Space in Databricks + +Before running the Kasal workflow, a Genie Space must be created and connected to the dataset. + +--- + +# Step 4 — Create a New Genie Space and connect the Dataset + +Click **New**. + +Connect the Genie Space to your Unity Catalog tables. + +![Configure Tables](images/create-genie-space.png) + +--- + +# Step 5 — Test the Genie Space + +Test the Genie Space with a natural language query. + +Example: + +What is the monthly total sales trend over the order dates? + +![Test Genie Query](images/test-genie-query.png) + +--- + +# Result + +Genie returns a structured table with aggregated metrics that can be used by downstream agent workflows. + +The Genie Space is now ready to be used by Kasal. \ No newline at end of file diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/agent-business-writer-created.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/agent-business-writer-created.png new file mode 100644 index 00000000..47eba447 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/agent-business-writer-created.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/agent-data-analyst-created.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/agent-data-analyst-created.png new file mode 100644 index 00000000..81aba67b Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/agent-data-analyst-created.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/agent-genie-retriever-created.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/agent-genie-retriever-created.png new file mode 100644 index 00000000..1a647ac2 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/agent-genie-retriever-created.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/agent-query-planner-created.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/agent-query-planner-created.png new file mode 100644 index 00000000..2e93adb8 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/agent-query-planner-created.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/create-genie-space.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/create-genie-space.png new file mode 100644 index 00000000..db04047d Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/create-genie-space.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/execution-button.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/execution-button.png new file mode 100644 index 00000000..d4baa701 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/execution-button.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/genie-tool-added-to-worksapce.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/genie-tool-added-to-worksapce.png new file mode 100644 index 00000000..7bcdc5c7 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/genie-tool-added-to-worksapce.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/genie-workflow-full-chain.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/genie-workflow-full-chain.png new file mode 100644 index 00000000..9944ae87 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/genie-workflow-full-chain.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/task-plan-genie-query.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/task-plan-genie-query.png new file mode 100644 index 00000000..0b31a898 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/task-plan-genie-query.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/task-postprocess-insights.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/task-postprocess-insights.png new file mode 100644 index 00000000..defcba92 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/task-postprocess-insights.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/task-retrieve-from-genie.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/task-retrieve-from-genie.png new file mode 100644 index 00000000..01bec98c Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/task-retrieve-from-genie.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/task-write-exec-summary.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/task-write-exec-summary.png new file mode 100644 index 00000000..2b0016d8 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/task-write-exec-summary.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/test-genie-query.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/test-genie-query.png new file mode 100644 index 00000000..ace285c1 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/test-genie-query.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/unity-catalog-superstore.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/unity-catalog-superstore.png new file mode 100644 index 00000000..4ae9d6c7 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/unity-catalog-superstore.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/workflow-designer-blank.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/workflow-designer-blank.png new file mode 100644 index 00000000..385a5a46 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/workflow-designer-blank.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/workflow-final-result.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/workflow-final-result.png new file mode 100644 index 00000000..8698bc11 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/workflow-final-result.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/workflow-output.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/workflow-output.png new file mode 100644 index 00000000..10d95480 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/workflow-output.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/workflow-trace-steps.png b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/workflow-trace-steps.png new file mode 100644 index 00000000..3fe14407 Binary files /dev/null and b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/images/workflow-trace-steps.png differ diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/kasal-agent-workflow.md b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/kasal-agent-workflow.md new file mode 100644 index 00000000..0b5bd0bd --- /dev/null +++ b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/kasal-agent-workflow.md @@ -0,0 +1,379 @@ + +# Running the Kasal Agent Workflow + +This guide explains how to run the **Genie-backed Kasal workflow** for the Superstore dataset. + +The workflow demonstrates how Kasal agents can retrieve enterprise data from **Databricks Genie**, analyze the results, and produce a business-ready summary. + +The pattern implemented in this workflow is: + +Retrieve → Analyze → Write + +--- + +# Workflow Overview + +The workflow uses four agents: + +| Agent | Role | Responsibility | +|------|------|---------------| +| Query Planner | Analytics Question Planner | Converts business questions into precise Genie prompts | +| Genie Retriever | Databricks Genie Query Executor | Retrieves structured data from Genie | +| Data Analyst | KPI & Trend Analyst | Analyzes results and extracts insights | +| Business Writer | Executive Summary Writer | Produces a stakeholder-ready narrative | + +--- + +# Chapter 1 — Open the Workflow Designer + +**Scene:** Sarah wants to answer a business question using sales data from the Superstore dataset. + +To begin, she opens the **Kasal Workflow Designer**. + +## Expected Result + +You should see a **blank workflow canvas** with: + +- Agents panel +- Tasks panel +- Catalog +- Chat panel + +## Screenshot + +![Workflow Designer](images/workflow-designer-blank.png) + +--- + +# Chapter 2 — Create the Agents + +Sarah creates a small team of specialized agents. + +Each agent has a clearly defined responsibility. + +--- + +## Agent 1 — Query Planner + +Click: + +Agents → + Add Agent + +Fill the fields: + +Name: Query Planner +Role: Analytics Question Planner +Goal: Convert business questions into precise Genie queries + +Backstory: + +You break down business questions into measurable metrics, dimensions, and time filters and produce a single clean query prompt for Genie. + +Save the agent. + +Expected Result: A Query Planner node appears on the workflow canvas. + +Screenshot: + +![Query Planner Agent](images/agent-query-planner-created.png) + +--- + +## Agent 2 — Genie Retriever + +Click: + +Agents → + Add Agent + +Fill the fields: + +Name: Genie Retriever +Role: Databricks Genie Query Executor +Goal: Retrieve structured results from a Genie space connected to Superstore tables + +Backstory: + +You are skilled at asking Genie for tabular outputs with clear columns and time windows. You return results in a clean, structured form. + +Add the GenieTool to the Tools field. Then select the Superstore Genie Space that is already created. + +Save the agent. + +Expected Result: The Genie Retriever agent appears on the canvas. + +Screenshot: + +![Genie Retriever Agent](images/agent-genie-retriever-created.png) + +Note: Ensure the Genie tool integration is enabled for this agent. + +![Genie Tool](images/genie-tool-added-to-worksapce.png) + +--- + +## Agent 3 — Data Analyst + +Click: + +Agents → + Add Agent + +Fill the fields: + +Name: Data Analyst +Role: KPI & Trend Analyst +Goal: Post-process retrieved results into insights, trends, anomalies, and comparisons + +Backstory: + +You analyze tables, compute deltas, identify drivers, and produce a structured insight list with quantified takeaways. + +Save the agent. + +![Data Analyst Agent](images/agent-data-analyst-created.png) + +--- + +## Agent 4 — Business Writer + +Click: + +Agents → + Add Agent + +Fill the fields: + +Name: Business Writer +Role: Executive Summary Writer +Goal: Turn insights into a stakeholder-ready summary with recommendations + +Backstory: + +You write clear, concise narratives for sales leadership: what happened, why it matters, and what to do next. + +Save the agent. + +![Business Writer Agent](images/agent-business-writer-created.png) + +--- + +# Chapter 3 — Add Tasks and Build the Workflow + +Sarah now creates the pipeline that connects the agents. + +The workflow consists of four tasks. + +--- + +## Task 1 — Plan Genie Query + +Click: + +Tasks → + Add Task + +Title: Plan Genie Query + +Description: + +Create one precise Genie prompt to answer the business question {question} using data from Genie space. The prompt must request a tabular result and specify the timeframe if relevant. + +Expected Output: + +A single Genie prompt (verbatim), plus a short note listing the metrics/dimensions it + +Connect this task to the Query Planner agent. + +![Plan Genie Query](images/task-plan-genie-query.png) + +--- + +## Task 2 — Retrieve Data from Genie + +Create another task. + +Title: Retrieve Data from Genie + +Description: + +Use the Genie prompt from the previous task to query Genie space. Return the results in a structured format. Include the exact Genie prompt used and the returned table (or key rows). If results are ambiguous, run one clarification prompt. + +Expected Output: + +1. Genie prompt used +2. Tabular results (or a clean structured representation) +3. Any caveats (filters/time window assumptions, missing values) + +Save + +Connect this task to Genie Retriever. + +![Retrieve Data from Genie](images/task-retrieve-from-genie.png) + +--- + +## Task 3 — Post-process & Extract Insights + +Title: Post-process & Extract Insights + +Description: + +Analyze the retrieved Genie results and produce insights. Compute derived KPIs if possible (e.g., profit margin = profit/sales). Identify top drivers, underperformers, and any anomalies. Output a structured list of 5–10 insights with numbers. + +Expected Output: + +A numbered list of insights with quantified evidence, plus 2–3 hypotheses/drivers. + +Connect this task to Data Analyst. + +![Postprocess Insights](images/task-postprocess-insights.png) + +--- + +## Task 4 — Write Executive Summary + +Title: Write Executive Summary + +Description: + +Using the extracted insights, write a concise executive summary answering {question}. Include key findings, implications, and recommended next actions. Max 250–350 words. + +Expected Output: + +A stakeholder-ready summary with bullet takeaways and next steps. + +Connect this task to Business Writer. + +![Executive Summary Task](images/task-write-exec-summary.png) + +--- + +# Connect the Workflow + +Link the tasks in order: + +Plan Genie Query → Retrieve Data from Genie → Post-process & Extract Insights → Write Executive Summary + +![Workflow Pipeline](images/genie-workflow-full-chain.png) + +--- + +# Chapter 4 — Run the Workflow + +Select your desired LLM model and click on the execution button + +![Workflow Result](images/execution-button.png) + +Provide runtime variables. + +Example: + +question = "Which regions had the lowest total sales last quarter, and what categories drove it?" + +Expected Result: + +The workflow produces: + +- structured insights from Genie data +- analysis of key sales trends +- a concise executive summary + +![Workflow Result](images/workflow-output.png) + +--- + +# Enterprise Extensions + +This workflow pattern can be extended to support enterprise analytics use cases such as: + +- automated Power BI dashboard updates +- financial performance monitoring +- anomaly detection workflows +- multi-space Genie queries across different business domains + +--- + +# Chapter 5 — Inspect the Workflow Trace and Export Results + +After the workflow finishes running, Kasal provides detailed trace information that allows you to inspect how each agent executed its task and what outputs were produced at each stage. + +This is particularly useful for: + +- debugging workflows +- understanding intermediate reasoning steps +- validating outputs before sharing them with stakeholders + +--- + +## Step 1 — Open the Execution Trace + +After the workflow finishes running, click the **Trace** button in the execution panel. + +The trace view shows the internal execution flow of the workflow. + +--- + +## Step 2 — Inspect Each Workflow Step + +In the trace interface you can inspect each task executed by the agents. + +Typical steps visible in this workflow: + +1. **Plan Genie Query** + Shows the generated prompt that will be sent to the Genie space. + +2. **Retrieve Data from Genie** + Displays the query executed by Genie and the returned dataset. + +3. **Post-process & Extract Insights** + Shows the derived metrics and extracted insights generated by the Data Analyst agent. + +4. **Write Executive Summary** + Displays the final narrative produced by the Business Writer agent. + +This trace view allows you to verify that: + +- the Genie query was correct +- the retrieved data is accurate +- the insights align with the retrieved results + +![Workflow Trace Steps](images/workflow-trace-steps.png) + +--- + +## Step 3 — View the Final Result + +Once the workflow finishes executing, the final result appears in the **Output panel**. + +The output typically contains: + +- key insights extracted from the data +- supporting metrics retrieved from Genie +- a concise executive summary + +![Workflow Final Result](images/workflow-final-result.png) + +--- + +## Step 4 — Export the Results as PDF + +Kasal allows you to export the workflow output. + +Click **Export → Save as PDF** to generate a shareable report. + +This feature allows teams to easily distribute results to: + +- business stakeholders +- sales teams +- executives + +--- + +## Result + +You now have a complete workflow that: + +1. retrieves enterprise data from **Databricks Genie** +2. analyzes the results using **multiple agents** +3. generates an **executive-ready summary** +4. allows inspection through **trace views** +5. produces a **shareable PDF report** + +This pattern demonstrates how Kasal workflows can transform enterprise data into actionable business insights. \ No newline at end of file diff --git a/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/workflow.json b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/workflow.json new file mode 100644 index 00000000..22cd4431 --- /dev/null +++ b/src/docs/Blueprints/Genie_as_Backend _for_Agent_Workflows/workflow.json @@ -0,0 +1,1730 @@ +{ + "crews": [ + { + "id": "f968d78a-b998-4194-bfdc-8d2505db7db2", + "name": "Genie_backed_multi_agent_workflow", + "agent_ids": [ + "b21f35dd-76c0-4d3e-9b8d-868cebc226b6", + "6d24346e-3a60-4f02-88e8-a134d2b5852d", + "5ae3847f-9a61-439e-91e3-f37c1a9e47fb", + "cb617a71-cd1e-496e-b8a1-cc15d78d51d9" + ], + "task_ids": [ + "2ccc833f-2bfd-4075-84af-9e49bf4b1b44", + "39b5568f-3254-4183-b20e-21e25bb4de50", + "ab47c9c0-1c2f-4f18-ae65-d23c107af7fd", + "4433e8d0-5550-485d-ab57-f08ed434bf52" + ], + "nodes": [ + { + "id": "task-2ccc833f-2bfd-4075-84af-9e49bf4b1b44", + "type": "taskNode", + "position": { + "x": 368, + "y": 68 + }, + "data": { + "label": "Plan Genie Query", + "role": null, + "goal": null, + "backstory": null, + "tools": [], + "agentId": null, + "taskId": "2ccc833f-2bfd-4075-84af-9e49bf4b1b44", + "llm": null, + "function_calling_llm": null, + "max_iter": null, + "max_rpm": null, + "max_execution_time": null, + "verbose": null, + "allow_delegation": null, + "cache": null, + "memory": true, + "embedder_config": null, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": null, + "code_execution_mode": null, + "max_retry_limit": null, + "use_system_prompt": null, + "respect_context_window": null, + "type": "task", + "description": "Description: Create one precise Genie prompt to answer the business question {question} using data from Genie space. The prompt must request a tabular result and specify the timeframe if relevant.", + "expected_output": "A single Genie prompt (verbatim), plus a short note listing the metrics/dimensions it", + "icon": null, + "advanced_config": null, + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "max_retries": 3, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "validation_function": null, + "callback_function": null, + "human_input": false, + "markdown": false + }, + "context": [], + "async_execution": false, + "knowledge_sources": null, + "markdown": false + }, + "width": null, + "height": null, + "selected": null, + "positionAbsolute": null, + "dragging": null, + "style": null + }, + { + "id": "agent-b21f35dd-76c0-4d3e-9b8d-868cebc226b6", + "type": "agentNode", + "position": { + "x": 68, + "y": 71.89641819941917 + }, + "data": { + "label": "Query Planner", + "role": "Analytics Question Planner", + "goal": "Convert business questions into precise Genie queries", + "backstory": "You break down business questions into measurable metrics, dimensions, and time filters and produce a single clean query prompt for Genie.", + "tools": [], + "agentId": "b21f35dd-76c0-4d3e-9b8d-868cebc226b6", + "taskId": null, + "llm": "databricks-llama-4-maverick", + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": 300, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": { + "provider": "databricks", + "config": { + "model": "databricks-gte-large-en" + } + }, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 3, + "use_system_prompt": true, + "respect_context_window": true, + "type": "agent", + "description": null, + "expected_output": null, + "icon": null, + "advanced_config": null, + "config": null, + "context": [], + "async_execution": false, + "knowledge_sources": [], + "markdown": false + }, + "width": null, + "height": null, + "selected": null, + "positionAbsolute": null, + "dragging": null, + "style": null + }, + { + "id": "task-39b5568f-3254-4183-b20e-21e25bb4de50", + "type": "taskNode", + "position": { + "x": 368, + "y": 328 + }, + "data": { + "label": "Retrieve Data from Genie", + "role": null, + "goal": null, + "backstory": null, + "tools": [], + "agentId": null, + "taskId": "39b5568f-3254-4183-b20e-21e25bb4de50", + "llm": null, + "function_calling_llm": null, + "max_iter": null, + "max_rpm": null, + "max_execution_time": null, + "verbose": null, + "allow_delegation": null, + "cache": null, + "memory": true, + "embedder_config": null, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": null, + "code_execution_mode": null, + "max_retry_limit": null, + "use_system_prompt": null, + "respect_context_window": null, + "type": "task", + "description": "Use the Genie prompt from the previous task to query Genie space. Return the results in a structured format. Include the exact Genie prompt used and the returned table (or key rows). If results are ambiguous, run one clarification prompt.", + "expected_output": "1. Genie prompt used\n2. Tabular results (or a clean structured representation)\n3. Any caveats (filters/time window assumptions, missing values)\nSave", + "icon": null, + "advanced_config": null, + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "max_retries": 3, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "validation_function": null, + "callback_function": null, + "human_input": false, + "markdown": false + }, + "context": [], + "async_execution": false, + "knowledge_sources": null, + "markdown": false + }, + "width": null, + "height": null, + "selected": null, + "positionAbsolute": null, + "dragging": null, + "style": null + }, + { + "id": "agent-6d24346e-3a60-4f02-88e8-a134d2b5852d", + "type": "agentNode", + "position": { + "x": 68, + "y": 333 + }, + "data": { + "label": "Genie Retriever", + "role": "Databricks Genie Query Executor", + "goal": "Retrieve structured results from a specific Genie space connected to Superstore tables", + "backstory": "You are skilled at asking Genie for tabular outputs with clear columns and time windows. You return results in a clean, structured form.", + "tools": [ + "35" + ], + "agentId": "6d24346e-3a60-4f02-88e8-a134d2b5852d", + "taskId": null, + "llm": "databricks-llama-4-maverick", + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": 300, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": { + "provider": "databricks", + "config": { + "model": "databricks-gte-large-en" + } + }, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 3, + "use_system_prompt": true, + "respect_context_window": true, + "type": "agent", + "description": null, + "expected_output": null, + "icon": null, + "advanced_config": null, + "config": null, + "context": [], + "async_execution": false, + "knowledge_sources": [], + "markdown": false + }, + "width": null, + "height": null, + "selected": null, + "positionAbsolute": null, + "dragging": null, + "style": null + }, + { + "id": "task-ab47c9c0-1c2f-4f18-ae65-d23c107af7fd", + "type": "taskNode", + "position": { + "x": 368, + "y": 586.8964181994191 + }, + "data": { + "label": "Post-process & Extract Insights", + "role": null, + "goal": null, + "backstory": null, + "tools": [], + "agentId": null, + "taskId": "ab47c9c0-1c2f-4f18-ae65-d23c107af7fd", + "llm": null, + "function_calling_llm": null, + "max_iter": null, + "max_rpm": null, + "max_execution_time": null, + "verbose": null, + "allow_delegation": null, + "cache": null, + "memory": true, + "embedder_config": null, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": null, + "code_execution_mode": null, + "max_retry_limit": null, + "use_system_prompt": null, + "respect_context_window": null, + "type": "task", + "description": "Analyze the retrieved Genie results and produce insights. Compute derived KPIs if possible (e.g., profit margin = profit/sales). Identify top drivers, underperformers, and any anomalies. Output a structured list of 5–10 insights with numbers.", + "expected_output": "A numbered list of insights with quantified evidence, plus 2–3 hypotheses/drivers.\nSave", + "icon": null, + "advanced_config": null, + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "max_retries": 3, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "validation_function": null, + "callback_function": null, + "human_input": false, + "markdown": false + }, + "context": [], + "async_execution": false, + "knowledge_sources": null, + "markdown": false + }, + "width": null, + "height": null, + "selected": null, + "positionAbsolute": null, + "dragging": null, + "style": null + }, + { + "id": "agent-5ae3847f-9a61-439e-91e3-f37c1a9e47fb", + "type": "agentNode", + "position": { + "x": 68, + "y": 593 + }, + "data": { + "label": "Data Analyst", + "role": "KPI & Trend Analyst", + "goal": "Post-process retrieved results into insights, trends, anomalies, and comparisons", + "backstory": "You analyze tables, compute deltas, identify drivers, and produce a structured insight list with quantified takeaways.", + "tools": [], + "agentId": "5ae3847f-9a61-439e-91e3-f37c1a9e47fb", + "taskId": null, + "llm": "databricks-llama-4-maverick", + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": 300, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": { + "provider": "databricks", + "config": { + "model": "databricks-gte-large-en" + } + }, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 3, + "use_system_prompt": true, + "respect_context_window": true, + "type": "agent", + "description": null, + "expected_output": null, + "icon": null, + "advanced_config": null, + "config": null, + "context": [], + "async_execution": false, + "knowledge_sources": [], + "markdown": false + }, + "width": null, + "height": null, + "selected": null, + "positionAbsolute": null, + "dragging": null, + "style": null + }, + { + "id": "task-4433e8d0-5550-485d-ab57-f08ed434bf52", + "type": "taskNode", + "position": { + "x": 368, + "y": 848 + }, + "data": { + "label": "Write Executive Summary", + "role": null, + "goal": null, + "backstory": null, + "tools": [], + "agentId": null, + "taskId": "4433e8d0-5550-485d-ab57-f08ed434bf52", + "llm": null, + "function_calling_llm": null, + "max_iter": null, + "max_rpm": null, + "max_execution_time": null, + "verbose": null, + "allow_delegation": null, + "cache": null, + "memory": true, + "embedder_config": null, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": null, + "code_execution_mode": null, + "max_retry_limit": null, + "use_system_prompt": null, + "respect_context_window": null, + "type": "task", + "description": "Using the extracted insights, write a concise executive summary answering {question}. Include key findings, implications, and recommended next actions. Max 250–350 words.", + "expected_output": "A stakeholder-ready summary with bullet takeaways and next steps.", + "icon": null, + "advanced_config": null, + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "max_retries": 3, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "validation_function": null, + "callback_function": null, + "human_input": false, + "markdown": false + }, + "context": [], + "async_execution": false, + "knowledge_sources": null, + "markdown": false + }, + "width": null, + "height": null, + "selected": null, + "positionAbsolute": null, + "dragging": null, + "style": null + }, + { + "id": "agent-cb617a71-cd1e-496e-b8a1-cc15d78d51d9", + "type": "agentNode", + "position": { + "x": 68, + "y": 853 + }, + "data": { + "label": "Business Writer", + "role": "Executive Summary Writer", + "goal": "Turn insights into a stakeholder-ready summary with recommendations", + "backstory": "You write clear, concise narratives for sales leadership: what happened, why it matters, and what to do next.", + "tools": [], + "agentId": "cb617a71-cd1e-496e-b8a1-cc15d78d51d9", + "taskId": null, + "llm": "databricks-llama-4-maverick", + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": 300, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": { + "provider": "databricks", + "config": { + "model": "databricks-gte-large-en" + } + }, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 3, + "use_system_prompt": true, + "respect_context_window": true, + "type": "agent", + "description": null, + "expected_output": null, + "icon": null, + "advanced_config": null, + "config": null, + "context": [], + "async_execution": false, + "knowledge_sources": [], + "markdown": false + }, + "width": null, + "height": null, + "selected": null, + "positionAbsolute": null, + "dragging": null, + "style": null + } + ], + "edges": [ + { + "source": "agent-b21f35dd-76c0-4d3e-9b8d-868cebc226b6", + "target": "task-2ccc833f-2bfd-4075-84af-9e49bf4b1b44", + "id": "reactflow__edge-agent-c822f6f7-1b94-43f9-ba80-ee76d42ebb14-task-c06ce8d3-0b58-4a2b-95bb-96a716435c29-right-left", + "sourceHandle": null, + "targetHandle": null + }, + { + "source": "agent-6d24346e-3a60-4f02-88e8-a134d2b5852d", + "target": "task-39b5568f-3254-4183-b20e-21e25bb4de50", + "id": "reactflow__edge-agent-8b4f98b2-1886-4ecd-89cb-500f21f55796-task-a17835e0-3370-454f-9a5b-5d8921d34dab-right-left", + "sourceHandle": null, + "targetHandle": null + }, + { + "source": "agent-5ae3847f-9a61-439e-91e3-f37c1a9e47fb", + "target": "task-ab47c9c0-1c2f-4f18-ae65-d23c107af7fd", + "id": "reactflow__edge-agent-4eafe62f-dc89-4441-bf10-2cec5d4b0864-task-565ae362-b9fc-4872-9cbb-23679b0edab2-right-left", + "sourceHandle": null, + "targetHandle": null + }, + { + "source": "agent-cb617a71-cd1e-496e-b8a1-cc15d78d51d9", + "target": "task-4433e8d0-5550-485d-ab57-f08ed434bf52", + "id": "reactflow__edge-agent-f4bb6d7d-c4fe-4a72-bbce-02d3d7eeee02-task-205e27aa-9481-43fa-b94e-25af971475ee-right-left", + "sourceHandle": null, + "targetHandle": null + }, + { + "source": "task-2ccc833f-2bfd-4075-84af-9e49bf4b1b44", + "target": "task-39b5568f-3254-4183-b20e-21e25bb4de50", + "id": "reactflow__edge-task-c06ce8d3-0b58-4a2b-95bb-96a716435c29-task-a17835e0-3370-454f-9a5b-5d8921d34dab-right-left", + "sourceHandle": null, + "targetHandle": null + }, + { + "source": "task-39b5568f-3254-4183-b20e-21e25bb4de50", + "target": "task-ab47c9c0-1c2f-4f18-ae65-d23c107af7fd", + "id": "reactflow__edge-task-a17835e0-3370-454f-9a5b-5d8921d34dab-task-565ae362-b9fc-4872-9cbb-23679b0edab2-right-left", + "sourceHandle": null, + "targetHandle": null + }, + { + "source": "task-ab47c9c0-1c2f-4f18-ae65-d23c107af7fd", + "target": "task-4433e8d0-5550-485d-ab57-f08ed434bf52", + "id": "reactflow__edge-task-565ae362-b9fc-4872-9cbb-23679b0edab2-task-205e27aa-9481-43fa-b94e-25af971475ee-right-left", + "sourceHandle": null, + "targetHandle": null + } + ], + "created_at": "2026-03-06T12:47:51.902839", + "updated_at": "2026-03-06T12:47:51.902841" + } + ], + "flows": [], + "agents": [ + { + "name": "Business Writer", + "role": "Executive Summary Writer", + "goal": "Turn insights into a stakeholder-ready summary with recommendations", + "backstory": "You write clear, concise narratives for sales leadership: what happened, why it matters, and what to do next.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": 300, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": { + "provider": "databricks", + "config": { + "model": "databricks-gte-large-en" + } + }, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 3, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "cb617a71-cd1e-496e-b8a1-cc15d78d51d9", + "created_at": "2026-03-06T12:22:16.858915", + "updated_at": "2026-03-06T12:22:16.858916" + }, + { + "name": "Data Analyst", + "role": "KPI & Trend Analyst", + "goal": "Post-process retrieved results into insights, trends, anomalies, and comparisons", + "backstory": "You analyze tables, compute deltas, identify drivers, and produce a structured insight list with quantified takeaways.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": 300, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": { + "provider": "databricks", + "config": { + "model": "databricks-gte-large-en" + } + }, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 3, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "5ae3847f-9a61-439e-91e3-f37c1a9e47fb", + "created_at": "2026-03-06T12:22:16.811669", + "updated_at": "2026-03-06T12:22:16.811670" + }, + { + "name": "Genie Retriever", + "role": "Databricks Genie Query Executor", + "goal": "Retrieve structured results from a specific Genie space connected to Superstore tables", + "backstory": "You are skilled at asking Genie for tabular outputs with clear columns and time windows. You return results in a clean, structured form.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [ + "35" + ], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": 300, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": { + "provider": "databricks", + "config": { + "model": "databricks-gte-large-en" + } + }, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 3, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "6d24346e-3a60-4f02-88e8-a134d2b5852d", + "created_at": "2026-03-06T12:22:16.766712", + "updated_at": "2026-03-06T12:22:16.766713" + }, + { + "name": "Query Planner", + "role": "Analytics Question Planner", + "goal": "Convert business questions into precise Genie queries", + "backstory": "You break down business questions into measurable metrics, dimensions, and time filters and produce a single clean query prompt for Genie.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": 300, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": { + "provider": "databricks", + "config": { + "model": "databricks-gte-large-en" + } + }, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 3, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "b21f35dd-76c0-4d3e-9b8d-868cebc226b6", + "created_at": "2026-03-06T12:22:16.719608", + "updated_at": "2026-03-06T12:22:16.719610" + }, + { + "name": "Business Writer", + "role": "Executive Summary Writer", + "goal": "Turn insights into a stakeholder-ready summary with recommendations", + "backstory": "You write clear, concise narratives for sales leadership: what happened, why it matters, and what to do next.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": 300, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": { + "provider": "databricks", + "config": { + "model": "databricks-gte-large-en" + } + }, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 3, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "87baee14-3b3c-42d6-aed4-38685b93777e", + "created_at": "2026-03-06T09:37:52.517766", + "updated_at": "2026-03-06T09:37:52.517768" + }, + { + "name": "Data Analyst", + "role": "KPI & Trend Analyst", + "goal": "Post-process retrieved results into insights, trends, anomalies, and comparisons", + "backstory": "You analyze tables, compute deltas, identify drivers, and produce a structured insight list with quantified takeaways.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": 300, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": { + "provider": "databricks", + "config": { + "model": "databricks-gte-large-en" + } + }, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 3, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "e0acb88c-3984-48e4-b665-e07f15798789", + "created_at": "2026-03-06T09:37:52.448531", + "updated_at": "2026-03-06T09:37:52.448533" + }, + { + "name": "Genie Retriever", + "role": "Databricks Genie Query Executor", + "goal": "Retrieve structured results from a specific Genie space connected to Superstore tables", + "backstory": "You are skilled at asking Genie for tabular outputs with clear columns and time windows. You return results in a clean, structured form.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [ + "35" + ], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": 300, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": { + "provider": "databricks", + "config": { + "model": "databricks-gte-large-en" + } + }, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 3, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "226bcf5a-200d-45fa-8d64-bd39965104a3", + "created_at": "2026-03-06T09:37:52.397758", + "updated_at": "2026-03-06T09:37:52.397760" + }, + { + "name": "Query Planner", + "role": "Analytics Question Planner", + "goal": "Convert business questions into precise Genie queries", + "backstory": "You break down business questions into measurable metrics, dimensions, and time filters and produce a single clean query prompt for Genie.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": 300, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": { + "provider": "databricks", + "config": { + "model": "databricks-gte-large-en" + } + }, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 3, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "0abd6774-cd5b-4403-98af-f1bdb90e8d83", + "created_at": "2026-03-06T09:37:52.345273", + "updated_at": "2026-03-06T09:37:52.345275" + }, + { + "name": "Planner", + "role": "Query Planner", + "goal": "Translate a business question into a precise Genie prompt", + "backstory": "You specialize in converting high-level business questions into clear, structured data queries for Genie.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": null, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": null, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 2, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "bc8ada2b-f046-4b5a-a6d0-962648915bd4", + "created_at": "2026-03-06T09:37:50.127430", + "updated_at": "2026-03-06T09:37:50.127432" + }, + { + "name": "Genie Analyst", + "role": "Databricks Genie Analyst", + "goal": "Retrieve data from Genie and summarize results", + "backstory": "You are an expert at querying Genie spaces and interpreting structured results from Unity Catalog tables.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": null, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": null, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 2, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "1b690449-afb2-41e7-a6a9-1f431297b29f", + "created_at": "2026-03-06T09:37:50.075011", + "updated_at": "2026-03-06T09:37:50.075013" + }, + { + "name": "Genie Analyst", + "role": "Databricks Genie Analyst", + "goal": "Retrieve data from Genie and summarize results", + "backstory": "You are an expert at querying Genie spaces and interpreting structured results from Unity Catalog tables.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [ + "35" + ], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": null, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": null, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 2, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "1e4ad16a-be09-4679-a692-429174f8c99b", + "created_at": "2026-03-06T09:37:50.026680", + "updated_at": "2026-03-06T09:37:50.026682" + }, + { + "name": "Writer", + "role": "Business Summary Writer", + "goal": "Turn retrieved data into a concise business explanation", + "backstory": "You convert structured data into clear, decision-oriented summaries.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": null, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": null, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 2, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "1f11c441-7657-48c9-996d-bd6f55ff8c94", + "created_at": "2026-03-06T09:37:49.962916", + "updated_at": "2026-03-06T09:37:49.962918" + }, + { + "name": "Query Planner", + "role": "Analytics Question Planner", + "goal": "Convert business questions into precise Genie queries", + "backstory": "You break down business questions into measurable metrics, dimensions, and time filters and produce a single clean query prompt for Genie.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": null, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": null, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 2, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "c2f50cdb-c8b2-4323-9ee4-31bc2e2c5678", + "created_at": "2026-03-06T09:37:49.872487", + "updated_at": "2026-03-06T09:37:49.872488" + }, + { + "name": "Genie Retriever", + "role": "Databricks Genie Query Executor", + "goal": "Retrieve structured results from a specific Genie space connected to Superstore tables", + "backstory": "You are skilled at asking Genie for tabular outputs with clear columns and time windows. You return results in a clean, structured form.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [ + "35" + ], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": null, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": null, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 2, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "cddf364f-d72f-4537-9873-64a25b92a870", + "created_at": "2026-03-06T09:37:49.825314", + "updated_at": "2026-03-06T09:37:49.825316" + }, + { + "name": "Data Analyst", + "role": "KPI & Trend Analyst", + "goal": "Post-process retrieved results into insights, trends, anomalies, and comparisons", + "backstory": "You analyze tables, compute deltas, identify drivers, and produce a structured insight list with quantified takeaways.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": null, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": null, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 2, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "11c2ba3f-f50b-4dc3-aea5-dbdc7ae65b73", + "created_at": "2026-03-06T09:37:49.776854", + "updated_at": "2026-03-06T09:37:49.776856" + }, + { + "name": "Business Writer", + "role": "Executive Summary Writer", + "goal": "Turn insights into a stakeholder-ready summary with recommendations", + "backstory": "You write clear, concise narratives for sales leadership: what happened, why it matters, and what to do next.", + "llm": "databricks-llama-4-maverick", + "temperature": null, + "tools": [], + "tool_configs": {}, + "function_calling_llm": null, + "max_iter": 25, + "max_rpm": 1, + "max_execution_time": null, + "verbose": false, + "allow_delegation": false, + "cache": true, + "memory": true, + "embedder_config": null, + "system_template": null, + "prompt_template": null, + "response_template": null, + "allow_code_execution": false, + "code_execution_mode": "safe", + "max_retry_limit": 2, + "use_system_prompt": true, + "respect_context_window": true, + "knowledge_sources": [], + "id": "4a5542db-6e66-4260-b2a4-a24700ce1dd0", + "created_at": "2026-03-06T09:37:49.726211", + "updated_at": "2026-03-06T09:37:49.726213" + } + ], + "tasks": [ + { + "name": "Generate Genie Query", + "description": "Analyze the business question {business_question} and generate a single, precise prompt to send to Genie in space.", + "agent_id": null, + "expected_output": "A single optimized Genie prompt.", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "33f41908-dea7-4108-9b3d-00ed9af6a005", + "created_at": "2026-03-06T09:37:50.179416", + "updated_at": "2026-03-06T09:37:50.179420" + }, + { + "name": "Retrieve Data from Genie", + "description": "Use the generated Genie prompt to query space.", + "agent_id": null, + "expected_output": "Genie result summary with numbers.", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "18b4eef9-7583-4ea3-8071-4bc4c810af1b", + "created_at": "2026-03-06T09:37:50.232326", + "updated_at": "2026-03-06T09:37:50.232330" + }, + { + "name": "Write Business Summary", + "description": "Using the Genie results, write a concise business summary answering {business_question}.\nInclude:\n\n3–5 key insights\n\nNotable trends or anomalies\n\n1–2 recommended next actions", + "agent_id": null, + "expected_output": "Clear executive-style summary.", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "55c0f368-dd73-43e4-a75d-606f01f11e20", + "created_at": "2026-03-06T09:37:50.282775", + "updated_at": "2026-03-06T09:37:50.282778" + }, + { + "name": "Plan Genie Query", + "description": "Description: Create one precise Genie prompt to answer the business question {question} using data from Genie space. The prompt must request a tabular result and specify the timeframe if relevant.", + "agent_id": null, + "expected_output": "A single Genie prompt (verbatim), plus a short note listing the metrics/dimensions it", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "dc4b9e05-c81d-44bb-b4de-6df4384d7f54", + "created_at": "2026-03-06T09:37:50.347414", + "updated_at": "2026-03-06T09:37:50.347418" + }, + { + "name": "Retrieve Data from Genie", + "description": "Use the Genie prompt from the previous task to query Genie space. Return the results in a structured format. Include the exact Genie prompt used and the returned table (or key rows). If results are ambiguous, run one clarification prompt.", + "agent_id": null, + "expected_output": "1. Genie prompt used\n2. Tabular results (or a clean structured representation)\n3. Any caveats (filters/time window assumptions, missing values)\nSave", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "47a6581d-bbd5-4bd3-978a-a3ffb252b28d", + "created_at": "2026-03-06T09:37:50.406254", + "updated_at": "2026-03-06T09:37:50.406258" + }, + { + "name": "Post-process & Extract Insights", + "description": "Analyze the retrieved Genie results and produce insights. Compute derived KPIs if possible (e.g., profit margin = profit/sales). Identify top drivers, underperformers, and any anomalies. Output a structured list of 5–10 insights with numbers.", + "agent_id": null, + "expected_output": "A numbered list of insights with quantified evidence, plus 2–3 hypotheses/drivers.\nSave", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "73ab7ea9-d5f7-4b80-86a1-485f889c8d6b", + "created_at": "2026-03-06T09:37:50.457710", + "updated_at": "2026-03-06T09:37:50.457713" + }, + { + "name": "Write Executive Summary", + "description": "Using the extracted insights, write a concise executive summary answering {question}. Include key findings, implications, and recommended next actions. Max 250–350 words.\nExpected Output: A stakeholder-ready summary with bullet takeaways and next steps.", + "agent_id": null, + "expected_output": "", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "f9ba6893-a504-4e9b-9b2c-a92ec15a204c", + "created_at": "2026-03-06T09:37:50.511252", + "updated_at": "2026-03-06T09:37:50.511256" + }, + { + "name": "Plan Genie Query", + "description": "Description: Create one precise Genie prompt to answer the business question {question} using data from Genie space. The prompt must request a tabular result and specify the timeframe if relevant.", + "agent_id": null, + "expected_output": "A single Genie prompt (verbatim), plus a short note listing the metrics/dimensions it", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "020623d6-5496-4dbd-b0da-9f51d5ef9a76", + "created_at": "2026-03-06T09:37:52.598799", + "updated_at": "2026-03-06T09:37:52.598804" + }, + { + "name": "Retrieve Data from Genie", + "description": "Use the Genie prompt from the previous task to query Genie space. Return the results in a structured format. Include the exact Genie prompt used and the returned table (or key rows). If results are ambiguous, run one clarification prompt.", + "agent_id": null, + "expected_output": "1. Genie prompt used\n2. Tabular results (or a clean structured representation)\n3. Any caveats (filters/time window assumptions, missing values)\nSave", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "34840d21-9956-44bf-8f08-b5be999101b1", + "created_at": "2026-03-06T09:37:52.655767", + "updated_at": "2026-03-06T09:37:52.655770" + }, + { + "name": "Post-process & Extract Insights", + "description": "Analyze the retrieved Genie results and produce insights. Compute derived KPIs if possible (e.g., profit margin = profit/sales). Identify top drivers, underperformers, and any anomalies. Output a structured list of 5–10 insights with numbers.", + "agent_id": null, + "expected_output": "A numbered list of insights with quantified evidence, plus 2–3 hypotheses/drivers.\nSave", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "ed9d3f32-0e4c-4311-acd6-0ca7573a7086", + "created_at": "2026-03-06T09:37:52.715226", + "updated_at": "2026-03-06T09:37:52.715230" + }, + { + "name": "Write Executive Summary", + "description": "Using the extracted insights, write a concise executive summary answering {question}. Include key findings, implications, and recommended next actions. Max 250–350 words.\nExpected Output: A stakeholder-ready summary with bullet takeaways and next steps.", + "agent_id": null, + "expected_output": "", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "57f5f50f-7839-414a-a37c-8b2a46ed738c", + "created_at": "2026-03-06T09:37:52.773485", + "updated_at": "2026-03-06T09:37:52.773489" + }, + { + "name": "Plan Genie Query", + "description": "Description: Create one precise Genie prompt to answer the business question {question} using data from Genie space. The prompt must request a tabular result and specify the timeframe if relevant.", + "agent_id": null, + "expected_output": "A single Genie prompt (verbatim), plus a short note listing the metrics/dimensions it", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "2ccc833f-2bfd-4075-84af-9e49bf4b1b44", + "created_at": "2026-03-06T12:22:16.912225", + "updated_at": "2026-03-06T12:46:57.877964" + }, + { + "name": "Retrieve Data from Genie", + "description": "Use the Genie prompt from the previous task to query Genie space. Return the results in a structured format. Include the exact Genie prompt used and the returned table (or key rows). If results are ambiguous, run one clarification prompt.", + "agent_id": null, + "expected_output": "1. Genie prompt used\n2. Tabular results (or a clean structured representation)\n3. Any caveats (filters/time window assumptions, missing values)\nSave", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "39b5568f-3254-4183-b20e-21e25bb4de50", + "created_at": "2026-03-06T12:22:16.998312", + "updated_at": "2026-03-06T12:46:54.529653" + }, + { + "name": "Post-process & Extract Insights", + "description": "Analyze the retrieved Genie results and produce insights. Compute derived KPIs if possible (e.g., profit margin = profit/sales). Identify top drivers, underperformers, and any anomalies. Output a structured list of 5–10 insights with numbers.", + "agent_id": null, + "expected_output": "A numbered list of insights with quantified evidence, plus 2–3 hypotheses/drivers.\nSave", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "ab47c9c0-1c2f-4f18-ae65-d23c107af7fd", + "created_at": "2026-03-06T12:22:17.056229", + "updated_at": "2026-03-06T12:46:52.267708" + }, + { + "name": "Write Executive Summary", + "description": "Using the extracted insights, write a concise executive summary answering {question}. Include key findings, implications, and recommended next actions. Max 250–350 words.", + "agent_id": null, + "expected_output": "A stakeholder-ready summary with bullet takeaways and next steps.", + "tools": [], + "tool_configs": {}, + "async_execution": false, + "context": [], + "config": { + "cache_response": false, + "cache_ttl": 3600, + "retry_on_fail": true, + "guardrail_max_retries": null, + "timeout": null, + "priority": 1, + "error_handling": "default", + "output_file": null, + "output_json": null, + "output_pydantic": null, + "callback": null, + "callback_config": null, + "human_input": false, + "condition": null, + "guardrail": null, + "markdown": false + }, + "output_json": null, + "output_pydantic": null, + "output_file": null, + "output": null, + "markdown": false, + "callback": null, + "callback_config": null, + "human_input": false, + "converter_cls": null, + "guardrail": null, + "id": "4433e8d0-5550-485d-ab57-f08ed434bf52", + "created_at": "2026-03-06T12:22:17.112015", + "updated_at": "2026-03-06T12:46:46.978796" + } + ], + "exportDate": "2026-03-06T12:48:00.235Z" +} \ No newline at end of file