Skip to main content
Glama

track_start

Start following a subject, closing the loop on the picture.

Instructions

Start following a subject, closing the loop on the picture.

While this runs the server keeps capturing frames and moving the camera to hold the subject near the centre of the frame: detect, measure the offset, take a bounded step, look again. It decides only from the picture, because this class of camera's position report cannot be trusted -- and it reports the residual offset every iteration, so a loop that is losing the subject looks like one instead of seeming to work.

It looks at whatever the camera sees for as long as it runs, which may be a room with people in it. Start it when the user wants the camera following something, and stop it when they do not. It also stops by itself: when the subject is lost for a while, when it settles inside the dead zone, or after max_seconds.

gain is degrees of camera movement per pixel of offset -- a starting point, not a measurement. invert flips the direction, which is what a differently mounted camera needs: if the camera drives away from the subject, the sign is wrong for this mount, so read track_status and start again with invert true. Movement is capped at 25 degrees per iteration, so a badly wrong gain converges slowly rather than throwing the camera across its range.

Input Schema

NameRequiredDescriptionDefault
gainNo
invertNo
targetNoface
max_secondsNo
dead_zone_pxNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.2.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so richly: it discloses the closed-loop iteration, that it decides only from the picture because the camera's position report is untrusted, that it emits a residual offset each iteration, that a losing loop is visible rather than silent, and that it continuously observes the room and any people in it. Termination conditions (subject lost, dead-zone settle, max_seconds) and the 25-degree-per-iteration cap are also spelled out.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence and the subsequent paragraphs each cover a distinct concern: loop behavior, privacy/observation scope, termination, and parameter tuning. Some phrasing is decorative ('closing the loop on the picture', 'looks like one instead of seeming to work'), which costs a little density but does not bury the actionable content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter mutation-style tool with no annotations and no output schema, the definition covers the behavior, consent/privacy implication, stopping conditions, and the two tuning knobs that most often go wrong. The gap is the undocumented target parameter and the units/meaning of dead_zone_px, which an agent would have to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does well for gain ('degrees of camera movement per pixel of offset', a starting point not a measurement) and invert (direction flip for differently mounted cameras, with a diagnostic for detecting a wrong sign). It partially covers max_seconds and dead_zone (settle condition), but says nothing about target or its accepted values, leaving one parameter undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening 'Start following a subject, closing the loop on the picture' gives a specific verb (start) and resource (a subject-tracking loop), which clearly separates it from track_stop and track_status. The follow-up paragraph confirms it is an iterative detect-measure-step loop rather than a one-shot move like aim or nudge.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states directly when to use it ('Start it when the user wants the camera following something') and when to stop ('and stop it when they do not'), plus the self-termination cases. It also routes the agent to read track_status and restart with invert when the direction is wrong, though it never contrasts outright with other movement siblings such as aim or recentre.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.