<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Ammar</title>
    <description>The latest articles on Forem by Ammar (@ammar-alnagar).</description>
    <link>https://forem.com/ammar-alnagar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3591961%2Fc7c0a098-bfad-4c23-b71e-1ae862900b27.png</url>
      <title>Forem: Ammar</title>
      <link>https://forem.com/ammar-alnagar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ammar-alnagar"/>
    <language>en</language>
    <item>
      <title>Helios Engine v0.4.3 Update — Smarter Tooling and Easier Initialization</title>
      <dc:creator>Ammar</dc:creator>
      <pubDate>Fri, 07 Nov 2025 13:09:05 +0000</pubDate>
      <link>https://forem.com/ammar-alnagar/helios-engine-v043-update-smarter-tooling-and-easier-initialization-3i34</link>
      <guid>https://forem.com/ammar-alnagar/helios-engine-v043-update-smarter-tooling-and-easier-initialization-3i34</guid>
      <description>&lt;h1&gt;
  
  
  Hey Rust community and AI builders
&lt;/h1&gt;

&lt;p&gt;When I first introduced Helios Engine, the goal was simple: make building intelligent, LLM-powered systems in Rust feel natural, fast, and type-safe. With this new release, that goal moves a step closer. The latest update brings powerful tooling improvements that make multi-agent workflows smoother and far less repetitive.&lt;/p&gt;

&lt;p&gt;If you’ve been experimenting with agent orchestration, tool calling, or automated reasoning in Rust, this version is for you. Let’s dig in.&lt;/p&gt;

&lt;h1&gt;
  
  
  What’s New in Helios Engine v0.4.3
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. ToolBuilder Inference
&lt;/h2&gt;

&lt;p&gt;Until now, adding tools meant explicitly redefining each function — its name, parameters, and purpose — before registering it with the engine. The new ToolBuilder removes that friction. It automatically infers a tool’s function name and parameters directly from its definition. This means you can register tools in a single line without boilerplate or repetitive code.&lt;/p&gt;

&lt;p&gt;This is especially useful when you are wiring up several lightweight utilities or exposing a large toolset to multiple agents. The compiler stays in control, and you keep your focus on logic instead of setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Array-Based Initialization
&lt;/h2&gt;

&lt;p&gt;In earlier versions, every agent or tool had to be initialized separately. That worked fine for small systems, but became cumbersome in complex setups. Now you can initialize multiple agents or tools at once by passing arrays directly into the engine.&lt;/p&gt;

&lt;p&gt;This change improves readability and scalability. You can load configurations dynamically, iterate through tool definitions, and deploy complete agent networks without touching repetitive setup code.&lt;/p&gt;

&lt;p&gt;Together, these features make Helios Engine more declarative, faster to prototype with, and easier to scale across projects that combine multiple models, tools, and reasoning chains.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why These Changes Matter
&lt;/h2&gt;

&lt;p&gt;Building AI systems in Rust has always been about reliability and control. The Helios Engine philosophy is to combine strong typing, zero-cost abstractions, and a modular design that lets developers experiment without losing safety.&lt;/p&gt;

&lt;p&gt;With ToolBuilder inference, you get Rust’s static guarantees while cutting away setup overhead. With array-based initialization, you can describe agent environments as data instead of imperative code. These updates help bridge the gap between low-level precision and high-level flexibility — something that Rust does better than most languages.&lt;/p&gt;

&lt;p&gt;No redundant definitions, no manual registration. Just pure function logic wrapped in Helios’s runtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;The next milestone focuses on richer orchestration features, custom embedding support, and improved async pipelines. If you have ideas for new integrations or optimizations, open an issue on GitHub or share feedback directly.&lt;/p&gt;

&lt;p&gt;Try the latest release here: crates.io/crates/helios-engine&lt;/p&gt;

</description>
      <category>rust</category>
      <category>ai</category>
      <category>agents</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Helios Engine v0.4.1: Level Up Your Rust LLM Agents with Smarter Forests and Broader Provider Support</title>
      <dc:creator>Ammar</dc:creator>
      <pubDate>Tue, 04 Nov 2025 03:06:17 +0000</pubDate>
      <link>https://forem.com/ammar-alnagar/helios-engine-v041-level-up-your-rust-llm-agents-with-smarter-forests-and-broader-provider-56md</link>
      <guid>https://forem.com/ammar-alnagar/helios-engine-v041-level-up-your-rust-llm-agents-with-smarter-forests-and-broader-provider-56md</guid>
      <description>&lt;h1&gt;
  
  
  Helios Engine v0.4.1: Level Up Your Rust LLM Agents with Smarter Forests and Broader Provider Support
