Lightweight Framework for Orchestrating Multi-Agent Large Language Models
Overview
Provides tools for creating agents with persistent state using R6 classes https://cran.r-project.org/package=R6 and the 'ellmer' package https://cran.r-project.org/package=ellmer. Tracks prompts, messages, and agent metadata for reproducible, multi-turn large language model sessions.
Bugfix: clearer errors on LLM/tool failures instead of an opaque crash
Two related failures previously surfaced as a cryptic internal error -
`Error in vapply(): ! values must be length 1, but FUN(X[[1]]) result is
length 0 - deep inside Agent$invoke()`'s message-sync internals, with no
indication of what actually went wrong:
- **The LLM provider itself is unreachable** (network issue, invalid API key, provider outage, timeout).
$invoke()(and every other direct LLM call insideAgentandLeadAgent) now catches the raw provider error and raises a clear, actionable message explaining the likely cause, while still preserving the original error for debugging. - **A registered tool call fails** (e.g. the API a tool wraps - like a weather service - is down).
ellmerrecords this as a result with an empty value and an error attached; mini007 was feeding that empty value straight intosprintf(), which silently produced a zero-length string and crashed the vapply() call that assembles message history.$invoke()now survives this and records the actual tool error (e.g."ERROR: connection refused: weather API is down") in the conversation history instead of crashing.
Show all changes in 0.5.0Hide the rest of the changes in 0.5.0
Non-blocking Human-In-The-Loop: pause and resume
HITL no longer requires a blocking readline() prompt inside an interactive
console. $set_hitl() on both Workflow and LeadAgent gains a mode
argument:
mode = "console"(default) — unchanged: blocks onreadline()exactly as before.mode = "pause"—$run()/$invoke()return immediately with amini007_pendingobject describing the paused step instead of blocking. Inspect it, then call the new$resume(request_id, action, value)method (actionis one of"continue","edit","abort") to continue execution from that point.
This makes HITL usable outside an interactive console - e.g. from a Shiny
app, a Plumber endpoint, or any batch job that needs to persist a paused
run and resume it later.
**New:**
Workflow$resume()/LeadAgent$resume()is_pending()— check whether a value is a pausedmini007_pendingobject
**Changed:**
Workflow$set_hitl()/LeadAgent$set_hitl()gain amodeargument ("console"default,"pause")
Parallel Station Execution for Workflows
Major feature addition enabling 2-4x speedup for independent processing units.
**New Methods:**
$set_daemons(n)— Configurenparallel worker processes usingmiraipackage$add_parallel_group(from, stations, to, merge_fn)— Define stations to execute concurrentlyfrom: predecessor stationstations: vector of station names to run in parallelto: optional successor station (receives merged results)merge_fn: custom function to combine parallel results (default: newline concatenation)
**Enhanced Methods:**
$visualize()— Now displays parallel routes in **red with ∥ symbol** to distinguish from sequential routes
**Use Cases:**
- Multi-agent analysis (e.g., technical, business, UX perspectives in parallel)
- Parallel tool calling and independent data transformations
- Ensemble model voting and comparison
- Significant latency reduction for embarrassingly parallel workflows
**Performance:**
- 3 parallel agents: ~3x faster than sequential execution
- Compatible with existing caching, retry, fallback, and HITL features
- Full integration with
AgentandWorkflowAgenthandlers
**Documentation:**
- Comprehensive parallel stations section in
workflow.qmdwith working example - Real-world example in
example_real_llm.Rdemonstrating 3 parallel agents analyzing "AI in Healthcare" - Updated README.Rmd with parallel execution overview
**Technical Details:**
- Built on
miraipackage for reliable async execution - Each parallel station inherits retry/fallback configuration
- Parallel results automatically cached with same mechanism as sequential stations
- Graceful daemon cleanup and reinitialization
- Adding the
per-station retryfeatures to theWorkflowclass - Adding the
fallback handlersto theWorkflowclass
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK13 OK2026-07-16
- WARNING12 OK, 1 WARNING2026-07-14
- OK13 OK2026-06-09
Show 2 earlier changesHide 2 earlier changes
- ERROR12 OK, 1 ERROR2026-06-08
- OK14 OK2026-03-10
Documentation
- Help pages
- 6
- Examples that run
- 100%3 run in a plain check
- Exported functions with examples
- 60%
- Documented parameters
- 100%
- Return-value docs
- 20%
- Help pages citing references
- 0%
Downloads
Repository
- PRs merged (all time)
- 17%
- Median days to close, 50 most recently updated closed issues
- 2
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Forks over time
Releases over time
Issues over time
PRs over time
Commits over time
7 development-tooling and community-health practices detected across 4 families in the upstream repository
Checks run against github.com/feddelegrand7/mini007 on 2026-10-18.
The repository owner accepts GitHub Sponsors
This repository shows signs of AI coding tools.
- Cursorfirst seen 2025-09-23Named in .Rbuildignore: .cursorPull request it wrote: opened by a project member
- Claude Codefirst seen 2025-12-04Seen in the repository: .claudeNamed in .Rbuildignore: .claude
Dependencies
Code & Tests
People & History
Package metadata
- First published
- 2025-09-05
- Total releases
- 7 / 1 yrs
- License
- MIT + file LICENSE OSI
- Download size
- 435 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("mini007")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-20, which the citation names so these numbers can be found later. More on citing and the projects behind them.