Tool KestraTask

Tool KestraTask

Certified

Expose Kestra runnable tasks as tools

Creates one tool per runnable task named kestra_task_<taskId>. Properties you set stay fixed; set a required property to ... to force the agent to supply it, and unset optionals may be filled by the agent. anyOf schemas are flattened to a single branch because many models do not support anyOf; the generated schema appears in debug logs.

yaml
type: io.kestra.plugin.ai.tool.KestraTask

Call a Kestra runnable task as a tool, letting the agent set the message property for you

yaml
id: call_a_kestra_task
namespace: company.ai

tasks:
  - id: agent
    type: io.kestra.plugin.ai.agent.AIAgent
    provider:
      type: io.kestra.plugin.ai.provider.GoogleGemini
      modelName: gemini-3.5-flash-lite
      apiKey: "{{ secret('GEMINI_API_KEY') }}"
    tools:
      - type: io.kestra.plugin.ai.tool.KestraTask
        tasks:
          - id: log
            type: io.kestra.plugin.core.log.Log
            message: "..." # This is a placeholder; the agent will fill it.
    prompt: "Log the following message: 'Hello World!'"
Installation

Our standard Docker images already include this plugin. If you use a -slim image or another setup, install it with the following command:

kestractl plugins get io.kestra.plugin:plugin-ai --compatible-for $KESTRA_VERSION

For kestractl, use your Kestra version with --compatible-for, or specify an exact plugin version.

For Kestra CLI, replace LATEST with a specific version or version range to pin the plugin version.

Properties

Kestra runnable tasks

Runnable tasks exposed to the LLM as callable tools, one tool per task, named after each task's id. No default: this property is required.