plan asks a model to create a list of Task objects. Planning does not execute those tasks.
marvin.run_tasks(tasks).
Use available_agents to supply agents that can be assigned to generated tasks, and tools to supply available functions. Use explicit Python steps or task dependencies when the workflow is already known.
plan_async is the async counterpart. See the API reference for signatures.