Nice work. Thanks for sharing it! I've been thinking about using something like this for LLM agent workflows - the outbound action pattern would work well for tool calls that need to wait on external APIs.
I'm working on DSPy.rb [1] and this could pair nicely for multi-step reasoning chains.
Curious - any plans for async gem support?
How does DSPy.rb differ from BAML?