Object detection using Roboflow's hosted inference API for vision-agents.
uv add "vision-agents[roboflow]"
# or directly
uv add vision-agents-plugins-roboflowfrom vision_agents.plugins import roboflow
from vision_agents.core import Agent
# A Roboflow processor for cloud inference and
# pre-trained models from Roboflow Universe https://universe.roboflow.com/.
processor = roboflow.RoboflowCloudDetectionProcessor(
api_key="your_api_key", # or set ROBOFLOW_API_KEY env var
api_url="https://detect.roboflow.com", # or set ROBOFLOW_API_URL env var
model_id="football-players-detection-3zvbc/20",
classes=["player"],
conf_threshold=0.5,
fps=3,
)
# You can also use a Roboflow processor with local inference and RF-DETR models.
processor = roboflow.RoboflowLocalDetectionProcessor(
model_id="rfdetr-seg-preview",
conf_threshold=0.5,
classes=["person"],
fps=3,
# You can pass a custom model as "model" parameter here.
# The model must be an instance of `rfdetr.RFDETR()` class.
# model=MyRF_DETRModel()
)
# Use in an agent
agent = Agent(
processors=[processor],
llm=your_llm,
# ... other components
)See example/roboflow_example.py for a complete working example with a video call agent that uses Roboflow detection.
model_id: Roboflow Universe model id. Example -"football-players-detection-3zvbc/20".api_key: Roboflow API key. If not provided, will useROBOFLOW_API_KEYenv variable.api_url: Roboflow API url. If not provided, will useROBOFLOW_API_URLenv variable.conf_threshold: Confidence threshold for detections (0 - 1.0). Default -0.5.fps: Frame processing rate. Default -5.classes: an optional list of class names to be detected. Example -["person", "sports ball"]Verify that the classes a supported by the given model. Default -None(all classes are detected).annotate: if True, annotate the detected objects with boxes and labels. Default -True.dim_background_factor: how much to dim the background around detected objects from 0 to 1.0. Effective only whenannotate=True. Default -0.0(no dimming).client: an optional custom instance ofinference_sdk.InferenceHTTPClient.
-
model_id: identifier of the model to be used. Available models are: "rfdetr-base", "rfdetr-large", "rfdetr-nano", "rfdetr-small", "rfdetr-medium", " rfdetr-seg-preview". Default -"rfdetr-seg-preview". -
conf_threshold: Confidence threshold for detections (0 - 1.0). Default -0.5. -
fps: Frame processing rate. Default -10. -
classes: optional list of class names to be detected. Example:["person", "sports ball"]Verify that the classes a supported by the given model. Default -None(all classes are detected). -
annotate: if True, annotate the detected objects with boxes and labels. Default - True. -
dim_background_factor: how much to dim the background around detected objects from 0 to 1.0. Effective only whenannotate=True. Default -0.0(no dimming). -
model: optional instance ofRFDETRModelto be used for detections. Use it provide a model of choosing with custom parameters.
# Run all tests
pytest plugins/roboflow/tests/ -v
# Run specific tests
pytest plugins/roboflow/tests/test_roboflow.py -vvision-agents- Core frameworknumpy>=2.0.0- Array operationsrfdetr>=1.3.0- RF-DETR models for local object detectioninference-sdk>=0.26.1- Roboflow SDK for cloud inference