&lt;/h1&gt;

&lt;p&gt;Hey Rust community and AI builders! 👋&lt;/p&gt;

&lt;p&gt;Remember when I introduced &lt;strong&gt;Helios Engine&lt;/strong&gt; back in v0.3.7 – that lightweight Rust framework for spinning up LLM-powered agents without the hassle? Well, buckle up because we've just dropped &lt;strong&gt;v0.4.1&lt;/strong&gt;, and it's a game-changer for multi-agent workflows and model flexibility. If you're tired of brittle agent orchestration or juggling multiple LLM APIs, this update makes complex AI systems feel effortless – all while keeping things fast, safe, and Rust-native.&lt;/p&gt;

&lt;p&gt;I've been heads-down iterating based on your feedback (shoutout to the GitHub stars and issues!), and v0.4.1 refines the "Forest" multi-agent system into a powerhouse. Fresh off crates.io and GitHub, it's ready for your next project. Let's dive in!&lt;/p&gt;

&lt;h2&gt;
  
  
  What's New in v0.4.1?
&lt;/h2&gt;

&lt;p&gt;Helios Engine is your go-to for building agents that chat, tool-call, and collaborate like pros. This release amps up the smarts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Forest of Agents v2: Smarter Collaboration&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Say goodbye to simple handoffs – now agents plan hierarchically! A "supervisor" can break down tasks, delegate to specialists, and resolve conflicts on the fly. Perfect for research pipelines, automated workflows, or any setup where agents need to think &lt;em&gt;together&lt;/em&gt;. Reduced hallucinations and better context flow mean more reliable outputs in complex scenarios.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Expanded LLM Provider Love&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenRouter Integration&lt;/strong&gt;: Route across 100+ models/providers seamlessly. Optimize for cost, speed, or quality without rewriting code.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;vLLM Support&lt;/strong&gt;: Turbocharge local/open models with structured tool-calling and extra params like logprobs. Streaming just got even smoother for multi-agent streams.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Under-the-Hood Polish&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed streaming glitches in agent forests (no more dropped tokens mid-convo).
&lt;/li&gt;
&lt;li&gt;~15% memory savings in tool registries for big setups.
&lt;/li&gt;
&lt;li&gt;Tokio 1.38 for rock-solid async, plus optional features for the new providers.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;No breaking changes here – upgrade painlessly from 0.3.x and watch your agents evolve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Core Features Recap (Now Even Better)
&lt;/h2&gt;

&lt;p&gt;Helios still packs everything you loved:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Agent Forests&lt;/strong&gt;: Now with v2 planning for dynamic delegation.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool Superpowers&lt;/strong&gt;: 16+ built-ins (web scraping, HTTP, shell, JSON, etc.) plus easy customs.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RAG Ready&lt;/strong&gt;: Vector stores for grounded responses (In-Memory or Qdrant).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid Modes&lt;/strong&gt;: Online (OpenAI/OpenRouter/vLLM) or offline (llama.cpp/HF).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streaming &amp;amp; Server Mode&lt;/strong&gt;: Real-time chats and OpenAI-compatible APIs.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CLI + Crate&lt;/strong&gt;: Prototype fast or embed deeply.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rust's speed + safety = agents that scale without the sweat.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get Rolling in Minutes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  CLI Quickstart
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install (grab the new features)&lt;/span&gt;
cargo &lt;span class="nb"&gt;install &lt;/span&gt;helios-engine &lt;span class="nt"&gt;--features&lt;/span&gt; openrouter,vllm,local

