FlowAgents
State-driven AI agent framework for task automation with human-in-the-loop.
Build agents that collect information, validate input, and execute tasks with optional approval.
Perfect For
- Booking & Reservations - Restaurants, flights, hotels, appointments
- Request & Approval - Leave requests, expense reports, access requests
- Form Wizards - Multi-step data collection with validation
- Business Workflows - Order processing, customer service, IT ticketing
Installation
pip install flowagents # Core
pip install flowagents[openai] # + OpenAI
pip install flowagents[anthropic] # + Claude
pip install flowagents[all] # All providers
Quick Example
import asyncio
from flowagents import flowagent, StandardAgent, InputField, AgentStatus
from flowagents import Orchestrator, OpenAIClient
@flowagent(triggers=["book", "reservation"])
class BookingAgent(StandardAgent):
guests = InputField("How many guests?")
date = InputField("What date?")
async def on_running(self, msg):
return self.make_result(
status=AgentStatus.COMPLETED,
raw_message=f"Booked for {self.guests} on {self.date}!"
)
async def main():
llm = OpenAIClient(api_key="sk-xxx", model="gpt-4o-mini")
orchestrator = Orchestrator(llm_client=llm)
await orchestrator.initialize()
result = await orchestrator.handle_message("user_1", "I want to book a table")
print(result.raw_message) # "How many guests?"
result = await orchestrator.handle_message("user_1", "4")
print(result.raw_message) # "What date?"
result = await orchestrator.handle_message("user_1", "Friday")
print(result.raw_message) # "Booked for 4 on Friday!"
asyncio.run(main())
Key Features
- State Machine -
INITIALIZING → WAITING_FOR_INPUT → RUNNING → COMPLETED - Field Collection - Declarative
InputFieldwith validation - Approval Workflow - Human confirmation before sensitive actions
- Multi-LLM - OpenAI, Claude, Azure, Gemini, Ollama, DashScope
- Orchestrator - Route messages to the right agent
- Multi-tenant - Built-in isolation for SaaS
Documentation
- Getting Started - Build your first agent
- Full Documentation - Complete guide
- Examples - Sample code
Guides: Agents | Tools | LLM Providers | Orchestrator | Workflow
Contributing
See CONTRIBUTING.md for guidelines.
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
flowagents-0.1.1.tar.gz
(191.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
flowagents-0.1.1-py3-none-any.whl
(182.5 kB
view details)
File details
Details for the file flowagents-0.1.1.tar.gz.
File metadata
- Download URL: flowagents-0.1.1.tar.gz
- Upload date:
- Size: 191.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
104496c99625e1c31bef56584ee8020388a673df8cdfacd8ffcd3048e26d942b
|
|
| MD5 |
3f669cba8268453667fd921808a62180
|
|
| BLAKE2b-256 |
7fe1f52b8aaac23bdc40cc9ccb6e386d45010ba5b4acc74cfa48e20e3b326418
|
File details
Details for the file flowagents-0.1.1-py3-none-any.whl.
File metadata
- Download URL: flowagents-0.1.1-py3-none-any.whl
- Upload date:
- Size: 182.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ad55a1ad2879462d07fe378304355aa29e5405189964957a09cd019edf4dfbe
|
|
| MD5 |
af9dc91a4b8f58a042928de05baad4a5
|
|
| BLAKE2b-256 |
998e904446ab87b910b377ad452e99340ce188da750bc42e74d02a14b4bec187
|