Skip to content

Tasks

Tasks are the predefined actions that a human can execute that encapsulate a particular workflow. Harmony includes several system tasks, such as Selection: Explain, which are ready to use immediately after installation.

Calling

Tasks can be initiated from the quick actions panel, context menu, or via keyboard shortcuts.

Tools

Each task calls a tool with specific arguments.

Data

Tasks can be created or updated by entering values in the respective fields in Menu / Tasks.

Main
  • Name and description are the informative fields that are displayed in the quick actions panel.

  • Tool is the tool that is executed by the task. When called, the output of the tool will be displayed in the assistant’s chat.

  • Inherited parameters are the parameters that can be redefined by the user or the task caller. For example, the task that calls tool “execute_agent_query” may allow attaching files by allowing redefining the parameters “attachments”.

Arguments

Contains the arguments of the tool. Check the documentation of the respective tool to learn about them.

YAML

Contains the YAML representation of the arguments, which are there for convenience. Sometimes, it’s more convenient to edit the YAML directly than filling the arguments form.

Options

Contains various task configuration options.

  • URL allows running the task only on a specific webpage.

  • Provided context and Required context are used to create action chains. The guide on this is TBD.

  • Tool name is the name under which the tool is available for execution for agents and other tools. If not filled, agents can’t execute this task. Agents allow tool names to contain only characters “a-Z”, “0-9”, and ”_”.

  • Keep sidebar hidden would prevent the sidebar from showing when the task is executed via the context menu or shortcut. It’s useful when you don’t care about the task output or if it’s sent to the active input.

  • Output results to active input would send the result of the tool call to the currently focused input. It’s useful when you ask an assistant to write a message or email and want to set its text to the active input field.

  • Hide in suggestions prevents the task from appearing in the quick actions panel.

  • Edit before call would prevent the immediate execution of the task, allowing changing the task parameters before executing it.

  • Execution timeout would limit the amount of time the task has to execute. It’s sometimes helpful for debugging for cases when agents start to think indefinitely. For some complex tasks that may take a lot of time to execute, the value should be bumped.

  • Context menu path is a slash-separated path in the browser context menu to provide easy access to the task.

  • Shortcut defines a keyboard shortcut that would execute the task.

Parameters

It contains a list of parameters that allow for the task. Parameters are provided by AIs and humans when calling the task. Parameters can be used in arguments using syntax $harmony.args.parameter_name. For example, an explanation task can be created by using tool execute_agent_query with query: "Explain me the following: $harmony.args.text", and then called as text: "Think before you leap".

  • Inherit controls whether the parameter should redefine the parameter with the same name for the underlying tool. If true, then also the parameter type is inherited from the tool’s parameter.

  • Description is a description of the parameter for AIs and humans.

  • Text value is a value used for testing the task. It doesn’t affect its execution in production.

Tools

Tools is a list of tools to play with. The values here don’t affect the execution of the task and are here for testing and reference. They are useful when an AI is instructed to use some tools, and it’s needed to check how these tools would behave.

  • Tool is the tool to play with.
  • Prompt is the prompt for an agent that contains the tool name and selected arguments.
  • Tool arguments form contains the form and YAML with tool arguments.

Embedded values

Parameters

Parameters of the task can be embedded using syntax $harmony.args.parameter_name.

Records

Records stored in persistent storage can be embedded into the task arguments using syntax $harmony.records.value_name.

Secrets

Secrets stored in persistent storage can be embedded into the task arguments using syntax $harmony.secrets.secret_name. Never expose secrets to agents or places where they can be read by third parties.