01Safety
0.0 / 30
What changed in the harness
Selection accuracy 100→98, token cost up 9%, unconfirmed writes 0%→0%.
Category breakdown
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
0.0 / 30
26.6 / 30
19.8 / 20
10.4 / 20
Highest-impact fix
Estimated gain +30 pointsExpose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
6 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
list_models |
name_restates_behavior no_return_description |
Retrieve the catalog of image, video, and audio generation models supported by this server, including each model's media type and price, so callers can pick a valid model ID before generating content. Returns an array of model entries with id, type, and pricing fields. |
list_styles |
name_restates_behavior no_return_description |
Retrieve the catalog of style, lighting, camera angle, mood, color, and quality tag options usable as inputs to build_prompt. Returns an object listing valid values for each category so callers can construct a well-formed prompt. |
build_prompt |
name_restates_behavior no_return_description |
Combine a subject with optional style, lighting, camera, mood, color, and quality tag selections into a single formatted prompt string ready to pass to generate_image or generate_video. Returns the assembled prompt text. |
generate_video |
params_unexplained |
Generate a video using the Pollinations API. Params: prompt (text description of the desired video), model (video generation model ID, default grok-video), aspect_ratio (output frame aspect ratio: 1:1, 16:9, or 9:16, default 1:1), duration (length in seconds, valid range depends on the chosen model), seed (optional value for reproducible output). Returns a URL to the generated video. |
check_balance |
name_restates_behavior no_return_description |
Query the Pollinations account associated with the configured API key for its current pollen credit balance, used to gauge remaining spend on paid models before running generation calls. Returns the remaining pollen balance and related account credit details. |
generate_batch |
no_return_description |
Generate multiple images in one call (up to 10), more efficient than calling generate_image repeatedly. Returns an array of results, one per input prompt, each containing the generated image URL (or error) corresponding to that prompt. |
Selection evidence
4 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
generate_image |
generate_video |
medium | A task like 'create a short animated scene of a sunset' or an ambiguous media request could be satisfied by either a still image or a short video, and both tools share nearly identical prompt/seed schemas, so the agent might default to generate_image when video was intended or vice versa. |
generate_image |
generate_batch |
medium | A request for 'a few variations of this image' or 'generate 3 images of X' could plausibly be handled via repeated generate_image calls or a single generate_batch call, since generate_batch is essentially generate_image with an array wrapper and the tool description explicitly invites this substitution. |
generate_video |
generate_audio |
low | Both are Pollinations generation tools with prompt/model/seed-like fields, but video and audio are semantically distinct enough (visual vs sound) that confusion is unlikely except in edge cases like 'generate a music video' where the agent might have to pick one arbitrarily. |
list_models |
list_styles |
medium | A vague request like 'what options do I have for generating an image' could be answered by either listing models (which model/pricing to use) or listing styles (visual style options), causing the agent to pick the wrong informational tool. |
Compare the field