@Shiyu_Gan: What does
*prefect.core.flow.Flow.run_agent* do? It’s unclear from documentation and src code, which seems to say it runs an Agent from inside a Flow, which might be confusing since I was under the impression that Agent runs Flows, not the other way around.
@Anna_Geller: You shouldn’t start an agent from inside the flow because the agent must already exist so that it can pick up a flow run
Usually here is how it works. You start by writing your flow -
from prefect import task, Flow @task(log_stdout=True) def hello_world(): print("hello world") with Flow("hello") as flow: hw = hello_world()
You start an agent from one terminal:
prefect agent local start
Then in another terminal, you register your flow:
prefect register --project xxx -p /path/to/yourflow.py
Then you can trigger a run on the agent:
prefect run --project xxx --name yourflowname --watch
and then you should see that your agent picked up this flow run
@Kevin_Kho: Not super sure, but I don’t think that is hooked up anywhere
run_agent isn’t recommended anymore, but it basically runs the agent inline instead of in a separate process as you would with
prefect agent local start. It makes sure to include the labels that your flow would need to match.