The Flower team is excited to announce the release of Flower 1.43 stable, packed with new updates!
Flower is a friendly framework for collaborative AI and data science. It makes novel approaches such as federated learning, federated evaluation, federated analytics, and fleet learning accessible to a wide audience of researchers and engineers.
Thanks to our contributors
We would like to give our special thanks to all the contributors who made the new version of Flower possible (in git shortlog order):
Charles Beauville, Chong Shen Ng, Daniel Nata Nugraha, Heng Pan, Javier, Taner Topal
What's new?
-
Stop strategies before all rounds complete (#8401)
Pass a should_stop(server_round, result) callback to Strategy.start() to stop an FL run after any completed round and return the current model and collected metrics through the normal exit path.
-
Use HTTP for Fleet and Control APIs (#8458, #8462, #8463, #8464, #8467, #8468, #8475)
SuperLink now serves the Fleet and Control APIs over HTTP only. Their legacy gRPC services and the optional gRPC health service have been removed, remaining compatibility gRPC code lives under flwr.compat, and deprecated transport options no longer configure active services.
-
Reduce Agent response latency (#8425, #8431, #8432, #8437, #8449)
Runtime Responses now call inference endpoints directly, and Agent warm pools are maintained in the background. The obsolete Model worker and its message transport are removed, while the AgentApp API remains unchanged.
-
Create and list persistent Agents (experimental) (#8430, #8435, #8439, #8440, #8441, #8443, #8445)
The Control API now supports creating and listing persistent Agents owned by the authenticated account. CoreState also stores conversations and messages, laying the groundwork for conversation APIs.
-
General improvements (#8410, #8411, #8413, #8414, #8421, #8422, #8428, #8436, #8438, #8447, #8448, #8455, #8460, #8461, #8465, #8466, #8470, #8471, #8472)
As always, many parts of the Flower framework and quality infrastructure were improved and updated.
Incompatible changes
-
Handle unavailable nodes explicitly in strategies (#8385, #8409, #8415, #8426, #8429)
The messaging system has been reworked for improved stability and flexibility. SuperLink no longer generates automatic error replies, so custom strategies relying on them must handle unavailable nodes and missing replies explicitly. The standard Strategy.start() loop handles unavailable nodes automatically.
