Enable visual input, choose a vision model, and play a filler while the voice AI agent analyzes the caller's camera.
visionvideo
The claim
The bundled schema documents enable_vision as “Enables visual input processing for the AI Agent. When set to true, the AI Agent will be able to utilize visual processing capabilities, while leveraging the get_visual_input function”. Its default is false. vision_model names the model. The schema says “Allowed values are gpt-4o-mini, gpt-4.1-mini, and gpt-4.1-nano”, and its type also admits any other string. You do not define get_visual_input. The schema lists it among the internal fillers, not among the functions you register, and not among the native functions you can switch on. What you can give it is a filler, a phrase filed under its name.
How it works
class EyesAgent(AgentBase):
def __init__(self):
super().__init__(name="eyes", route="/eyes")
self.prompt_add_section("Role", "You are the workshop desk at Ridgeline Cycles, on a video call. ...")
self.set_params({"enable_vision": True, "vision_model": VISION_MODEL})
self.set_internal_fillers({"get_visual_input": {"en-US": LOOKING}})
What the platform receives, inside the ai verb:
"params": {"enable_vision": true, "vision_model": "gpt-4o-mini"},
"SWAIG": {"internal_fillers": {"get_visual_input": {"en-US": ["Let me take a look.",
"One moment while I look at that."]}}}
The prompt tells the agent to look before it answers and to describe what it sees. The SDK warns at registration if you name a filler the schema does not know, which is the check that keeps get_visual_input spelt right.
Limitations
You prove the document and the schema. When the agent looks, what the model sees, and how it describes it are the platform’s side of a live video call.
The schema names three models and admits any string; which one to use is a quality and cost decision this recipe does not make for you.
What to change first
Change VISION_MODEL in .env to gpt-4.1-mini and run the agent. The document renders with that model in ai.params, because the environment is where the name comes from. The verifier sets gpt-4.1-nano for the same reason, and fails if the app ignores the variable.