Agentflow is a powerful yet user-friendly tool to run workflows powered by LLMs. You can:
- Write workflows in plain English in human-readable JSON files.
- Use variables for dynamic outputs that change based on user input.
- Build and execute custom functions to go beyond text generation.
Agentflow fills the gap between chat and autonomous interfaces:
- Chat (e.g. ChatGPT) can't run workflows because they're conversational.
- Autonomous (e.g. Auto-GPT) run them unreliably because they have too much freedom.
Agentflow offers a balanced solution: Workflows that LLMs follow step-by-step.
Agentflow is currently in development. To try it:
- Sign up for the OpenAI API and get an API key
- Clone or download this repository.
- Create a
.env
file from example.env and add your OpenAI API key. - Run
pip install -r requirements.txt
to install dependencies.
Now you can run flows from the command line, like this:
python -m run --flow=example
python -m run --flow=example_with_variables --variables 'market=college students' 'price_point=$50'
python -m run --flow=example -v
Copy example.json or example_with_variables.json or create a flow from scratch in this format:
{
"system_message": "An optional message that guides the model's behavior.",
"tasks": [
{
"action": "Instruct the LLM here!"
},
{
"action": "Actions can have settings, including function calls and temperature, like so:",
"settings": {
"function_call": "save_file",
"temperature": 0.5
}
},
{
"action": "..."
}
]
}
Copy save_file.py and modify it, or follow these instructions (replace "function_name" with your function name):
- Create
function_name.py
in the functions folder. - Create a class within called
FunctionName
that inherits fromBaseFunction
. - Add
get_definition()
andexecute()
in the class. See descriptions of these inBaseFunction
.
That's it! You can now use your function in function_call
as shown above. However, you should probably:
- Add tests in tests! Then you'll know if workflows are failing because of your function.
Agentflow is licensed under the MIT License.