Reasoning and Acting Workflow for Automated Data Analysis

Provides a framework for integrating Large Language Models (LLMs) with R programming through workflow automation. Built on the ReAct (Reasoning and Acting) architecture, enables bi-directional communication between LLMs and R environments. Features include automated code generation and execution, intelligent error handling with retry mechanisms, persistent session management, structured JSON output validation, and context-aware conversation management.


llmflow

R-CMD-check CRAN status r-universe

Overview

llmflow provides a framework for automated data analysis through the integration of Large Language Models (LLMs) with R. Built on the ReAct (Reasoning and Acting) architecture, the package enables iterative problem-solving by alternating between reasoning steps and code execution, allowing LLMs to autonomously analyze data, handle errors, and refine solutions.

Key Features

  • ReAct Architecture: Iterative reasoning and acting loops for complex analytical tasks
  • Automated Code Execution: LLM-generated R code runs in isolated sessions with error handling
  • Intelligent Error Recovery: Automatic retry mechanisms with progressive error escalation
  • Session Persistence: Maintain R session state across multiple LLM interactions
  • Structured Output: JSON schema validation for reliable, parseable responses
  • RAG Integration: Retrieval-augmented generation with R function documentation

Installation

From R-universe:

install.packages("llmflow", repos = c("https://zaoqu-liu.r-universe.dev", "https://cloud.r-project.org"))

From GitHub:

# install.packages("pak")
pak::pak("Zaoqu-Liu/llmflow")

Requirements

The package requires ellmer for LLM communication:

install.packages("ellmer")

Quick Start

library(llmflow)
library(ellmer)

# Initialize LLM client
llm <- chat_openai(model = "gpt-4o")

# Automated analysis with ReAct workflow
result <- AutoFlow(
 react_llm = llm,
 task_prompt = "Perform linear regression of mpg on hp and wt using mtcars"
)

Core Functions

Function Description
AutoFlow() Complete workflow combining RAG and ReAct
react_r() ReAct loop for iterative problem solving
response_to_r() Execute LLM-generated R code
response_as_json() Structured JSON output with schema validation
retrieve_docs() Retrieve R function documentation for RAG

Usage Examples

ReAct Workflow

result <- react_r(
 chat_obj = llm,
 task = "Calculate correlation matrix for iris numeric columns",
 max_turns = 10,
 verbose = TRUE
)

# Access results
result$final_answer
result$code_summary$complete_script

JSON Response with Schema Validation

schema <- list(
 type = "object",
 properties = list(
   analysis_type = list(type = "string"),
   findings = list(type = "array", items = list(type = "string"))
 ),
 required = c("analysis_type", "findings")
)

response <- response_as_json(
 chat_obj = llm,
 prompt = "Summarize the iris dataset",
 schema = schema,
 schema_strict = TRUE
)

Code Generation and Execution

result <- response_to_r(
 chat_obj = llm,
 prompt = "Create a scatter plot of mpg vs hp from mtcars",
 pkgs_to_use = c("ggplot2"),
 return_mode = "full"
)

License

GPL (>= 3)

Citation

Liu Z (2026). llmflow: Reasoning and Acting Workflow for Automated Data Analysis.
R package version 3.0.1, https://github.com/Zaoqu-Liu/llmflow

Author

Zaoqu Liu

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("llmflow")

3.0.2 by Zaoqu Liu, 8 months ago


https://github.com/Zaoqu-Liu/llmflow


Report a bug at https://github.com/Zaoqu-Liu/llmflow/issues


Browse source code at https://github.com/cran/llmflow


Authors: Zaoqu Liu [aut, cre]


Documentation:   PDF Manual  


GPL (>= 3) license


Imports callr, cli, glue, jsonlite, jsonvalidate

Suggests ellmer, testthat


See at CRAN