This one closes out a long road. Over the past 6+ months, the "Align KTO with DPO" effort landed ~90 PRs methodically bringing KTO up to the standard we hold for stable trainers, one carefully-scoped change at a time: - Feature parity with DPO: full VLM support (incl. multi-image), sync_ref_model, PEFT + Liger, ZeRO-3 + PEFT dtype fix, pad_to_multiple_of, activation offloading, IterableDataset and dict eval_dataset, remove_unused_columns, and reference-logprob precomputation at init. - Consistency with DPO: aligned method order and signatures, tokenization, _prepare_dataset, PEFT handling, ref-model preparation for distributed training, and config layout β plus a new DataCollatorForKTO and output format. Metrics moved into _compute_loss and simplified to direct averages via the shared _metrics attribute. - Removing legacy baggage: dropped encoder-decoder support, BOS/EOS handling, null_ref_context, generate_during_eval, model_init, preprocess_logits_for_metrics, model/ref adapter names, and several dead config knobs. - Coverage: a full test suite mirroring DPO, text collator tests, VLM tests, and slow tests. - The promotion itself: the experimental β stable move (#6175) and shim cleanup (#6287), handled so downstream users get a clean deprecation path.
Honestly, this has been one of the more complex tasks I've taken on since joining the team, not because any single change was hard, but because it demanded sustained consistency across a ~2,000-line trainer, with every branch, comment, and edge case kept in lockstep with DPO.
Huge thanks to everyone who reviewed along the way (especially @qgallouedec), the incremental review cadence is exactly what kept this maintainable.
KTO now sits on equal footing with our other flagship trainers. π
π TRL v0.29.0 introduces trl-training: an agent-native training skill.
This makes the TRL CLI a structured, agent-readable capability, allowing AI agents to reliably execute training workflows such as: - Supervised Fine-Tuning (SFT) - Direct Preference Optimization (DPO) - Group Relative Policy Optimization (GRPO)
Weβre excited to see what the community builds on top of this.
If youβre working on AI agents, alignment research, or scalable RL training infrastructure: give TRL v0.29.0 a try! π€
π smolagents v1.21.0 is here! Now with improved safety in the local Python executor: dunder calls are blocked! β οΈ Still, not fully isolated: for untrusted code, use a remote executor instead: Docker, E2B, Wasm. β¨ Many bug fixes: more reliable code. π https://github.com/huggingface/smolagents/releases/tag/v1.21.0
π New in smolagents v1.20.0: Remote Python Execution via WebAssembly (Wasm)
We've just merged a major new capability into the smolagents framework: the CodeAgent can now execute Python code remotely in a secure, sandboxed WebAssembly environment!
π§ Powered by Pyodide and Deno, this new WasmExecutor lets your agent-generated Python code run safely: without relying on Docker or local execution.
Why this matters: β Isolated execution = no host access β No need for Python on the user's machine β Safer evaluation of arbitrary code β Compatible with serverless / edge agent workloads β Ideal for constrained or untrusted environments
This is just the beginning: a focused initial implementation with known limitations. A solid MVP designed for secure, sandboxed use cases. π‘
π‘ We're inviting the open-source community to help evolve this executor: β’ Tackle more advanced Python features β’ Expand compatibility β’ Add test coverage β’ Shape the next-gen secure agent runtime
Let's reimagine what agent-driven Python execution can look like: remote-first, wasm-secure, and community-built.
This feature is live in smolagents v1.20.0! Try it out. Break things. Extend it. Give us feedback. Let's build safer, smarter agents; together π§ βοΈ
π SmolAgents v1.19.0 is live! This release brings major improvements to agent flexibility, UI usability, streaming architecture, and developer experience: making it easier than ever to build smart, interactive AI agents. Here's what's new:
π§ Agent Upgrades - Support for managed agents in ToolCallingAgent - Context manager support for cleaner agent lifecycle handling - Output formatting now uses XML tags for consistency
π₯οΈ UI Enhancements - GradioUI now supports reset_agent_memory: perfect for fresh starts in dev & demos.
π Streaming Refactor - Streaming event aggregation moved off the Model class - β‘οΈ Better architecture & maintainability
π¦ Output Tracking - CodeAgent outputs are now stored in ActionStep - β More visibility and structure to agent decisions
π Bug Fixes - Smarter planning logic - Cleaner Docker logs - Better prompt formatting for additional_args - Safer internal functions and final answer matching
π Docs Improvements - Added quickstart examples with tool usage - One-click Colab launch buttons - Expanded reference docs (AgentMemory, GradioUI docstrings) - Fixed broken links and migrated to .md format