Skip to main content
Custom agents let you plug your own HTTPS endpoints into Encord and trigger them in the Label Editor, or as part of your Workflow.

Triggering Custom Agents

The Agent is triggered:
  • In the Label Editor: On demand by the Tasker while annotating or reviewing a task. See here for more information.
  • From your Workflow: On tasks that pass through the Agent Workflow stage. Custom agents in your Workflow can be triggered automatically or manually.

Manual Trigger

If your agent should be triggered manually, open the Advanced tab in the Agent node configuration, and add decision pathways. Tasks in this Agent stage do not proceed through the Workflow unless the agent is triggered by an ad-hoc script.

Webhook Trigger Batching

You can add a webhook to an Advanced Agent stage so your service can learn when tasks are waiting without continuously polling Encord. The signed notification contains no task data; after receiving it, fetch the Agent stage queue with the SDK.
  1. In the Workflow, select the Agent stage and choose Advanced.
  2. Under Webhook, click the edit icon, enter your endpoint URL, and press Enter.
  3. Under Batching, set the Batch size and Maximum wait (minutes).
  4. Save the Workflow. You can use the generated Signing secret to verify webhook signatures.
Removing the webhook URL also removes its batching settings. Switching the Agent stage to Auto removes the webhook configuration.
Batch size and Minimum wait: Encord checks each agent stage’s queue every five minutes. At each check, it sends a notification if either threshold is met.
  • The batch size is met when the number of queued tasks reaches the set size.
  • The maximum wait is met when the oldest queued task has been waiting longer than the set limit.
The maximum wait is counted from when each task enters the queue, not on a repeating timer. Once a threshold is met, Encord notifies again at every five-minute check until your agent processes the queue. After that, the next notification depends on when new tasks arrive. For example, with a batch size of 10 and a maximum wait of 30 minutes, if 3 tasks arrive at 9:00:
Webhook SDK support for Agents documentation is available here.

Examples

Use the Encord SDK to configure your Advanced Custom Agent. The Agent executes the configured SDK script for all tasks that are routed through the Agent stage in your Workflow.
The General Example script shows how to configure a Workflow Agent with the name Agent 1 and with a pathway called continue to Review.
Agent nodes can be used in conjunction with bundles to efficiently handle bulk actions
Ensure that you:
  • Replace <private_key_path> with the path to your private key.
  • Replace <project_hash> with the hash of your Project.
  • Insert your custom logic where the comment instructs you to do so.
General Example
See our end-to-end guide for Pre-Classification using GPT 4o for more detailed information.
The Pre-Classification script uses GPT 4o mini to route images to different annotation stages depending on what it is contained in the image. The Pre-Classification script applies to the following Workflow.
Agent nodes can be used in conjunction with bundles to efficiently handle bulk actions
In the following script:
  • Replace <private_key_path> with the hash of your private key.
  • Replace <project_hash> with the hash of your Project.
  • Replace Agent 1 with the name of your Agent stage.
This guide makes the following assumptions:
  • You have a model that takes video frames as an input and provides bounding box coordinates and confidence scores as an output.
  • You have installed the encord-agents library using the following command:
The Pre-Labeling Script selects a random class from the Ontology, generates random bounding box labels, and applies random confidence scores for video frames before advancing the videos to the annotation stage (Annotate 1). Below is an example of a Workflow where the Pre-Labeling agent can be effectively utilized.
To authenticate, you must set either of following environment variables in the environment that you plan to run your agents.
  • ENCORD_SSH_KEY: Containing the raw private key file content
  • ENCORD_SSH_KEY_FILE: Containing the absolute path to the private key file
In the following script:
  • Replace <project_hash> with the hash of your Project.
  • Replace the mock model with your own model, and adapt the rest of the script according to your needs.
  • If you choose to give your python file a different name, ensure you replace all references to prelabel_video.py with your new file name.
prelabel_video.py

End-to-End Agent Examples

We provide end-to-end examples of custom agent implementation using Jupyter Notebooks here.