simonmesmith / agentflow

Complex LLM Workflows from Simple JSON.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Agentflow: Complex LLM Workflows from Simple JSON

Python lint and test

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.

Why Agentflow?

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.

Install and Use

Agentflow is currently in development. To try it:

  1. Sign up for the OpenAI API and get an API key
  2. Clone or download this repository.
  3. Create a .env file from example.env and add your OpenAI API key.
  4. 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

Optional Arguments

Use variables to pass variables to your flow

python -m run --flow=example_with_variables --variables 'market=college students' 'price_point=$50'

Use v (verbose) to see task completion in real-time

python -m run --flow=example -v

Create New Flows

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": "..."
        }
    ]
}

Create New Functions

Copy save_file.py and modify it, or follow these instructions (replace "function_name" with your function name):

  1. Create function_name.py in the functions folder.
  2. Create a class within called FunctionName that inherits from BaseFunction.
  3. Add get_definition() and execute() in the class. See descriptions of these in BaseFunction.

That's it! You can now use your function in function_call as shown above. However, you should probably:

  1. Add tests in tests! Then you'll know if workflows are failing because of your function.

License

Agentflow is licensed under the MIT License.

About

Complex LLM Workflows from Simple JSON.

License:MIT License


Languages

Language:Python 100.0%