mikehostetler
Jido - A SDK for Building Autonomous Agent Systems
I’m excited to announce Jido, a framework providing foundational primitives for building autonomous agent systems in Elixir. While developing agent-based architectures, I found existing tools lacked the right abstractions for building truly autonomous systems that could evolve and adapt at runtime.
Core Architecture
Jido’s architecture is built around four core primitives that map directly to key patterns in autonomous systems:
Actions provide a composable unit of work with rich metadata, enabling agents to introspect capabilities and combine them in novel ways at runtime. Unlike traditional functions, Actions include schemas and metadata that support dynamic reasoning and composition.
Workflows extend beyond traditional sequential chains to support dynamic composition patterns. Building on Elixir’s strengths, workflows can be constructed to handle conditional paths, error recovery, and compensation seamlessly.
Agents maintain schema-validated state while planning and executing workflows. Through directives, agents can modify their own capabilities at runtime - such as enqueueing additional instructions to perform.
Sensors operate as independent processes, providing real-time environmental awareness through standardized signals. The exist to support Agents by monitoring external events.
SDK & Extension
Jido is designed as an SDK for building agent-based systems. The core framework provides the runtime primitives, while the companion jido_ai package offers integrations with LLM providers like Anthropic’s Claude through the instructor_ex package. Teams building with Jido can easily integrate any LLM into Jido via a custom Action.
Current Status
Version 1.0.0 provides production-ready implementations of all core primitives. Work is underway on enhanced Agent Server and Supervisor capabilities for 1.1. We’re actively using Jido in production and welcome feedback from teams building autonomous systems.
Resources
https://github.com/agentjido/jido
We look forward to seeing what the Elixir community builds with Jido!
Thanks!
Trending in Announcing
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #elixirconf-us
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #performance
- #security











First 10 of 52 Posts
andreaseriksson
This is great. Have been thinking I need something similar. Will try for sure.
Hermanverschooten
The above link to the
Getting Started Guidereturns a 404…mikehostetler
Thanks, fixed
jswny
This is super cool! I’ve been seeing various frameworks like this but so far they’ve all been in python.
Can you explain generally when autonomous agents are preferred to running single threaded assistants with function calling?
mikehostetler
Great question - This whole space is evolving quickly and has been a fantastic mental challenge to shed my old habits of how these apps get built - so this is my current perspective.
The “use an LLM assistant to execute a tool” trend of late benefits one party - LLM API providers. I’ve read over a LOT of repo’s, and have played with a lot of toys.
That’s why this foundational repo has ZERO LLM or AI code in it. At this foundational layer, LLM tool calling as a first class citizen didn’t feel right.
Don’t get me wrong, I wrote this to integrate with LLM’s - but the Elixir way is to build with pure data structures and minimal dependencies on OTP. That’s the purpose of this package.
As a sneak peek - here’s a Jido Action which implements a call to Anthropic Claude using
instructor_exto fetch a “Chat Completion” - aka agent chatting: https://github.com/agentjido/jido_ai/blob/main/lib/jido_ai/anthropic.ex#L6Agents as GenServers is implemented and tested. I’m not entirely happy with the API yet so I didn’t include it in this official release. They each spin up a DynamicSupervisor and can manage delegating tasks to other agents, starting and stopping Signals and doing all sorts of other cool things.
I see a future where we each have thousands of Agents working for us constantly - like a swarm of ants. No other framework or platform comes close to making this happen - so I started from first principles with Elixir.
Enjoy!
EDIT: There will be many examples coming soon to demonstrate the scope of what Agents with Jido are capable of.
Asd
Oh, name of the library is extremely close (sounds exactly the same if pronounced in English way) to antisemitic slur.
But Chinese pronunciation “Siodong” is much less similar, perhaps it would make sense to note this way of pronunciation as the official one
joelpaulkoch
Here is a blog post from Hugging Face that has a “when to use agents/when to avoid them” section: Introducing smolagents: simple agents that write actions in code.
mikehostetler
Great post - added some perspective to the Jido README:
https://github.com/agentjido/jido?tab=readme-ov-file#are-you-sure-you-need-an-agent
Joep
Here is another related post from Anthropic: Building Effective AI Agents \ Anthropic
dimitarvp
This thread is confusing to me. Reading the OP it seems this is a library that’s kind of sort like Oban – you can build pipelines of tasks, sort of like ETL systems as well.
But now the discussion got steered toward LLM agents and I apparently I misunderstood the whole thing. Anybody wants to put things in context?