OpenAgentFlow: Decoupling Multi-Agent Workflows
TypedDict and graph checkpointers than actually refining the agent logic. The current AI landscape is split: you either have visual tools like n8n that hit a ceiling with complex conditional looping, or code-first frameworks that bury your workflow logic under hundreds of lines of setup code. There is a desperate need for a neutral, portable way to describe a workflow that remains separate from the execution environment.
This is why I built OpenAgentFlow (.oaf). Think of it as the OpenAPI specification, but for multi-agent communication and state machines. Instead of hard-coding the flow into a specific Python framework, you define the state and the agent interactions in a human-readable .oaf file.
The productivity gain is massive. A production-ready Customer Support Triage workflow that would typically require 250+ lines of Python can be condensed into about 40 lines of specification.
workflow "Support Ticket Triage" {
config {
max_iterations: 3
timeout_seconds: 45
}
state {
ticket_text: string
user_tier: string
category: string
urgency: string
suggested_reply: string
}
agent Classifier {
instructions: """
Analyze the incoming support ticket.
Categorize into: 'Billing', 'Technical Bug', or 'Feature Request'.
Assess urgency level: 'Low', 'Medium', or 'Critical'.
"""
model: "gemini-2.0-flash"
temperature: 0.1
inputs: [ticket_text, user_tier]
outputs: [category, urgency]
}
agent Responder {
instructions: """
Draft a helpful response based on category and urgency.
If urgency is 'Critical', note that high-priority alert has been dispatched.
"""
model: "gemini-2.0-flash"
temperature: 0.6
inputs: [ticket_text, user_tier, category, urgency]
outputs: [suggested_reply]
}
flow {
start -> Classifier
Classifier -> Responder
Responder -> end
}
}By focusing on a specification-first approach, this creates a much cleaner AI workflow. You define the state, the agents, and the flow transitions, and the engine handles the heavy lifting. It removes the friction of dependency management and framework-specific plumbing, letting you focus on prompt engineering and agent orchestration.