Thread
#prefect-community
    Shiyu Gan

    Shiyu Gan

    5 months ago
    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

    Anna Geller

    5 months ago
    Prefect Cloud is your orchestration layer or orchestration API telling agents what to do, when, and how. Agents are part of your execution layer, they are polling the orchestration API for work, executing the work, and reporting the state of it to the orchestration API. I don't think it's helpful for you to dive deep into how a flow run gets deployed to an agent under the hood. The best way when you're getting started is to start writing your flows and deploy them.
    and 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 - yourflow.py:
    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

    Kevin Kho

    5 months ago
    Not super sure, but I don’t think that is hooked up anywhere
    Michael Adkins

    Michael Adkins

    5 months ago
    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.
    Shiyu Gan

    Shiyu Gan

    5 months ago
    Perhaps let's deprecate?
    Michael Adkins

    Michael Adkins

    5 months ago
    We won’t be making any more breaking changes to the 1.x versions, so we can “deprecate” it but it’ll never be removed.
    I agree an additional comment in the docstring would be nice at least 🙂