Hey all so we built Asimov to serve as the foundation to Bismuth (internally named Daneel) our in terminal coding agent.
At the time there weren't really a lot of great solutions for building agents and we thought that we would be able to do something better and nicer ourselves. We really like what we landed on in terms of the simplicity of building pretty complex graphs and executing them at scale all within Python.
We went with Python to make it accessible (as others did too) and our graph's node interface is loosely based on PyTorch's nn where modules can pass output seamlessly down the chain.
In general Asimov graphs are dags which makes processing them super easy, but in the cases where back edges are needed we leave it up to the user whether or not state needs to be cleared and then perform a goto like jump to a given node, running a full execution replan in the process, skipping that node's siblings, and continuing from that point forward.
We can do this easily because our state management, which is primarily Redis backed (though a bit of an implementation detail any fast in memory cache will suffice and we do take PRs :)), is divorced from the graph execution as a separate layer.
In other words state doesn't even know there is a graph, just normals keys and values which allows things to be flexibly rewritten as graph state and execution shifts.
Anyway we have a whole bunch of goodies for this release which are:
- A robust graph execution engine that lets agents actually do things
- Multi-LLM support (Claude, OpenAI, Bedrock, Vertex)
- Full state tracking with task history, execution plans, and recovery
- Advanced features like agent-directed graph execution (let LLMs make routing decisions!) and state snapshotting for saving/restoring entire agent states
And this is production ready, it handles all the complex stuff you need for real-world agent systems - proper error handling, middleware, OpenTelemetry integration, proper retries etc.
Oh and this is fully OpenSource under the ApacheV2 License.
We hope you think this is cool and happy to answer any questions!
Hey all so we built Asimov to serve as the foundation to Bismuth (internally named Daneel) our in terminal coding agent.
At the time there weren't really a lot of great solutions for building agents and we thought that we would be able to do something better and nicer ourselves. We really like what we landed on in terms of the simplicity of building pretty complex graphs and executing them at scale all within Python.
We went with Python to make it accessible (as others did too) and our graph's node interface is loosely based on PyTorch's nn where modules can pass output seamlessly down the chain.
In general Asimov graphs are dags which makes processing them super easy, but in the cases where back edges are needed we leave it up to the user whether or not state needs to be cleared and then perform a goto like jump to a given node, running a full execution replan in the process, skipping that node's siblings, and continuing from that point forward.
We can do this easily because our state management, which is primarily Redis backed (though a bit of an implementation detail any fast in memory cache will suffice and we do take PRs :)), is divorced from the graph execution as a separate layer.
In other words state doesn't even know there is a graph, just normals keys and values which allows things to be flexibly rewritten as graph state and execution shifts.
Anyway we have a whole bunch of goodies for this release which are:
- A robust graph execution engine that lets agents actually do things
- Multi-LLM support (Claude, OpenAI, Bedrock, Vertex)
- Full state tracking with task history, execution plans, and recovery
- Advanced features like agent-directed graph execution (let LLMs make routing decisions!) and state snapshotting for saving/restoring entire agent states
And this is production ready, it handles all the complex stuff you need for real-world agent systems - proper error handling, middleware, OpenTelemetry integration, proper retries etc.
Oh and this is fully OpenSource under the ApacheV2 License.
We hope you think this is cool and happy to answer any questions!