NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Flutter framework for multi-agent AI orchestration. Build agents that use tools, chain tasks, and talk to each other. Works with any LLM provider & no backend is needed.
Last release 3 months ago
02 Jul 2026
Ships unpredictably
gaps range from 2 weeks to 13 months
Nearly every release is documented
notes for 12 of 12 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
12 releases · first in 2025
One column per month.
Tool loop hardening — the agent now hard-blocks re-execution of any (tool, params) combo already attempted in the same turn. If the LLM ignores the ob
(tool, params) combo already attempted in the same turn. If the LLM ignores the observation prompt and re-requests a succeeded tool, the framework filters it out before it reaches the tool's run() method, and if the whole batch is filtered to empty, the loop returns immediately with the accumulated success messages instead of burning more LLM calls. Fixes duplicate side effects (e.g. double-inserted DB rows) observed with strict instruction-following models that would otherwise repeat successful tool calls.Tool.run() dartdoc now formally states that side-effecting tools should be idempotent (upsert semantics, natural key, or idempotency token), since framework-level dedup cannot detect semantically-equivalent calls with different parameter shapes.Updated documentation to list all built-in LLM providers (Gemini, OpenAI, Anthropic, Groq, DeepSeek, Cohere, xAI) and clarify the custom LLM extension
Multi-provider LLM support — built-in implementations for OpenAI, Anthropic, Cohere, Groq, DeepSeek, Mistral, and xAI (Grok) alongside the existing Ge
baseUrl.LlmRateLimitException — new typed exception (extends LlmException) thrown on HTTP 429 responses. Carries retryAfter: Duration? parsed from the Retry-After header and statusCode: int (defaults to 429).LlmException.statusCode — all LLM HTTP errors now expose the HTTP status code via statusCode: int? for programmatic handling.Agent.create() accepts summarizationBatchSize: int (default 0 = disabled). When enabled, evicted messages accumulate in a batch; once the batch reaches the threshold the LLM summarizes them into a rolling context prepended to every future prompt, preventing context window overflow on long conversations._MemoryManager now tracks a per-conversation _savedCount counter so eviction computes are done without fetching the full message history; getContext never issues an unbounded getMessages call regardless of conversation length.Added demo video to README showing live multi-agent orchestration and tool-call tracing.
BREAKING: Removed DataStore.firestoreDataStore() and all Firebase dependencies from core. Firebase support is now in the separate agenix_firebase pack
DataStore.firestoreDataStore() and all Firebase dependencies from core. Firebase support is now in the separate agenix_firebase package.# pubspec.yaml
dependencies:
agenix: ^4.0.0
+ agenix_firebase: ^1.0.0
# dart
+ import 'package:agenix_firebase/agenix_firebase.dart';
- final store = DataStore.firestoreDataStore();
+ final store = FirebaseDataStore();
AgenixException) with typed subclasses: LlmException, LlmTimeoutException, ResponseParseException, ToolNotFoundException, ToolExecutionException, AgentNotFoundException, DataStoreException, NotAuthenticatedException, ConfigExceptionFailureMode enum — choose between throwing typed exceptions or receiving graceful error messagesonError callback on Agent for centralized error handlingAgentScope — isolate groups of agents for multi-tenant or testing scenariosRegistrationPolicy enum — control duplicate agent names (throwIfExists, replace, ignore)LlmConfig — provider-neutral generation settings: temperature, maxOutputTokens, topP, topK, stopSequences, jsonMode, timeoutInMemoryDataStore — zero-dependency data store for testing and prototyping (DataStore.inMemory())kMaxChainDepth = 5)Agent.dispose() — explicit cleanup to unregister agents from their scopeisError field on AgentMessage — error messages are excluded from conversation history sent to the LLMParameterSpecification now supports defaultValue and enumValues for richer tool parameter definitionsAgenixException hierarchyAgent.create() signature expanded with failureMode, scope, and registrationPolicy parameters (all have defaults)LLM interface now requires modelId getter and config getter returning LlmConfigAgents can reiterate over tool responses
Added support for custom path of Agent's data
Added structured tool responses
Updated documentation and refactored the code base
Added keywords for better search
Improved tool pipeline to allow the agent to understand tools without params
The release version of agenix with Firebase and Gemini
Your coding agent can read these notes before it upgrades. Set up the MCP server →