NOMOS lets you group related steps into flows with shared context and components, making it easy to manage complex, stateful workflows.
Flows are containers that group related steps together and provide:
Each flow maintains its own context that persists across steps within the flow
Flows can have dedicated components like memory systems, specialized tools, or custom handlers
When transitioning between flows, context is intelligently summarized and passed along
Define which steps can enter or exit a flow for better control flow management
You can define flows in your YAML configuration:
Each flow can have its own memory system that:
Preserves Context
Maintains conversation history and important details within the flow
Intelligent Retrieval
Uses BM25 or other retrieval methods to find relevant information
Context Summarization
Automatically summarizes context when exiting a flow
Cross-Flow Transfer
Passes summarized context when transitioning between flows
Organized Architecture: Keep related functionality grouped together
Flows help you organize your agent’s capabilities into logical groups, making your codebase more maintainable and easier to understand.
Organized Architecture: Keep related functionality grouped together
Flows help you organize your agent’s capabilities into logical groups, making your codebase more maintainable and easier to understand.
Context Awareness: Maintain relevant information throughout related interactions
Each flow maintains its own context, ensuring that relevant information persists throughout the workflow.
Scalable Design: Easily extend your agent with new flows without affecting existing ones
Add new workflows without disrupting existing functionality.
Memory Efficiency: Each flow only maintains context relevant to its purpose
Optimize memory usage by keeping only relevant context within each flow.
Flexible Transitions: Define precise entry and exit conditions for better control flow
Control exactly when and how users can transition between different workflows.
The barista example demonstrates flow usage for order management:
This flow ensures that all order-related context (customer preferences, cart contents, order history) is maintained throughout the ordering process and properly summarized when the order is complete.
You can create sophisticated applications by combining multiple flows:
Flows automatically handle context transfer when users move between different workflows, ensuring seamless user experience while maintaining relevant information.
Each flow should handle one specific type of workflow or business logic
Define clear conditions for when users should enter each flow
Keep flow contexts focused and relevant to avoid information overload
Always provide clear exit paths from each flow