&lt;span class="c"&gt;# Config and chat&lt;/span&gt;
helios-engine init  &lt;span class="c"&gt;# API keys, models – now includes OpenRouter setup&lt;/span&gt;
helios-engine chat  &lt;span class="c"&gt;# Interactive agent fun&lt;/span&gt;
helios-engine ask &lt;span class="s2"&gt;"Plan a Mars colony using multi-agents"&lt;/span&gt;  &lt;span class="c"&gt;# v2 magic!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Library Vibes
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Cargo.toml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[dependencies]&lt;/span&gt;
&lt;span class="py"&gt;helios-engine&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0.4.1"&lt;/span&gt;
&lt;span class="py"&gt;tokio&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="py"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"1.38"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="py"&gt;features&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"full"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Code snippet for a v2 Forest:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;helios_engine&lt;/span&gt;&lt;span class="p"&gt;::{&lt;/span&gt;&lt;span class="n"&gt;AgentForest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Config&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ToolRegistry&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="n"&gt;tokio&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nd"&gt;#[tokio::main]&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;Result&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="nb"&gt;Box&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;dyn&lt;/span&gt; &lt;span class="nn"&gt;std&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;error&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;Error&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Config&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"config.toml"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// OpenRouter or vLLM endpoint&lt;/span&gt;

    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="k"&gt;mut&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;ToolRegistry&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="nf"&gt;.register_defaults&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="c1"&gt;// Build a planned forest&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="k"&gt;mut&lt;/span&gt; &lt;span class="n"&gt;forest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;AgentForest&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;planned&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"research-team"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;forest&lt;/span&gt;&lt;span class="nf"&gt;.add_agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"planner"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Oversee and delegate tasks."&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;forest&lt;/span&gt;&lt;span class="nf"&gt;.add_agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"researcher"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Gather data via tools."&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;forest&lt;/span&gt;&lt;span class="nf"&gt;.add_agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"verifier"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Check facts and resolve issues."&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;forest&lt;/span&gt;&lt;span class="nf"&gt;.invoke&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Design a sustainable energy plan for a city."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="k"&gt;.await&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="nf"&gt;.stream&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nd"&gt;print!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{} "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt;&lt;span class="py"&gt;.content&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// Smooth multi-agent streaming&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nf"&gt;Ok&lt;/span&gt;&lt;span class="p"&gt;(())&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pro tip: Check the &lt;a href="https://github.com/Ammar-Alnagar/Helios-Engine/blob/master/docs/QUICKSTART.md" rel="noopener noreferrer"&gt;Quickstart&lt;/a&gt; for Forest v2 examples, or &lt;a href="https://docs.rs/helios-engine/0.4.1/helios_engine/" rel="noopener noreferrer"&gt;docs.rs&lt;/a&gt; for API deets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Helios in Rust? (Still True, Now Stronger)
&lt;/h2&gt;

&lt;p&gt;AI in Rust means no GIL drama, safe concurrency for agent swarms, and crates like &lt;code&gt;reqwest&lt;/code&gt; + &lt;code&gt;llama-cpp-rs&lt;/code&gt; humming at full throttle. With vLLM, local inference flies; OpenRouter keeps you vendor-agnostic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Roadmap Tease
&lt;/h2&gt;

&lt;p&gt;v0.5? Database tools, custom embeddings, and orchestration wizards. Hit me with ideas!&lt;/p&gt;

&lt;p&gt;Star us on &lt;a href="https://github.com/Ammar-Alnagar/Helios-Engine" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, grab it from &lt;a href="https://crates.io/crates/helios-engine" rel="noopener noreferrer"&gt;crates.io&lt;/a&gt;, and share your builds in the comments. What's your wildest agent idea?&lt;/p&gt;

</description>
      <category>rust</category>
      <category>llm</category>
      <category>agents</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Helios-Engine ,Why I Built Another LLM Agent Framework (And Why You Might Actually Care)</title>
      <dc:creator>Ammar</dc:creator>
      <pubDate>Mon, 03 Nov 2025 13:55:06 +0000</pubDate>
      <link>https://forem.com/ammar-alnagar/why-i-built-another-llm-agent-framework-and-why-you-might-actually-care-2m6n</link>
      <guid>https://forem.com/ammar-alnagar/why-i-built-another-llm-agent-framework-and-why-you-might-actually-care-2m6n</guid>
      <description>&lt;p&gt;Yeah, I know. Another LLM agent framework. The last thing the world needs, right?&lt;/p&gt;

&lt;p&gt;But hear me out—I built &lt;a href="https://crates.io/crates/helios-engine" rel="noopener noreferrer"&gt;helios-engine&lt;/a&gt; because every existing framework I tried made me want to throw my laptop out the window. And along the way, I learned Rust properly by building something that actually matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Every Framework Was Broken in Its Own Special Way
&lt;/h2&gt;

&lt;p&gt;I tried them all. LangChain, LlamaIndex, AutoGPT, CrewAI—you name it, I fought with it. Here's what I kept running into:&lt;/p&gt;

&lt;h3&gt;
  
  
  Vendor Lock-In Everywhere
&lt;/h3&gt;

&lt;p&gt;Most frameworks are married to OpenAI. Want to use Claude? Gemini? Some open-source model you're hosting yourself? Good luck navigating their half-baked adapter patterns. And if you want to switch providers mid-project? Better start refactoring.&lt;/p&gt;

&lt;h3&gt;
  
  
  "Local Support" That Doesn't Actually Work
&lt;/h3&gt;

&lt;p&gt;Frameworks claim they support local models. What they mean is "we have a broken integration with Ollama that throws cryptic errors half the time." Running a GGUF model directly? Offline inference? Forget about it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Syntax That Fights You
&lt;/h3&gt;

&lt;p&gt;Either you're drowning in boilerplate and configuration files, or you're using some "magical" DSL that breaks the moment you need to do something the framework designers didn't anticipate. Both suck.&lt;/p&gt;

&lt;h3&gt;
  
  
  No Real Multi-Agent Support
&lt;/h3&gt;

&lt;p&gt;Everyone talks about "agents," but most frameworks give you one agent that can kinda-sorta call tools. Building an actual system where multiple agents collaborate? You're on your own.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Python Tax
&lt;/h3&gt;

&lt;p&gt;Most of these frameworks are Python. Which is fine... until you want performance, type safety, or to deploy something that doesn't need a 500MB Docker image just to run.&lt;/p&gt;

&lt;h2&gt;
  
  
  So I Built helios-engine
&lt;/h2&gt;

&lt;p&gt;I had two goals:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Fix all the shit that annoyed me&lt;/strong&gt; about existing frameworks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Actually learn Rust&lt;/strong&gt; instead of just reading the book and building toy projects&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What Makes It Different
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;No Vendor Lock-In&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="c1"&gt;// OpenAI&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;LLMClient&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nn"&gt;LLMProviderType&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="k"&gt;.await&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Any OpenAI-compatible API (Groq, Together, local inference servers)&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;LLMClient&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nn"&gt;LLMProviderType&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;Custom&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="k"&gt;.await&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// True local GGUF models (no server required)&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;LLMClient&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nn"&gt;LLMProviderType&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;Local&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="k"&gt;.await&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same interface. Zero refactoring to switch providers. The client doesn't care where the tokens come from.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local Models That Actually Work&lt;/strong&gt;&lt;br&gt;
The local mode uses llama.cpp under the hood. First run downloads the model from HuggingFace. After that, it's fully offline. No servers, no containers, no Python interpreter. Just Rust and the model file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;local_config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;LocalConfig&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;huggingface_repo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"unsloth/Qwen3-0.6B-GGUF"&lt;/span&gt;&lt;span class="nf"&gt;.to_string&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
    &lt;span class="n"&gt;model_file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Qwen3-0.6B-Q4_K_M.gguf"&lt;/span&gt;&lt;span class="nf"&gt;.to_string&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
    &lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2048&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Forest of Agents&lt;/strong&gt;&lt;br&gt;
Multiple agents that can actually collaborate. Each agent has its own personality, tools, and context. They can delegate tasks to each other, share information, and work together on complex problems.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;researcher&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;AgentBuilder&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;.name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Researcher"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;.goal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Find accurate information"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;.tools&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nd"&gt;vec!&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;search_tool&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;web_scraper_tool&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="nf"&gt;.build&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;AgentBuilder&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;.name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Writer"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;.goal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Create engaging content"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;.tools&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nd"&gt;vec!&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;markdown_tool&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="nf"&gt;.build&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Clean Syntax&lt;/strong&gt;&lt;br&gt;
No magic. No configuration hell. Just Rust code that does what it looks like it does.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;AgentBuilder&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;.name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Assistant"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;.goal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Help the user"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;.instruction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"You are helpful and concise"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;.tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;calculator&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;.tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;web_search&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;.build&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="nf"&gt;.run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"What's 147 * 923?"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="k"&gt;.await&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Tool Belt&lt;/strong&gt;&lt;br&gt;
Tools are just async functions. Register them, and agents can use them. That's it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;get_weather&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;Result&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Your implementation&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;tool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Tool&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="s"&gt;"get_weather"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;"Gets current weather for a location"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;get_weather&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="nf"&gt;.register_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Built-in RAG&lt;/strong&gt;&lt;br&gt;
Vector stores (in-memory or Qdrant), embeddings, retrieval—all integrated. No separate libraries to wrangle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Streaming&lt;/strong&gt;&lt;br&gt;
Real token-by-token streaming for both remote and local models. Watch the thinking process unfold in real-time.&lt;/p&gt;
&lt;h2&gt;
  
  
  What I Learned Building This
&lt;/h2&gt;

&lt;p&gt;Building helios-engine forced me to actually understand Rust's ownership model, async runtime, trait system, and error handling—not just read about them.&lt;/p&gt;
&lt;h3&gt;
  
  
  Async Rust Is Beautiful (Once You Get It)
&lt;/h3&gt;

&lt;p&gt;Fighting with lifetimes in async contexts was painful at first. But once I understood how &lt;code&gt;Send&lt;/code&gt; and &lt;code&gt;Sync&lt;/code&gt; work with futures, everything clicked. The Tokio runtime is &lt;em&gt;fast&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  The Type System Saves You
&lt;/h3&gt;

&lt;p&gt;Python's flexibility sounds nice until you're debugging why your agent system breaks at runtime. Rust's compiler is harsh, but it catches problems before they become production incidents.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="c1"&gt;// This won't compile if LLMProviderType doesn't implement Clone&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;LLMClient&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;provider&lt;/span&gt;&lt;span class="nf"&gt;.clone&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="k"&gt;.await&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That "won't compile" is your best friend.&lt;/p&gt;

&lt;h3&gt;
  
  
  Error Handling Done Right
&lt;/h3&gt;

&lt;p&gt;No more Python exceptions that bubble up three layers and get swallowed. Everything is &lt;code&gt;Result&amp;lt;T, E&amp;gt;&lt;/code&gt;. Errors are values. Handle them or propagate them—the compiler enforces it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;pub&lt;/span&gt; &lt;span class="k"&gt;type&lt;/span&gt; &lt;span class="nb"&gt;Result&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;std&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;result&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nb"&gt;Result&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;HeliosError&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nd"&gt;#[derive(Debug,&lt;/span&gt; &lt;span class="nd"&gt;thiserror::Error)]&lt;/span&gt;
&lt;span class="k"&gt;pub&lt;/span&gt; &lt;span class="k"&gt;enum&lt;/span&gt; &lt;span class="n"&gt;HeliosError&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nd"&gt;#[error(&lt;/span&gt;&lt;span class="s"&gt;"LLM API error: {0}"&lt;/span&gt;&lt;span class="nd"&gt;)]&lt;/span&gt;
    &lt;span class="nf"&gt;LLMError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;

    &lt;span class="nd"&gt;#[error(&lt;/span&gt;&lt;span class="s"&gt;"Configuration error: {0}"&lt;/span&gt;&lt;span class="nd"&gt;)]&lt;/span&gt;
    &lt;span class="nf"&gt;ConfigError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;

    &lt;span class="nd"&gt;#[error(&lt;/span&gt;&lt;span class="s"&gt;"Tool execution failed: {0}"&lt;/span&gt;&lt;span class="nd"&gt;)]&lt;/span&gt;
    &lt;span class="nf"&gt;ToolError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Performance Matters
&lt;/h3&gt;

&lt;p&gt;Rust's zero-cost abstractions aren't marketing. The difference in response time between a Python framework and helios-engine is noticeable, especially for local models.&lt;/p&gt;

&lt;h3&gt;
  
  
  Feature Flags Are Powerful
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[dependencies]&lt;/span&gt;
&lt;span class="py"&gt;helios-engine&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="py"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="py"&gt;features&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"local"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"rag"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Compile only what you need. Keep your binary small.&lt;/p&gt;

&lt;h2&gt;
  
  
  Should You Use It?
&lt;/h2&gt;

&lt;p&gt;If you're building LLM-powered applications and you're tired of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Being locked into one provider&lt;/li&gt;
&lt;li&gt;Python's performance and deployment overhead
&lt;/li&gt;
&lt;li&gt;Complex frameworks that do too much or too little&lt;/li&gt;
&lt;li&gt;"Local support" that doesn't actually work offline&lt;/li&gt;
&lt;li&gt;Agent systems that can't handle multiple agents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then yeah, give it a shot.&lt;/p&gt;

&lt;p&gt;If you're also learning Rust and want a real project that exercises the language's features in a practical context, helios-engine is a good codebase to study or contribute to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Crate&lt;/strong&gt;: &lt;a href="https://crates.io/crates/helios-engine" rel="noopener noreferrer"&gt;crates.io/crates/helios-engine&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs&lt;/strong&gt;: &lt;a href="https://docs.rs/helios-engine" rel="noopener noreferrer"&gt;docs.rs/helios-engine&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Source&lt;/strong&gt;: &lt;a href="https://github.com/Ammar-Alnagar/Helios-Engine" rel="noopener noreferrer"&gt;github.com/Ammar-Alnagar/Helios-Engine&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://helios-engine.vercel.app/" rel="noopener noreferrer"&gt;helios-engine&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built with Rust. No bullshit. Just agents that work.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>programming</category>
      <category>ai</category>
      <category>rag</category>
    </item>
  </channel>
</rss>
