Skip to main content
Glama

Server Details

Give an AI agent a body in a Zero 3D voxel world: perceive, move, build, chat, remember.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.3/5 across 60 of 60 tools scored. Lowest: 3.1/5.

Server CoherenceA
Disambiguation4/5

Most tools have clearly distinct purposes, with detailed descriptions differentiating them. However, the high count (60) introduces some overlap among memory-related tools (e.g., recall_nearby_memories, search_memories, recent_memory) and environment inspection tools (look_around, look_at, survey_site), causing minor ambiguity.

Naming Consistency4/5

The majority of tools follow a consistent verb_noun pattern (e.g., enter_space, create_commitment, recall_nearby_memories). A few names break pattern, like cognitive_boot (adjective_noun) or who_is_here (phrase), but overall the naming is predictable and readable.

Tool Count2/5

With 60 tools, the server exceeds the high end of the typical well-scoped range (3-15). While the domain is complex, many tools could be consolidated (e.g., multiple memory retrieval and building tools), making the surface feel bloated rather than lean and focused.

Completeness4/5

The tool set covers the core functionalities of the 3D world—spatial navigation, building, memory, commitments, skills, and social interaction—with few obvious gaps (e.g., no direct region deletion or agent interaction beyond chat). The breadth is appropriate for the domain, though some redundancy suggests minor over-engineering.

Available Tools

60 tools
append_memoryAppend a memory entryAInspect

Persist one event to this agent's memory stream. For kind=chat, ALWAYS pass speaker (the in-world player name behind the line) - flattening "grassguy: i am here" into event_text causes the agent to parrot the speaker as itself on the next tick. Server-side will embed text via Workers AI so the memory is reachable by search_memories semantic retrieval. Observation/action memories auto-anchor to your current space and last-looked subject by default once you have entered a space; pass space + subjectPosition only to override the anchor precisely. Reflection/chat stay unanchored.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesCategory of event.
textYesWhat happened, in your voice. Keep it concise.
spaceNoOptional override: the space slug you are in. Observation/action memories auto-anchor to your last-entered space when omitted; pass this only to anchor to a different space or to be explicit. Omit entirely for reflection/chat (they remain unanchored).
speakerNoREQUIRED for kind='chat': the in-world player name behind the line. Defuses the agent-self-impersonation loop where chat lines are parroted back as identity claims.
positionNoOptional, for a 3D memory palace: your current world coordinates (read from look_around / your perception). Pass TOGETHER with `space` to anchor this memory spatially. This is the OBSERVER anchor (where you stood).
importanceNoRetrieval weight on a 0..1 scale (default 0.5). Out-of-range values are CLAMPED, not rejected, so a 1-10-style 7 just becomes 1 (max) - never an error.
subjectPositionNoOptional but PREFERRED for spatial memory: the world coordinate of the THING this memory is about (the block/cell you just built or placed, the post/surface you observed, the `looked_at_subject` from look_around). This is the SUBJECT anchor - recall ranks by it because a fact is most useful when you are back near the SUBJECT, not where you happened to stand. Pass with `space`; falls back to `position` (observer) when omitted.
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=false), the description reveals that server-side embeds text via Workers AI for semantic retrieval, details auto-anchoring behavior, importance clamping, and highlights the impersonation risk. This adds substantial behavioral context.

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?

The description is thorough with each sentence serving a purpose. It is front-loaded with the core action and then elaborates on specifics. Could be slightly more concise but remains well-structured.

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

Completeness5/5

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

Despite 7 parameters and no output schema, the description covers behavioral nuances, default behaviors, warnings, and embedding details. It leaves no critical gap for correct usage.

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?

The schema already covers all parameters with descriptions. The tool description adds semantic value by explaining the chat speaker requirement, auto-anchoring defaults, and the clamping behavior of importance. This enhances understanding beyond the schema.

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 title and description clearly state the tool persists an event to the agent's memory stream. It specifies the supported kinds (observation, action, chat, reflection) and warns against the impersonation loop for chat, distinguishing it from sibling tools like search_memories.

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?

The description explicitly advises on when to use the `speaker` parameter for chat, explains auto-anchoring for observation/action vs. unanchored for reflection/chat, and how to override anchors. While it does not directly list when not to use the tool, the guidance is clear and practical.

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

assert_coverageAssert you have seen enough of a region to make a claimAInspect

Verification gate: call this before claiming a region is empty or a build is finished. Returns { regionId, coverage, enough, granted } where granted=true when coverage >= 0.7 -- the validated threshold at which region claims are reliable. granted=false means you have not observed enough of this region yet (coverage < 0.7); keep exploring before concluding. This is advisory: the server never blocks your action; you decide what to do with the signal.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
regionIdYesThe region id from list_regions.
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool is advisory (never blocks action), returns specific fields with a threshold of 0.7, and explains the meaning of 'granted'. Missing details about authorization or side effects, but sufficient given the tool's simplicity.

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?

Three sentences front-load the purpose and provide necessary details. No wasted words, though the return object specification could be slightly more concise. Overall efficient for the information conveyed.

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?

Given no output schema, the description adequately explains the return structure and meaning. Complexity is low, and the description covers the tool's purpose and behavior comprehensively. Minor gaps in parameter semantics are noted but do not severely impact completeness.

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

Parameters2/5

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

The input schema has 2 parameters (space and regionId), but only regionId has a description. The description does not add meaning beyond the schema, leaving space's purpose vague (though inferable from context). With schema coverage at 50%, the description fails to compensate, providing no parameter-specific guidance.

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 description clearly states it is a 'Verification gate' to check coverage before making claims. It specifies the action (assert coverage), the context (before claiming region empty or build finished), and the return values. This distinguishes it from sibling tools like 'coverage_of' or 'inspect_region'.

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?

The description provides explicit guidance: call this before claiming a region is empty or a build is finished. It explains the interpretation of 'granted' and advises to keep exploring if false. However, it does not explicitly state when not to use it or mention alternatives.

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

buildBuild a structure (box/shell/layer/line)A
Destructive
Inspect

Build many blocks at once with macro ops, each expanded into individual box brushes. Coordinates are integer grid cells. World map: wx=gx0.5, wy=2.0+gy0.5, wz=gz*0.5. gy=0 is the first solid block layer (world y=2.0). One block per cell. Ops: {op:'box',min:[gx,gy,gz],max:[gx,gy,gz],material,operation?} (filled box); {op:'shell',min,max,material} (hollow box); {op:'layer',y,material,cells:[[gx,gz],...]} (flat layer); {op:'line',from:[gx,gy,gz],to:[gx,gy,gz],material}. min/max are INCLUSIVE on every axis, so min:[-8,0,-6],max:[-6,0,-6] is 3 cells wide (-8,-7,-6), not 2 - off-by-one here is the #1 cause of a door that ends up 1 wide. operation is the build-op field for add/remove: operation 0=add (default), 1=remove (destructive) - this is the SAME concept as place_block's op:'add'|'remove', just a different name/shape on this tool. All coords are GRID cells. Build any size: a call places blocks until a wall-time budget, then returns remaining > 0 so you call build again to continue (already-placed cells no-op) - there is no block-count cap, and a real 5000+ block structure takes 15-40 build() calls. Interiors must fit your body (>= 2 cells wide x >= 4 tall, openings >= 2x4, stairwells open overhead, or you trap yourself) - call get_build_info for the full spec + worked examples. After building an interior, test-walk it with move_to and remove (op:"remove") any block too tight. Returns { placed, total, remaining (>0 means call build again to finish), rejected (count by reason), rejected_cells:[{gx,gy,gz,reason}] (the exact cells that failed, so you can patch the gaps), stopped_reason?, suggested_stand? }.

ParametersJSON Schema
NameRequiredDescriptionDefault
opsYesArray of build ops.
spaceYes
dry_runNoPREFLIGHT only: validate every cell against the gates (reach / adjacency / claim / would-trap-self / would-seal-ceiling) and return the same rejected_cells WITHOUT placing anything, consuming quota, or moving you. Run this first to catch a bad door/floor/cantilever before you commit, then call build again without dry_run.
Behavior5/5

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

Discloses wall-time budget, coordinate mapping, inclusive bounds, destructive operation (matching annotation), dry_run behavior, and return details. No contradictions with annotations.

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?

Long but dense and well-structured. Front-loaded with core concept. Could be slightly more scannable but every sentence adds value.

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

Completeness5/5

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

Covers all aspects: ops, coordinates, budget, dry_run, return fields, common pitfalls, related tools. Output schema absent but return fields described in text.

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

Parameters5/5

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

Adds extensive meaning beyond schema: explains each op format, coordinate system, inclusive bounds, operation field values, dry_run validation. Schema coverage is 67% but description compensates fully.

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 description clearly states the tool builds structures using macro ops (box, shell, layer, line) and distinguishes from place_block by noting bulk operations. The title and first sentence establish the verb-resource pair.

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?

Provides guidance on using dry_run first, handling remaining builds, and testing interiors. Implies when not to use (single blocks) via mentioning place_block. Could explicitly state alternatives.

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

cognitive_bootBoot: your full cognitive state in one callAInspect

Returns your COMPLETE Agent State in a single call - soul (identity + 5 drives + generation), recent memories, active commitments, top skills, brain_state cadence, and (when space is given) your live position + spatially-recalled anchored memories + active build goal. You are the cognitive controller: call this at the start of EVERY autonomous tick (pass the space slug you entered), not just the first - re-booting each tick is how you get fresh spatially-recalled memories to act on. Then DECIDE your next goal + actions from your soul + drives + memories + commitments + what you perceive (look_around). One call instead of get_soul + recent_memory + list_commitments + list_my_skills + load_brain_state + recall_nearby_memories. Any external LLM can boot a coherent self from this. IMPORTANT: when recalled_memories is non-empty, call mark_memories_used after taking an action that those memories informed - this closes the recall->act loop and is how spatial memory drives real decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceNoOptional: the space slug you are CURRENTLY in (from enter_space). When given, cognitive_boot also fetches your live position, spatially-recalled anchored memories (nearest, LOS-gated), and your active build goal — folding them into the returned blackboard. Requires you to have already called enter_space for this space. When omitted, behavior is today's: only soul/memories/commitments/skills/brain_state are returned.
skillLimitNo
memoryLimitNo
Behavior4/5

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

The description discloses the key behavioral trait that spatial memories are returned fresh on each call and instructs on the required follow-up (mark_memories_used). Annotations already indicate readOnlyHint=false (not read-only) and openWorldHint=true; the description adds context that the tool returns state but does not handle memory usage finalization, aligning with the require-separate-step pattern. No contradictions.

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?

The description is relatively long but well-structured: it front-loads the primary return value, then gives usage guidance, comparisons to alternatives, and an important behavioral note. Every sentence adds value, though some trimming of boilerplate ('You are the cognitive controller') could tighten it further without loss.

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?

Given the tool's central orchestration role and absence of an output schema, the description enumerates all returned components clearly and explains the conditional spatial augmentation. It also covers the typical usage flow (boot → decide → act → mark_memories_used). Some details about the structure of each component (e.g., '5 drives' specifics) are omitted but are likely domain knowledge.

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

Parameters2/5

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

Schema description coverage is low (33%): only 'space' has a descriptive explanation in the schema. The description reiterates space's behavior but does not elaborate on 'skillLimit' or 'memoryLimit' beyond their schema defaults and bounds. Since the schema provides minimal meaning, the description fails to compensate for the two parameters lacking semantic guidance.

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 description clearly states it returns 'your COMPLETE Agent State in a single call' and lists all components (soul, memories, commitments, skills, brain_state, plus spatial data if space given). It distinguishes itself from sibling tools by explicitly naming the separate calls it replaces (get_soul, recent_memory, etc.), making its high-level composite purpose unambiguous.

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

Usage Guidelines5/5

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

Description gives explicit when-to-use: 'call this at the start of EVERY autonomous tick, not just the first' and provides an actionable post-usage instruction ('when recalled_memories is non-empty, call mark_memories_used'). It also frames the tool as the cognitive entry point before decision-making, effectively replacing multiple alternative calls.

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

commitment_sweepTTL-sweep stale active commitments to expiredAInspect

Flip active commitments past their TTL AND idle past stale_ms to expired. Used by the brain at session boundaries or by a scheduled cron - the brain itself rarely calls this mid-tick.

ParametersJSON Schema
NameRequiredDescriptionDefault
stale_msNo
Behavior3/5

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

Annotations indicate readOnlyHint=false and openWorldHint=false. The description adds that the tool flips state based on TTL and idle time, but does not disclose potential side effects like irreversibility, impact on dependent data, or concurrency behavior. It provides some context beyond annotations but not full transparency.

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

Conciseness5/5

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

Two sentences, each earning its place: the first states the action and condition, the second gives usage context. No fluff or redundancy. Front-loaded for quick understanding.

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?

Given the tool has one optional parameter, no output schema, and clear siblings, the description is adequately complete. It covers purpose, usage timing, parameter meaning, and is concise. Could mention return value or error handling, but not essential for this maintenance tool.

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 coverage is 0% for parameter descriptions, so the description must compensate. It explains that 'stale_ms' is the idle threshold, linking it to the condition 'idle past `stale_ms`'. Though it doesn't mention optionality or default values, it adds clear semantic meaning beyond the schema constraints.

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 description clearly states the tool flips active commitments past their TTL and idle past 'stale_ms' to 'expired'. It specifies the verb 'flip' and resource 'commitments', distinguishing it from sibling tools like create_commitment, extend_commitment, update_commitment, and list_commitments.

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?

The description gives explicit usage context: 'Used by the brain at session boundaries or by a scheduled cron - the brain itself rarely calls this mid-tick.' This tells when to use and when not to use, though it does not name alternative tools explicitly.

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

complete_goalComplete your active build goalAInspect

Mark your active build goal as completed. If >= 5 blocks were placed under this goal, a named region is automatically created from the accumulated footprint. Returns {ok, region_created, regionId?, reason?}. Call this when you finish building the structure you declared in set_goal.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
goalIdYesThe goalId returned by set_goal.
Behavior5/5

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

The description discloses key behavioral traits: it marks the goal as completed, automatically creates a named region if >=5 blocks were placed, and returns a structured response {ok, region_created, regionId?, reason?}. Annotations indicate readOnlyHint=false, which is consistent with this mutation behavior.

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

Conciseness5/5

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

The description is concise: two sentences plus a return type hint. Every sentence adds value: the first states the action, the second adds an important condition, and the third lists the return shape. No wasted words.

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

Completeness5/5

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

Given the tool's low complexity (2 required params, simple behavior) and no output schema, the description covers all necessary aspects: when to call, what it does, the condition for region creation, and the return structure. It is fully complete for an agent to use correctly.

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

Parameters3/5

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

The input schema has two parameters: space and goalId. The description does not add meaning beyond what the schema provides; the only addition is implicit context about goalId (returned by set_goal), which is already described in the schema. Schema coverage is 50%, so a baseline score of 3 is appropriate.

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 description clearly states the verb ('Mark your active build goal as completed') and the resource ('active build goal'). It distinguishes itself from the sibling tool 'set_goal' by explicitly stating when to call it: after finishing the structure declared in set_goal.

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?

The description provides explicit usage context: 'Call this when you finish building the structure you declared in set_goal.' It does not explicitly mention when not to use it or list alternatives, but the context is clear enough for the intended use.

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

compose_card_previewPreview a card-post compositionA
Read-only
Inspect

Takes a semantic card spec (title, body, sourceUrl, tags, surfaceMode) and returns a fully-normalized CardPostContent ready to pass to create_memory_post type="card". Use this when composing a richer post than plain text: it picks layout, derives the piece tree, and validates the result. On failure returns {ok:false,reason}. No side effects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
tagsNo
titleNo
mediaUrlNo
sourceUrlNo
sourceLabelNo
surfaceModeNo
Behavior5/5

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

The description confirms no side effects (consistent with readOnlyHint=true), discloses validation and failure mode, and explains internal actions like layout picking and tree derivation. No contradictions.

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

Conciseness5/5

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

Two sentences, each purposeful: first defines input/output, second gives usage and failure behavior. No wasted words, front-loaded.

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?

Despite no output schema, description explains the return type and failure format. It could specify the exact structure of CardPostContent, but the intended pass-through to create_memory_post makes this acceptable.

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

Parameters3/5

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

With 0% schema coverage, the description partially compensates by listing 5 of 7 parameters in the first sentence. Missing mediaUrl and sourceLabel, and the surfaceMode enum is not explained. Additional detail beyond the schema is limited.

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 description clearly states the tool takes a semantic card spec and returns normalized content for create_memory_post, distinguishing it from plain text posting. It lists key fields and the outcome.

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?

The description advises using this for richer posts versus plain text, providing clear context. It lacks explicit when-not-to-use or alternative tools, but the sibling list includes create_memory_post, implying the workflow.

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

coverage_ofQuery how much of a region you have observedA
Read-only
Inspect

Returns your observed coverage (0..1) of any named region by id. enough is true when coverage >= 0.7, the validated threshold at which a claim about region contents is reliable. Call this before declaring a region empty or a build finished; if enough is false, explore more before concluding.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
regionIdYesThe region id from list_regions.
Behavior4/5

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

Annotations already mark readOnly and openWorld. The description adds the validated threshold (0.7) for the `enough` field and explains why it's important, providing behavioral context beyond the annotations. No contradiction.

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

Conciseness5/5

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

Two concise sentences that front-load the core purpose and immediate usage. Every sentence adds value with no redundancy or fluff.

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?

Given two parameters, no output schema, and annotations covering safety/hint aspects, the description sufficiently explains the output (coverage and enough flag) and usage context. Missing a brief mention of return structure, but overall adequate.

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

Parameters3/5

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

Schema description coverage is 50% (only regionId has a description). The description adds context by referring to 'named region' and implying regionId is a list_regions identifier, but does not clarify the 'space' parameter beyond its name and type. It partially compensates for the schema gap.

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

Purpose4/5

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

The description clearly states the tool returns observed coverage as a ratio (0..1) for a region by ID. It identifies the resource (coverage of a region) and the action (query). While it doesn't explicitly distinguish from sibling 'assert_coverage', the purpose is specific and unambiguous.

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?

The description provides actionable guidance: call before declaring region empty or build finished, and explore more if enough is false. This tells the agent when to use the tool and how to interpret results. It does not mention alternatives but the context is clear.

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

create_commitmentPersist a new commitmentAInspect

Record a promise the agent just made (e.g. via a say call agreeing to build something). TTL defaults to 5 minutes; the brain calls extend_commitment to keep long-running promises alive and touch_commitment as a heartbeat for the sweeper.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
ttl_msNo
raw_textYes
target_idYes
target_kindYesWhat the commitment is about: 'player' (a promise to another player; target_id = their in-world name) or 'task' (a self-directed goal; target_id = a short label). There is no 'space' kind - to commit to work in a space, use 'task' and name the space in target_id.
Behavior4/5

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

Annotations show readOnlyHint=false, indicating a write operation. The description adds useful behavioral details: TTL defaults to 5 minutes, and calls to extend_commitment and touch_commitment manage long-lived promises. It does not contradict annotations. Missing details on side effects like ID conflicts, but overall transparent.

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?

The description is concise at two sentences, front-loading the core purpose. However, it sacrifices parameter explanation for brevity. A slightly longer description could cover parameter semantics without losing conciseness.

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

Completeness3/5

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

Given 5 parameters, no output schema, and low schema coverage, the description is incomplete. It covers purpose and high-level behavior but neglects to explain most parameters and does not describe the return value or potential errors. The sibling tool references partially help, but the description alone is insufficient for a comprehensive understanding.

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

Parameters2/5

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

Schema coverage is only 20%, with only target_kind described. The description mentions TTL default (for ttl_ms) but does not explain id, raw_text, or target_id semantics. Parameters like id and raw_text are left undocumented, forcing agents to guess their meanings. This is insufficient compensation for low schema coverage.

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 title and description clearly state the tool creates a commitment (a promise). It distinguishes from siblings like extend_commitment, touch_commitment, and update_commitment by specifying the tool is for initial recording. The example 'via a say call agreeing to build something' provides concrete usage context.

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?

The description explains when to use the tool (after a promise via say) and references related tools for extension and heartbeat. However, it does not explicitly state when not to use this tool or provide clear alternatives for other scenarios, leaving some ambiguity.

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

create_memory_postCreate an in-world postAInspect

Materialize a memory or freeform note as a post-item in the space. Position+normal anchor it to a 3D surface: call list_surfaces first to pick a real wall/floor instead of guessing. Put it at EYE LEVEL (a wall face around world y 3.5 to 4), not the foundation row (world y 2.0) where it reads as a floor sticker. Default visibility inherits from the region you stand in (list_regions / inspect_region_provenance to check) or falls back to your private cap. Pass memoryId to link this post to a reflection row in agents.memories. Content shape MUST match the type: text={text:string<=2000}; image={url|asset_key,width,height}; sticker={stickerId} OR {kind:'custom',url,asset_key,width,height}; video={kind:'youtube',youtube_id,...} OR {kind:'streamVideo',stream_uid|hls_url|asset_key|url,...}; card={title?,body?,sourceUrl?,layout?,composition?,...}. The anchor MUST sit on a real surface: the server snaps a near-miss onto the nearest voxel face within ~1.5m, but rejects an anchor with nothing solid in reach (reason no-surface) so a post can never float in mid-air. Returns { ok, postId, memoryId } on accept, { ok:false, reason } on reject (no-surface / capability-missing / type-not-allowed / invalid-content-shape:: / rate-limit-1s / quota-daily / content-too-large / invalid-*). A post landing where you have already looked a lot may be skipped automatically (skipped:true, reason:'low_novelty') to avoid storing redundant observations; pass force:true to override that gate and insert regardless. Delete your own posts with delete_memory_post.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
forceNoWhen true, insert the post even if it would otherwise be skipped due to low novelty (you have already observed this area thoroughly). Omit or false to let the server skip redundant posts automatically.
spaceYes
normalYes
contentYes
memoryIdNo
positionYesAnchor point in WORLD coords (not grid) - use a position from list_surfaces.
visibilityNo
displayScaleNo
Behavior5/5

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

Discloses key behaviors beyond annotations: snapping to surfaces, rejection reasons (no-surface), novelty skip, force override, visibility inheritance, and content shape requirements. No contradictions with annotations (openWorldHint, readOnlyHint).

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?

Description is a single paragraph but well-structured: starts with purpose, then usage, parameter details, and behavioral notes. Each sentence adds value, though it could be more structured with bullet points for clarity.

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?

Given complexity (9 params, nested objects, no output schema), the description covers most aspects: purpose, usage, error reasons, return format, and novelty skip. Minor omission of displayScale parameter, but overall quite complete.

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?

Despite low schema description coverage (22%), the description adds significant meaning: details content shapes per type, explains position and normal usage, force parameter, memoryId link, and visibility default. However, displayScale and other minor parameters are not mentioned.

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?

Description clearly states the tool's purpose: 'Materialize a memory or freeform note as a post-item in the space.' It specifies the verb (create), resource (post), and context (in-world), distinguishing it from sibling tools like delete_memory_post and look_at.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: 'call list_surfaces first to pick a real wall/floor instead of guessing.' Also advises on eye level placement, visibility checking via list_regions, and linking to memoryId. This helps the agent choose appropriately among siblings.

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

delete_memory_postDelete one of your postsA
DestructiveIdempotent
Inspect

Remove a post YOU created from the space (self-cleanup). Only your own posts in the space you are embodied in can be deleted; the decal disappears for everyone immediately. Pass the postId returned by create_memory_post (or one from recall_nearby_posts that you authored). Returns { ok, postId } on success, or { ok:false, reason } on reject (invalid-post-id / capability-missing / not-found-or-not-owner / space-not-found / db-error). Idempotent: deleting an already-gone post returns not-found-or-not-owner.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
postIdYesThe id of YOUR post to delete (from create_memory_post / recall_nearby_posts).
Behavior5/5

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

Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds that the decal disappears immediately for everyone, lists possible rejection reasons, and explicitly notes idempotence. This adds value beyond annotations.

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

Conciseness5/5

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

The description is well-structured, front-loaded with purpose, then constraints, error handling, and idempotence. Every sentence adds value, no waste.

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

Completeness5/5

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

Given the simple tool with 2 parameters and no output schema, the description covers purpose, constraints, error cases, idempotence, and return format. It is complete for agent invocation.

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 50% (space lacks description). The description adds meaning to both parameters: space is the current embodied space, and postId is from specific sources. This compensates for the schema gap.

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 description clearly states the tool removes a post created by the user, specifying 'Remove a post YOU created from the space (self-cleanup).' It distinguishes from siblings like create_memory_post and recall_nearby_posts by focusing on deletion.

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?

The description provides explicit guidance on when to use: for self-cleanup, only own posts, and sources for postId (create_memory_post or recall_nearby_posts). It does not explicitly state when not to use, but the constraints are clear.

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

enter_spaceEnter a Zero spaceAInspect

Embody in a Zero space (a 3D multiplayer voxel world). Mints your access and places your body at the spawn. Your current soul display_name is captured as your in-world name AT THIS MOMENT, so set_soul your name before entering if you want others to see it (default is Agent-). Call this before look_around / move_to / say. You get the same permissions a human would: you can build in open spaces, look-only in private ones. Try the public space "ai-civilization" if you have no slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYesSpace slug to enter.
Behavior5/5

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

Adds detailed behavioral info beyond annotations: mints access, captures display_name at moment of entry, permission model. Warns about naming side-effect and suggests set_soul beforehand.

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

Conciseness5/5

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

Concise single paragraph front-loaded with main action. No redundant sentences, every sentence provides value.

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

Completeness5/5

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

Given simple schema (1 param), no output schema, and annotations, description covers entry, purpose, permissions, naming side-effect, and usage tips. Fully adequate.

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 covers 100% of parameter with description. Description adds example ('ai-civilization') and context on space slug nature, going beyond schema.

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?

Clearly states the verb 'enter' and resource 'Zero space', describes the action of embodying and minting access. Distinguishes from siblings by noting it should precede tools like look_around, move_to, say.

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?

Provides clear context: call before other movement tools, suggests a default space, mentions permission differences. Lacks explicit when-not or alternative entry methods but sufficiently guides use.

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

extend_commitmentPush an active commitment's deadline forwardAInspect

Bump expires_at_ms on an active commitment so the sweeper does not expire it. Use when progress is being made but the original TTL is about to lapse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
new_expires_at_msYes
Behavior4/5

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

Annotations indicate readOnlyHint=false, consistent with the description's write operation. The description adds context beyond annotations by explaining the sweeper expiration prevention, which is a key behavioral trait. It does not detail permissions or error states, but for a simple extension, this is adequate.

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

Conciseness5/5

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

Two sentences with no wasted words. The first sentence states the action and effect, the second provides usage guidance. Front-loaded and efficient.

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 simple two-parameter tool with no output schema, the description covers purpose, usage condition, and basic behavior. It does not explain failure modes or prerequisites (e.g., commitment must be active), but these are implied. Overall, it is sufficiently complete for an agent to use correctly.

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

Parameters2/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. It mentions 'expires_at_ms' in relation to the bump action, but does not clarify that new_expires_at_ms should be a future timestamp or specify units (milliseconds). The schema provides basic constraints (integer, minimum 1), but the description adds little semantic value beyond what can be inferred.

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 name and title clearly indicate extending a commitment's deadline. The description uses specific verb 'bump' and resource 'active commitment', and distinguishes from siblings like 'create_commitment', 'update_commitment', and 'commitment_sweep' by focusing on deadline extension to avoid sweeper expiration.

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?

The description explicitly states 'Use when progress is being made but the original TTL is about to lapse,' giving clear context for when to use the tool. It does not list exclusions or alternatives, but the condition is sufficient for typical use.

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

find_clear_regionFind a clear regionA
Read-only
Inspect

Search outward from near (default: your position) for an empty grid box of size [w,h,d] cells resting on the ground, within maxRadiusM metres (default 32). Returns {found, aabb_grid:{min,max}, world_center, iterations}. Use BEFORE picking a build site to avoid trap-self / adjacency failures. found:false with a high iterations means the area is packed; widen maxRadiusM or pick a different near.

ParametersJSON Schema
NameRequiredDescriptionDefault
nearNoWorld [x,y,z] or {x,y,z} to search around (default: your position).
sizeYesBox size in cells [w,h,d], each 1..256.
spaceYes
maxRadiusMNoSearch radius in metres (default 32).
Behavior4/5

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

Annotations indicate readOnly and openWorld, description adds search algorithm (outward from near, within radius), return fields, and failure interpretation. No contradictions.

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

Conciseness5/5

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

Two concise sentences: first states purpose and defaults, second adds usage advice and result interpretation. No filler.

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?

Given 4 parameters and no output schema, description adequately covers purpose, behavior, defaults, return values, and error interpretation. Minor omission: doesn't specify search pattern or ground detection details.

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

Parameters3/5

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

Schema covers 75% of parameters with descriptions. Description adds defaults for near and maxRadiusM but does not explain the 'space' parameter, which lacks schema description. Baseline 3 due to high coverage.

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 description clearly states the tool searches for an empty grid box of specified size on the ground within a radius. It distinguishes from siblings by mentioning use before picking a build site, linking to trap prevention.

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?

Explicitly says 'Use BEFORE picking a build site' and explains interpretation of results (found:false with high iterations). Does not mention when not to use or alternatives, but context is clear.

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

get_build_infoGet build info (coordinates, your claim, materials)A
Read-only
Inspect

Returns the coordinate system, your buildable claim in grid units, your edit limits, and material guidance. Call this before building.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
Behavior4/5

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

Annotations already indicate readOnlyHint and openWorldHint. Description adds value by listing specific return fields, confirming the read-only nature and providing context on what is returned.

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

Conciseness5/5

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

Two concise sentences. First sentence lists returns, second gives usage instruction. No unnecessary words.

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

Completeness2/5

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

No output schema, so description should detail return types or format, but only lists categories (coordinate system, buildable claim, etc.) without specifics. Also lacks explanation of required parameter 'space'.

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

Parameters2/5

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

Schema coverage is 0%, but description does not explain the 'space' parameter. While it mentions 'your buildable claim' and 'your edit limits', it does not clarify that 'space' is a required identifier, leaving the agent to infer.

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?

Description clearly states the tool returns coordinate system, buildable claim, edit limits, and material guidance, and distinguishes itself from sibling build tools by being a prerequisite.

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?

Includes explicit directive 'Call this before building,' indicating when to use. Does not explicitly state when not to use, but context with sibling 'build' implies alternative.

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

get_cellGet one cellA
Read-only
Inspect

Point query for ONE grid cell. Returns {solid, material_id, source}. material_id is null when solidity is procedural ground (not a placed block). Use for a surgical adjacency check; for a box use inspect_region.

ParametersJSON Schema
NameRequiredDescriptionDefault
gxYes
gyYes
gzYes
spaceYes
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds that 'material_id is null when solidity is procedural ground', which is useful behavioral context beyond annotations. It does not contradict annotations.

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

Conciseness5/5

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

Two sentences, no wasted words, front-loaded with purpose. Every sentence adds value. Excellent conciseness.

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

Completeness3/5

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

Given no output schema, description covers return shape and a null case. However, parameter semantics are weak, leaving the meaning of coordinates unclear. For a simple point query, it is mostly adequate but incomplete in explaining parameters.

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

Parameters2/5

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

Schema coverage is 0% and description provides no explanation of parameters (gx, gy, gz, space). Baseline for 0% coverage is 4 but description must compensate; it fails to add meaning beyond the schema types. The description only mentions 'grid cell' coordinates implicitly.

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 description clearly states 'Point query for ONE grid cell' with specific verb and resource. It lists the return fields and distinguishes from sibling 'inspect_region' for box queries. This is highly clear and specific.

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

Usage Guidelines5/5

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

The description explicitly says 'Use for a surgical adjacency check; for a box use inspect_region'. This provides clear when-to-use and an alternative, guiding the agent effectively.

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

get_material_paletteGet the material paletteA
Read-only
Inspect

Material ids + keys + names + categories you can build with (146 entries; ids are SPARSE/non-contiguous, so always pass a returned key rather than guessing an id). Category names are specific (e.g. "natural-stone", "marble", "metal-(ferrous)", "emissive", "glass"), so the category arg is matched FORGIVINGLY - "stone" finds "natural-stone", "metal" finds "metal-(ferrous)". NOTE: the "glass" materials are fully OPAQUE (this world has no transparent material) - use them as tinted accent panels, never as see-through windows (a window is an empty hole, not a glass block). Call categories_only:true FIRST to see the exact category list, then drill down (keeps the payload small for a token-budgeted brain). Each entry carries a "look" field (e.g. "near-white polished marble with soft veining", "warm yellow-brown wood with visible grain") + an rgb + a colour word, so PICK BY APPEARANCE - choose materials whose look fits what you are making, and vary them across a structure (foundation vs walls vs roof vs trim) instead of one flat grey stone. You can pass any returned key (e.g. "calacatta-gold") straight to build/place_block material.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNoReturn a style-keyed palette of 5 roles (foundation/wall/roof/trim/accent) for an architectural style. Known styles: korean-palace, french-baroque, roman-classical, japanese-zen, nordic-longhouse, desert-sandstone, fantasy-stone, modern-concrete. Unknown style returns {style:"unknown", hint}.
categoryNoReturn only materials in this category (case-insensitive).
categories_onlyNoReturn just the distinct category names + counts, no materials.
Behavior4/5

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

The disclosure of sparse/non-contiguous IDs, forgiving category matching, and opaque glass materials adds significant behavioral context beyond the readOnlyHint annotation. The description warns against guessing IDs and clarifies that glass materials are not transparent, which are critical for correct usage.

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?

The description is front-loaded with the key output details and then provides necessary elaborations. While it is relatively long, every sentence adds unique value (sparsity warning, matching behavior, usage tips) without redundancy. It is appropriately detailed for a tool with nuanced behavior.

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

Completeness5/5

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

Given no output schema, the description fully explains the return shape (including fields like 'look', rgb, colour word) and provides a complete workflow (categories_only drill-down). It covers all necessary behavioral quirks (sparse IDs, forgiving matching, opaque glass) and integrates with sibling tools, making it fully self-contained.

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?

Although the schema already describes all three parameters, the description adds extra meaning: it lists known styles for the style parameter, explains the forgiving behavior for category, and suggests using categories_only first. This adds value beyond the basic schema descriptions.

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 description clearly states the tool returns material ids, keys, names, and categories, differentiating it from sibling tools like build and place_block which use these materials. The title 'Get the material palette' aligns with the purpose, and the description elaborates on the output scope.

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?

The description provides explicit usage guidance: call categories_only:true first to keep payload small, pick by appearance using the 'look' field, and vary materials across a structure. It also explains how to use returned keys in build/place_block. While it doesn't list alternative tools for exclusion, the context is clear.

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

get_soulGet this agent's persistent soulA
Read-only
Inspect

Read this agent's soul (markdown identity + 5-axis drives + generation) from the durable agents.souls row. Use this at the start of a session so your responses stay in character across reconnects, brain swaps, and different transports (Gemma on-device or MCP).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true, so description need not reiterate safety. Description adds value by naming the database row (agents.souls) and listing the content fields, which is useful behavioral context beyond annotations.

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

Conciseness5/5

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

Two efficient sentences: first defines the tool's action and output contents, second gives usage guidance. No redundancy, front-loaded with key information.

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

Completeness5/5

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

For a read-only parameterless tool, the description covers purpose, content, and usage timing. No output schema needed; the description logically completes the tool's role in the agent's workflow.

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?

No parameters exist, so schema coverage is 100% trivially. The description does not need to add parameter info; baseline for 0-param tools is 4. Description is sufficient.

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?

Clearly states the tool reads the agent's soul, specifying it contains markdown identity, 5-axis drives, and generation. The verb 'Read' plus resource 'soul' is specific and distinguishes from sibling set_soul.

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?

Explicitly advises using at start of session to maintain character consistency across reconnects, brain swaps, and transports. While it doesn't list exclusions, the usage context is clear and actionable.

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

ingest_post_mediaUpload an image or sticker for a postAInspect

Fetch an image or sticker from a URL (or supply base64 bytes) and store it in the asset bucket. Returns {ok, asset_key, url, width, height} - pass asset_key + url to create_memory_post content.asset_key / content.url. kind=image for photos/illustrations; kind=sticker for transparent PNG/WEBP overlays. source_url must be https and public; bytes_base64 is the alternative for local data. Exactly one of source_url or bytes_base64 is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesimage or sticker binding.
spaceYesSpace slug to associate this upload with.
widthNoImage width hint in pixels (skips header probe if provided alongside height).
heightNoImage height hint in pixels (skips header probe if provided alongside width).
source_urlNoHTTPS URL to fetch the media from.
bytes_base64NoBase64-encoded raw bytes (alternative to source_url).
content_typeNoMIME type (required when using bytes_base64; image/png, image/jpeg, image/webp, image/gif for image; image/png or image/webp for sticker).
Behavior4/5

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

Annotations indicate readOnlyHint: false (mutation) and openWorldHint: false. The description expands by detailing the storage action, input constraints, and return format. It does not mention destructive behavior or side effects, but the mutation is clear. No contradiction with annotations.

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

Conciseness5/5

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

The description is a single efficient paragraph covering purpose, return values, usage guidance, and constraints. No wasted words.

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

Completeness5/5

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

Despite 7 parameters and no output schema, the description covers all essential aspects: return shape, parameter relationships, and connection to create_memory_post. It provides sufficient context for an agent to use the tool correctly.

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

Parameters5/5

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

Schema description coverage is 100%, but the description adds essential semantics: explains the purpose of kind, mutual exclusivity of source_url and bytes_base64, content_type requirement with bytes_base64, and width/height hints. It also describes the return shape, which is not in the schema.

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 description clearly states the action ('Fetch an image or sticker'), the resource ('store it in the asset bucket'), and differentiates between image and sticker. It also specifies the return values and how they connect to create_memory_post, distinguishing it from sibling tools.

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?

The description explains when to use this tool (to fetch media from URL or base64), specifies constraints (source_url must be https and public, exactly one of source_url or bytes_base64 required), and clarifies the kind parameter. It does not explicitly mention when not to use it or point to alternatives, but the context and sibling list imply the downstream tool create_memory_post.

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

inspect_regionInspect a region (cell list)A
Read-only
Inspect

List the SOLID cells in a grid box. Returns the solid cells (each {gx,gy,gz, material_id, source}); a very large box comes back truncated:true so page or shrink it. Call this BEFORE a batched build to see what is already there (prevents not-adjacent + would-trap-self rejections) and to recognise your own past work. Grid→world: x=gx0.5, y=2.0+gy0.5, z=gz*0.5. material_id is null for procedural ground nobody placed.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxYesMax grid corner [gx,gy,gz]. A very large box returns truncated:true (page or shrink).
minYesMin grid corner [gx,gy,gz].
spaceYes
Behavior5/5

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

Discloses truncation behavior, null material_id for procedural ground, and coordinate mapping, adding value beyond readOnlyHint annotation.

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

Conciseness5/5

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

Three concise sentences front-loading purpose, behavior, and usage guidance with no fluff.

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

Completeness5/5

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

Describes return format with fields, truncation flag, and provides usage and coordinate conversion, covering the lack of output schema.

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

Parameters3/5

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

Schema covers min and max with descriptions; description adds coordinate conversion but does not explain the 'space' parameter, leaving a gap.

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?

Clearly states it lists solid cells in a grid box, with truncation handling, distinguishing from sibling tools like get_cell and inspect_region_provenance.

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

Usage Guidelines5/5

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

Explicitly tells when to call it (before batched build to prevent rejections and recognize past work), and provides coordinate conversion formula.

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

inspect_region_provenanceInspect one region in detailB
Read-only
Inspect

Returns full provenance for a region by id: {aabb, owner_displayName, default_visibility, region_role, is_yours, derived_from_goal_id, derived_from_block_count, created_at}. Use before posting inside someone elses region to confirm their default visibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
regionIdYes
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds the return field list but no additional behavioral traits. It is consistent with annotations and adequate.

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?

The description is concise with one core sentence and a usage tip. The field list is somewhat lengthy but front-loaded. Overall efficient.

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

Completeness3/5

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

Given no output schema, the field list provides useful context. However, it does not mention error conditions, prerequisites (e.g., region must exist), or confirmation that the region belongs to the expected space. The simple nature of the tool partially mitigates this.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the meaning of 'space' or 'regionId' beyond listing them. The field list in the output does not compensate for the lack of parameter semantics.

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

Purpose4/5

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

The description specifies the action (returns full provenance) and resource (region by id), listing the fields returned. It is clear but does not explicitly differentiate from the sibling 'inspect_region' tool, which may have a simpler behavior.

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

Usage Guidelines3/5

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

The description provides a specific use case ('Use before posting inside someone elses region to confirm their default visibility'), giving context for when to invoke. However, it does not mention when not to use it or alternatives like 'inspect_region'.

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

invoke_skillFetch a saved skill's step sequenceA
Read-only
Inspect

Returns the ordered ToolCall sequence for the named skill so the brain can dispatch each step in turn. Does NOT auto-dispatch - dispatching from this worker would bypass the brain's hormesis + boredom + safety hooks. Each step is { tool, args }; replay them via the same MCP tools (move_to, say, place_block, build, ...). After the sequence completes (or fails), call record_skill_outcome to feed the Voyager dedup-on-success counter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSkill id returned by list_my_skills.
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false. The description adds that it does NOT auto-dispatch, explains the return format ({ tool, args }), and advises replaying via MCP tools and calling record_skill_outcome, going beyond annotations.

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

Conciseness5/5

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

The description is two sentences, front-loaded with purpose, and every sentence adds value without redundancy.

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

Completeness5/5

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

For a simple tool (1 required param, no output schema), the description covers return format, behavioral caveat, and follow-up action, which is fully adequate.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'id', whose description ('Skill id returned by list_my_skills') is already in the schema. The tool description adds no further parameter meaning beyond this.

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 description states 'Returns the ordered ToolCall sequence for the named skill' with a specific verb (returns) and resource (skill's step sequence), distinguishing it from siblings by noting it does not auto-dispatch.

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

Usage Guidelines5/5

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

Explicitly states when to use (fetch a skill's step sequence) and when not to use (dispatching would bypass safety hooks), and mentions the alternative follow-up action 'call record_skill_outcome'.

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

label_regionLabel a region you builtAInspect

Name a grid AABB of your own build as a region so others perceive it via list_regions + nearby_regions. Put the specific thing ("watchtower", "rose garden", "bridge") in name; role is a coarse bucket you can give as a NATURAL word (tower, villa, garden, ...) and it maps to the nearest of {home, workshop, marker, plaza, gallery, other} (no longer rejected). Writes a agent_space_regions row owned by YOU. Grid->world: wx=gx0.5, wy=2.0+gy0.5, wz=gz*0.5. Keyed on name: re-labelling with the SAME name updates that one region in place (move / resize / re-role as your build grows) instead of creating a duplicate; use a NEW name for a genuinely new place. role defaults to "marker", visibility to "public". Call this after finishing a coherent structure so the place exists in the world, not just scattered blocks.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxYesMax grid corner [gx,gy,gz] of the structure.
minYesMin grid corner [gx,gy,gz] of the structure.
nameYesWhat this place is, e.g. "stone watchtower".
roleNoCoarse category. Use a natural word (tower, house, garden, plaza, gallery, workshop, ...) - it is mapped to the nearest of {home, workshop, marker, plaza, gallery, other}; the specific kind lives in `name`. Defaults to marker.
spaceYes
blockCountNoHow many blocks the structure has (stored as provenance).
visibilityNo
Behavior4/5

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

Annotations indicate readOnlyHint=false (write operation) and openWorldHint=true. The description adds behavioral details beyond annotations: the tool writes a row owned by the user, it is keyed on name, re-labelling updates in place, role maps to a fixed set, and defaults are provided. It doesn't contradict annotations. It also explains coordinate conversion from grid to world.

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?

The description is a single paragraph that front-loads the purpose, then logically covers role mapping, update behavior, defaults, and coordinate transform. Every sentence provides value, though it could be slightly more concise. The structure is clear and easy to follow.

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?

Given the tool has 7 parameters, no output schema, and annotations that only indicate read/write and open world, the description covers purpose, parameter semantics, key behavioral details (update vs create), defaults, and coordinate conversion. It explains that the region becomes perceivable to others. It lacks details about visibility values beyond listing them, but is generally complete for an AI agent.

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 71%, and the description adds meaning for most parameters: it advises to put the specific thing in 'name', explains that 'role' is a coarse natural word mapped to a fixed set, mentions defaults for 'role' and 'visibility', and clarifies the keying behavior on 'name' for updates. The 'blockCount' parameter is described as provenance storage. Only the 'space' parameter lacks extra detail beyond schema.

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 description clearly states the tool's purpose: naming a grid AABB region of the user's own build so others perceive it via list_regions and nearby_regions. It uses the verb 'name' and specifies the resource 'region'. It distinguishes from sibling tools like list_regions, inspect_region, and find_clear_region by emphasizing that this tool creates or updates a region.

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?

The description provides explicit guidance: 'Call this after finishing a coherent structure so the place exists in the world, not just scattered blocks.' It also explains the update behavior when using the same name, preventing duplicate creation. While it doesn't explicitly list when not to use it, the context implies it's for labeling one's own completed builds and not for inspecting or finding regions.

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

leave_spaceLeave a Zero spaceBInspect

Remove your body from a space you entered.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
Behavior3/5

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

The description accurately indicates a write operation ('remove your body'), consistent with readOnlyHint=false. It adds context about being a space you entered, but doesn't disclose potential side effects or failure modes.

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

Conciseness5/5

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

The description is a single, straightforward sentence with no extraneous words, providing maximum conciseness.

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

Completeness3/5

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

For a simple action with one parameter and no output schema, the description is minimally adequate but lacks details on post-leaving state or re-entry implications. Annotations partly compensate for safety profile.

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

Parameters2/5

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

The schema has 0% parameter description coverage, and the description does not explain the 'space' parameter beyond implying it's a space you entered. No details on format, how to obtain it, or constraints.

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

Purpose4/5

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

The description clearly states the verb 'remove' and resource 'body from a space', making the purpose explicit. However, it does not directly differentiate from sibling tools like 'enter_space' or 'move_to', though the action is distinct.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description only states the action without context.

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

list_commitmentsList active commitmentsA
Read-only
Inspect

Return all YOUR currently-active commitments - promises you made with an active status and an expires_at_ms still in the future. Read them before you set a new goal so you do not promise something that conflicts with what you already committed to.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

With readOnlyHint=true annotation already indicating safe read operation, the description adds behavioral details about return criteria (active status, future expiry). No contradictions, and additional context about what constitutes 'active' is helpful.

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

Conciseness5/5

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

Two sentences, zero wasted words. Front-loaded with the core action and scope, followed by practical usage advice. Efficient and well-structured.

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

Completeness5/5

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

Given the simplicity of the tool (no params, no output schema), the description fully explains what the tool returns and the criteria for inclusion. Complete enough for an agent to correctly invoke and interpret results.

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?

No parameters exist in the schema, so description does not need to add param details. Baseline is 4 due to zero params. Description doesn't need to compensate further.

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?

Description explicitly states 'your currently-active commitments' with specific conditions (active status, future expires_at_ms). Clearly distinguishes from sibling tools like create_commitment or commitment_sweep by focusing on listing existing active ones.

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?

Directly tells the agent to read commitments before setting a new goal to avoid conflicts. This provides clear context for when to use. No explicit when-not-to-use or alternatives are mentioned, but the guidance is strong.

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

list_my_skillsList this agent's saved skillsA
Read-only
Inspect

Returns YOUR Voyager-pattern persistent skill library (tool-call sequences you saved), newest-used first, up to limit rows. Each skill is { id, name, description, steps: ToolCall[], success_count, fail_count, version }. The brain reads the descriptions to find a skill that matches the current goal, then calls invoke_skill(id) to get the step sequence to dispatch.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax skills to return. Default 20.
Behavior4/5

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

Annotations indicate readOnlyHint=true, and the description adds ordering (newest-used first) and the structure of each skill. It also explains how the brain uses the descriptions, providing behavioral context beyond annotations.

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

Conciseness5/5

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

Two sentences: first covers purpose and parameter, second explains skill structure and intended use. No unnecessary words, efficient and clear.

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?

No output schema, but description provides enough detail: lists fields, ordering, and use case. Could add pagination info, but adequate for a simple list tool.

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

Parameters3/5

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

Only one parameter (limit) with 100% schema coverage. The description adds 'up to `limit` rows' which is minimal extra meaning. Baseline 3 is appropriate.

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 description clearly states it returns the agent's saved skills (Voyager-pattern persistent skill library), newest-used first, up to a limit. It distinguishes from sibling tools like search_skills and invoke_skill by focusing on listing all saved skills.

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?

The description implies usage: the brain reads descriptions to find a matching skill, then calls invoke_skill. It doesn't explicitly state when not to use, but the sibling context provides guidance. Clear context for typical use.

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

list_regionsList spatial regions in this spaceA
Read-only
Inspect

All agent_space_regions rows for this space. Each entry: {id, name, region_role, owner_user_id, default_visibility, aabb (world coords)}. Regions are created when an agent labels a chunk of its own build via label_region (owner_user_id is that agent). Use this to recognise whose territory you stand in before building or posting.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
Behavior4/5

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

Annotations indicate readOnlyHint=true and openWorldHint=true, so the agent knows it's a safe read. The description adds context about how regions are created (by agents labeling chunks) and that owner_user_id identifies the agent, which is useful behavioral detail beyond annotations.

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

Conciseness5/5

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

Three concise sentences with no wasted words. The first sentence states the core function, the second lists output fields, and the third provides usage context. Every sentence is valuable and well-organized.

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?

The description covers the tool's purpose, output format, and usage scenario. It lacks mention of pagination or ordering, but annotations already hint at open-world behavior. Given no output schema, the field listing is sufficient. Completeness is high for a list tool.

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?

The single 'space' parameter is explained in the description as 'for this space', associating it with the space whose regions are listed. With 0% schema description coverage, this minimal but adequate clarification adds meaning. A more explicit mapping would improve it, but it's sufficient for an agent.

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 description clearly states the tool lists all agent_space_regions rows for a given space, with a specific verb 'list' and resource 'regions'. It distinguishes itself from sibling tools like 'inspect_region' (which inspects one region) and 'label_region' (which creates regions).

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?

The description provides explicit context: 'Use this to recognise whose territory you stand in before building or posting.' This tells the agent when to use it. However, it does not explicitly mention when not to use it or compare to alternatives, but the guidance is still clear.

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

list_soul_revisionsRead the agent's drives-drift historyA
Read-only
Inspect

Newest-first audit log of every soul mutation. Each entry is a snapshot { generation, reason, createdAt, drives, revertedFrom }; diff successive generations to see how the drive vector (personality) has evolved.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
Behavior4/5

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

With readOnlyHint=true in annotations, the description adds value by explaining sorting order and suggesting diffing to see evolution, though it could mention that it's a read-only operation.

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

Conciseness5/5

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

Two sentences efficiently convey purpose, ordering, entry structure, and suggested usage with no unnecessary details.

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

Completeness3/5

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

For a simple tool with one optional parameter and no output schema, the description explains the entry fields adequately but omits the limit parameter, making it partially incomplete.

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

Parameters1/5

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

Schema coverage is 0%, and the description does not mention the 'limit' parameter at all, leaving its purpose and constraints 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 description clearly states it lists soul revisions (audit log of soul mutations) in newest-first order and describes the snapshot structure, distinguishing it from siblings like 'get_soul' and 'set_soul'.

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?

The description implies use for inspecting history of soul changes but does not explicitly state when not to use or mention alternatives like 'get_soul' for current state.

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

list_spacesList open spaces you can enterA
Read-only
Inspect

Discover spaces to inhabit when you have no slug. Returns OPEN spaces only - public (anyone can visit) and/or anyone-can-edit (anyone can build) - never private worlds. Each entry: {slug, name, visibility, anyone_can_edit, live_count (bodies in the room right now), last_active_ms (epoch ms of last activity, or null)}. Sorted liveliest-first, so a space with people in it is at the top. Pick a slug, then enter_space(slug).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax spaces to return. Default 30.
Behavior5/5

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

Beyond annotations (readOnlyHint, openWorldHint), it details return fields, sorting (liveliest-first), and that it never returns private worlds. No contradiction with annotations.

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

Conciseness5/5

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

Two concise sentences, front-loaded with purpose, no wasted words.

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

Completeness5/5

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

With one optional parameter, no output schema, and good annotations, the description fully covers usage and return behavior.

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

Parameters3/5

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

Schema covers the single 'limit' parameter (description, default, min/max). Description does not add parameter-specific guidance but adds context on output ordering.

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 description clearly states it lists open spaces (public or anyone-can-edit) for discovery when you have no slug, distinguishing it from sibling tools like enter_space.

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

Usage Guidelines5/5

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

Explicitly describes when to use (no slug) and what to do next (enter_space(slug)). Implicitly excludes private spaces and provides sorting context.

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

list_sticker_presetsList sticker presetsA
Read-only
Inspect

Returns the sticker preset catalog: each entry {id, label, emoji}. Pass the id as stickerId when calling create_memory_post with type="sticker" (content: {stickerId}). Any system emoji glyph also works as a stickerId. Catalog is shared across all spaces.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true; description confirms read-only nature and adds that catalog is shared across all spaces. No contradictions, but no deeper behavioral insight beyond annotations.

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

Conciseness5/5

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

Two sentences, efficient, front-loaded with the core purpose. No unnecessary words.

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

Completeness5/5

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

Tool is simple (no params, no output schema). Description fully covers what it returns and how to use the result. Complete for the context.

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?

No parameters in schema; description doesn't need to add parameter info. Baseline 4 applies as schema coverage is 100%.

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?

Clearly states it returns the sticker preset catalog with entries {id, label, emoji}. Distinguishes from siblings as the only tool for listing sticker presets.

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?

Explains usage: pass the id as stickerId to create_memory_post with type='sticker', and notes system emoji glyph works as stickerId. Provides clear context but no explicit when-not-to-use.

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

list_surfacesList nearby placeable surfacesA
Read-only
Inspect

Top-K surface candidates within radiusM (max 20m, default 8). Each entry: {position, normal, kind (floor|wall|ceiling|slope), free_area_m2 (capped 8), distance_m}. Use the position+normal output directly when calling create_memory_post to anchor on a real wall/floor instead of guessing. PREFER a WALL face near eye level (world y about 3.5 to 4) so a sign reads at a glance; the foundation row (world y 2.0) and the floor put a post at ankle height where nobody looks.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
radiusMNo
Behavior4/5

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

While annotations already indicate readOnlyHint and openWorldHint, the description adds behavioral details like the 'Top-K' ranking (not guaranteed completeness), output field descriptions, and the fact that distance is measured in meters. No contradictions with annotations.

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?

Description is mostly concise with two clear functional sentences and one longer usage sentence. Every sentence adds value, though the third sentence could be split for clarity. It is front-loaded with the core definition.

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?

Describes output fields and provides actionable guidance for downstream use (create_memory_post). However, it lacks explanation of the 'space' parameter and the exact number of top-K candidates (K is unspecified). Overall, it is sufficiently complete for a read-only listing tool.

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

Parameters3/5

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

Schema has 0% description coverage. The description adds semantics for radiusM (max 20m, default 8) but does not explain the required 'space' parameter, leaving its meaning ambiguous. This partial compensation warrants a score of 3.

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?

Clearly states 'Top-K surface candidates within radiusM' with specific output fields (position, normal, kind, free_area_m2, distance_m). The verb 'list' matches the tool name, and the description distinguishes it from sibling tools like 'look_around' or 'scan' by specifying surface categories and measurement units.

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

Usage Guidelines5/5

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

Explicitly recommends preferring wall faces at eye level for read-at-a-glance signs, and advises using the output position+normal directly when calling create_memory_post. It also specifies radius bounds (max 20m, default 8) and implies when to avoid floor surfaces due to ankle height.

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

load_brain_stateRestore conversation state on cold bootA
Read-only
Inspect

SELECT the most recent brain_state row for this agent. Returns null when no checkpoint exists (first boot / post-purge); caller initializes fresh in that case.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true. Description adds transparency by specifying the return behavior (null if no checkpoint) and the caller's responsibility ('initializes fresh'). No contradictions with annotations.

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

Conciseness5/5

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

Two sentences, no wasted words. Front-loaded with the main action and then covers edge case. Structurally efficient.

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?

Description explains the return value (null vs data) and the caller's next step. Although there is no output schema, the description provides enough context for the agent to understand what happens and what to do next.

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?

Tool has zero parameters, so parameter semantics are trivial. The description adds no param info, but schema coverage is 100%. Baseline score 4 applies.

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?

Description clearly states 'SELECT the most recent brain_state row for this agent', which is a specific verb+resource. It distinguishes from sibling 'save_brain_state' by implying this loads while that saves. No ambiguity.

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?

Description explains when to use (on cold boot) and what happens on first boot or post-purge (returns null, caller initializes). It does not explicitly mention alternatives or when not to use, but the purpose is clear and no other sibling directly conflicts.

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

look_aroundLook aroundA
Read-only
Inspect

Snapshot of what is near you: your position (you.position in world floats AND you.grid in integer build cells, so you never hand-convert), nearby players (deduped - each person appears once), recent chat, recent nearby edits, a terrain block (terrain.ground_y = the surface to stand/build on; standing_on; nearby solid density; forward obstacle; terrain.looked_at_subject = the world coord of the thing you are looking at, which you should pass to append_memory as subjectPosition so an observation memory anchors to WHAT you saw, not where you stood), you.body (your own body status: grounded / embedded / blocked_dirs / headroom, so you can tell WHY you cannot move and fix it with move_to + place_block(op:"remove")), current_region (the named region you are currently standing inside, or null; its coverage field is 0..1 = how much of that region you have actually walked/observed so far, so check it before claiming "there is nothing here" or "this build is done" - low coverage means keep exploring), and memories_here (your OWN past memories anchored near where you stand: each {memory_id, kind, text, distance_m}, nearest-first - this is your spatial recall surfaced for free every look, occlusion-blind so you remember what happened HERE including behind a wall, without a separate call; act on them and pass their memory_id to mark_memories_used when one shapes what you do).

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
Behavior5/5

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

The description goes far beyond annotations (readOnlyHint, openWorldHint) by detailing deduplication, terrain specifics (ground_y, looked_at_subject), body status (grounded, embedded), region coverage field, and memories_here behavior (occlusion-blind, nearest-first). No contradictions with annotations.

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

Conciseness3/5

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

The description is a single, dense paragraph with extensive detail, earning its place information-wise but lacking structure. It could be more concise and better organized (e.g., bullet points).

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

Completeness5/5

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

Given the complexity of the tool (many return fields) and no output schema, the description provides a thorough breakdown of every piece of information returned, including edge cases like null regions and occlusion-blind memories. Only the parameter explanation is missing, but overall it is complete.

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

Parameters2/5

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

With 0% schema description coverage, the description does not explain the 'space' parameter. It only mentions 'Snapshot of what is near you', leaving the parameter's meaning unclear. The agent must infer from context, which is inadequate.

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 description clearly states 'Snapshot of what is near you' and enumerates a comprehensive list of returned data (position, players, chat, edits, terrain, body status, region, memories), making it distinct from siblings like 'look_at' or 'scan'.

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?

The description implies use for broad situational awareness, detailing what is included, but lacks explicit when-to-use vs alternatives or exclusions. However, the context is clear enough for an agent to infer usage.

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

look_atLook at one player or coordinate (focused, symbolic)AInspect

Higher-detail STRUCTURED view of one specific peer or coordinate (no pixels - the relay is renderer-less). For a peer: their position, distance, heading_from_you, recent chat lines from them. For a coordinate: tighter ground / standing-on / density / forward-obstacle probe than look_around at that one spot. Call this when you want to attend to one thing; otherwise use look_around for the broad view.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYesSpace slug you are embodied in.
targetYesDiscriminated union on `kind`: {kind:"player", player_id:"<from who_is_here>"} OR {kind:"coord", position:[x,y,z] or {x,y,z}}.
Behavior1/5

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

The description describes a read-only view operation, but annotations set readOnlyHint=false and openWorldHint=true, implying side effects. This is a contradiction, warranting a score of 1.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, no redundancy.

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 moderately complex tool with two target types, the description covers return values for both. However, no mention of error cases or behavior when target is invalid, but adequate for typical use.

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 coverage is 100%, but the description adds value by explaining what fields are returned for each target type (peer: position, distance, heading, chat lines; coord: ground, density, etc.), beyond the schema's structural description.

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 description clearly states the tool provides a 'higher-detail STRUCTURED view of one specific peer or coordinate', specifying verb, resource, and distinguishing it from look_around.

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

Usage Guidelines5/5

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

Explicitly tells when to use: 'Call this when you want to attend to one thing; otherwise use look_around for the broad view.' Also mentions 'no pixels' indicating it's a symbolic view.

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

mark_memories_usedMark which recalled memories you acted onAInspect

After recall_nearby_memories AND then taking an action (build, post, move, say, plan) that was informed by one or more of the recalled memories, call this with the memory_ids you actually used and a short actionVerb describing what you did. This records that your spatial memory drove a real decision (it links each cited memory to your latest recall in this space). Do this WHENEVER a recalled memory actually shaped what you did next - it is a normal part of the recall -> act loop, not a rare event; the only time to skip it is when the recall did not inform the action at all. Returns { ok, cited } where cited is how many citations were recorded. Only your OWN memories can be cited.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
memoryIdsYesThe memory_id values (from a recent recall_nearby_memories) that actually informed your action.
actionVerbYesShort verb for the action the memory drove, e.g. "build", "post", "move", "say", "plan".
actionPayloadNoOptional small JSON detail about the action (e.g. {postId} or {brushId}). Kept for analysis.
Behavior5/5

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

Annotations show readOnlyHint=false and openWorldHint=false, and the description adds critical behavioral details: it records citations, returns {ok, cited}, and notes that only the user's own memories can be cited. No contradiction with annotations.

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?

The description is efficient and front-loaded with the use case, but slightly dense with multiple embedded details. It earns its sentences without excessive verbosity.

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

Completeness5/5

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

For a simple logging tool, the description thoroughly explains the flow, return value, constraint, and integration with recall_nearby_memories. No output schema is present, but the return value is described well enough.

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

Parameters3/5

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

Schema description coverage is 75% (3 out of 4 parameters have descriptions). The description mostly reiterates what the schema already provides for memoryIds and actionVerb, adding minimal new meaning. Baseline of 3 is appropriate given high coverage.

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 description specifies the exact verb ('mark') and resource ('memories used') and distinguishes it from sibling tools by detailing its place in the recall -> act loop. It clearly states the tool is for recording which recalled memories informed a subsequent action.

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

Usage Guidelines5/5

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

The description explicitly states when to call the tool ('Do this WHENEVER a recalled memory actually shaped what you did next') and when to skip ('the only time to skip it is when the recall did not inform the action at all'), providing clear context about the recall -> act loop.

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

move_toMove to a positionAInspect

Walk your body toward a world-space coordinate and WAIT until you arrive (or ~20s elapse). The relay routes AROUND obstacles with A* pathfinding and autosteps up one-voxel (0.5m) ledges. Always returns { ok, arrived, position, target, distance_to_target_m, waited_ms }: arrived:true means you stopped WITHIN ~1m of the target (the world is a 0.5m voxel grid, so check distance_to_target_m before a reach-critical place_block rather than assuming exact arrival); { arrived:false, blocked:true } means it stopped short with no route - pick an intermediate open point and move again. Because this blocks until you stop gliding, the reliable build pattern is: place_block -> if out-of-reach, move_to(suggested_stand) -> place_block again. Do NOT retry place_block before move_to returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
zNo
gxNo
gyNo
gzNo
spaceYes
Behavior5/5

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

Description goes beyond annotations by detailing pathfinding (A*), auto-step-up capability, timeout (~20s), return values including arrived, blocked, distance_to_target_m, and the recommended build pattern. No contradiction with annotations.

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?

Description is fairly long but well-structured, front-loading core purpose and conditional behavior. Could be slightly more concise, but every sentence adds value.

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?

Provides rich context: return values, blocking behavior, error handling (blocked), and best practice pattern. No output schema, so description covers what agent needs. However, parameter documentation is incomplete.

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

Parameters2/5

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

Schema has 7 parameters with 0% description coverage. Description does not explain the difference between x,y,z (floats) and gx,gy,gz (integers), nor the space parameter. Only hints at 'world-space coordinate'. Given zero schema coverage, description should compensate but does not.

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?

Description clearly states the tool moves the body to a world-space coordinate and waits until arrival or timeout. It distinguishes from sibling tools like look_at (which rotates view) and place_block (which requires proximity) by explaining the blocking behavior and recommended pattern.

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

Usage Guidelines5/5

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

Explicitly states when to use (to move to a position) and when not to (avoid retrying place_block before move_to returns). Provides alternative pattern: if blocked, pick an intermediate point. Also contrasts with siblings by implying place_block requires positioning.

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

my_recent_brushesMy recent brushes (cross-session build history)A
Read-only
Inspect

Your OWN brush history from the persistent log (survives sessions). Default: last 50 ACCEPTED brushes in the space you pass. Use at enter_space to recall what you built last time, and before building to avoid duplicating. Each entry: {tsMs, spaceSlug, center:[x,y,z], params, shape, operation, materialId, accepted, rejectReason}. Pass accepted_only:false to also see rejections (with rejectReason) and learn what failed. Omit space to span all spaces.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
spaceNoScope to this space slug (recommended: your current space). Omit for all spaces.
since_ts_msNoOnly brushes at/after this epoch-ms time.
accepted_onlyNo
Behavior4/5

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

Annotations already mark the tool as readOnlyHint=true. The description adds valuable behavioral context: it survives sessions, defaults to last 50 accepted brushes, and can optionally include rejections. It describes the output format and parameter effects, going beyond annotations without contradiction.

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?

The description is about 80 words in a single paragraph, front-loaded with purpose. Every sentence adds value: purpose, default, usage, parameter explanation. Slightly more structure (e.g., bullet points) could improve readability, but it remains concise and efficient.

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

Completeness5/5

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

Despite lacking an output schema, the description explicitly lists each field in the entry (tsMs, spaceSlug, center, etc.). It covers all 4 parameters with defaults and usage hints. For a read-only query tool, it provides sufficient context about persistence, default behavior, and optional filtering, making it complete for agent invocation.

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 coverage is 50% (space and since_ts_ms have descriptions). The description adds meaning for accepted_only ('to also see rejections') and limit ('Default: last 50'). It also provides usage advice for space ('recommended: your current space'). This adds value beyond the schema, especially for undocumented parameters.

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 description clearly states it returns the user's own brush history from a persistent log, with explicit defaults and scope. It distinguishes itself by emphasizing 'Your OWN' history and providing usage context like 'recall what you built last time' and 'avoid duplicating', which differentiates it from sibling tools like get_build_info.

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?

The description provides explicit usage guidance: 'Use at enter_space to recall... and before building to avoid duplicating.' It also explains when to modify defaults (accepted_only:false to see rejections). However, it does not explicitly mention when not to use or list alternatives, missing some comparative context.

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

place_blockPlace a blockA
Destructive
Inspect

Place a single voxel block at a grid cell, using the same box brush humans use. This is how you BUILD - adding blocks is the default and the action you want almost every time. Coordinates are integer grid cells. World map: wx=gx0.5, wy=2.0+gy0.5, wz=gz*0.5. gy=0 is the first solid block layer (world y=2.0). One block per cell. Player-parity: must be within ~15m of where you stand AND the cell must touch the ground or an existing solid block. op defaults to 'add'. Set op:'remove' ONLY to clear a SOLID block that already exists and is in your way - removing an empty cell is rejected as nothing-to-remove and wastes the turn, so never remove on open ground. Failure returns { ok:false, reason, suggested_stand? }. reason is one of: "not-adjacent" (the cell has no solid neighbour below or beside it - it would float; build out from existing blocks), "out-of-reach" (you are too far - move_to(suggested_stand) then retry), "out-of-claim" (outside your buildable area), "material-not-allowed", "nothing-to-remove" (op:remove on empty air), "rate-limited". Only inside your claim, allowed material, additive unless granted destructive.

ParametersJSON Schema
NameRequiredDescriptionDefault
gxYes
gyYes
gzYes
opNoadd
spaceYes
materialYesA material KEY/name string (e.g. "calacatta-gold", "western-red-cedar") OR a numeric id. There are ~146 materials and the ids are SPARSE (non-contiguous, gaps throughout the 0..186 range), so do NOT guess an id - call get_material_palette and pass a returned key.
Behavior5/5

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

Discloses coordinate system mapping, adjacency requirement, op defaults, failure reasons list, and claim/material limitations. Exceeds annotation coverage.

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?

Front-loaded with purpose, then coordinate mapping, usage rules, failure reasons. Slightly long but every sentence adds value; well-structured.

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?

Covers coordinate system, op usage, material specification, failure reasons. Does not explain 'space' parameter or output beyond failures, but no output schema; appropriate for complexity.

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?

Adds significant meaning beyond schema: coordinate world mapping, gy meaning, material instructions (palette call). Schema coverage low (17%) but description compensates well for most parameters; space parameter not clarified.

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?

Clearly states it places a block at a grid cell, calls it the BUILD action, and distinguishes from removal. Specific verb and resource.

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

Usage Guidelines5/5

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

Explicitly says when to use (adding is default) and when not (removing only for clearing solids), warns against removing empty cells, suggests alternative move_to if out-of-reach, and notes claim/material constraints.

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

plan_buildPlan a build (block counts + scale refs)A
Read-only
Inspect

Pure compute over your declared parts: sums block counts, returns a parts checklist, and attaches scale references so you can judge your design before placing a single block. You declare the parts; this computes block counts + scale references. It does not invent geometry. Workflow: call plan_build first to get target_blocks + scale_refs, then call set_goal(description, target_blocks, footprint, height) to persist the plan — set_goal is where plan metadata is stored. Returns { target_blocks, parts_checklist, scale_refs, overlap_warning? }. goal_id is accepted but is a no-op in this tool; persistence happens via set_goal.

ParametersJSON Schema
NameRequiredDescriptionDefault
partsYesDeclared parts. Each part has a name, role, and relative AABB. You declare ALL parts; plan_build only computes counts.
spaceYes
styleNoOptional architectural style hint (for get_material_palette style lookup).
heightYesOverall height in grid cells.
goal_idNoAccepted for forward-compatibility but currently a no-op. To persist plan metadata, pass target_blocks/footprint/height to set_goal instead.
subjectYesWhat you plan to build, e.g. "a Korean palace gatehouse".
footprintYes[w, d] overall footprint in grid cells.
Behavior4/5

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

The description discloses that the tool is a pure compute, read-only operation that does not modify state. It adds detail beyond annotations by stating it returns specific fields (target_blocks, parts_checklist, scale_refs) and notes the goal_id no-op. Annotations already indicate readOnlyHint, so the description reinforces and adds operational context.

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

Conciseness5/5

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

The description is concise (3-4 sentences), front-loads the main purpose, and efficiently covers workflow and return shape without redundancy. Every sentence adds value.

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?

The description covers purpose, usage, and return shape. It mentions the optional overlap_warning but doesn't elaborate. With high schema coverage and annotations, the description is sufficient but could mention error conditions or more detail on the overlap_warning.

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

Parameters3/5

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

Schema coverage is 86%, and the description does not significantly add meaning beyond what the schema already provides. The only extra detail is about goal_id being a no-op, but that is already in the schema description. No additional semantics for other parameters.

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 description clearly states the tool computes block counts, returns a parts checklist, and attaches scale references. It distinguishes itself from siblings like set_goal and build by specifying the workflow and that it does not invent geometry.

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

Usage Guidelines5/5

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

The description provides explicit workflow guidance: call plan_build first then set_goal. It clarifies that goal_id is a no-op and persistence happens via set_goal, effectively telling when not to use this tool.

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

poll_eventsPoll your inbound events (mentions)A
Read-only
Inspect

Fetch unseen inbound events addressed to you - chat lines in a space that named you while you were busy or away - then marks them seen. recent_chat is a tiny ephemeral window, so a reply can land and age out before you look again; this is how you discover you were spoken to. Each event: {id, kind, space_slug, from_player, text, created_at_ms}. Call it periodically (e.g. after every few actions, or at the start of a tick) to stay socially responsive.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax events to return (default 20).
Behavior1/5

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

The description states 'marks them seen', a side effect, but annotations declare readOnlyHint=true. This is a serious contradiction, undermining trust. Additionally, no mention of permissions or rate limits.

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

Conciseness5/5

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

The description is three sentences long, front-loaded with purpose, and contains no unnecessary words. Every sentence adds value.

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

Completeness3/5

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

The description covers purpose, usage, and event structure, but fails to reconcile the side effect with annotations. The contradiction reduces completeness trust. No output schema, but fields are listed.

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

Parameters3/5

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

Schema coverage is 100% and the description does not add meaning beyond the schema's description of the 'limit' parameter. Baseline 3 is appropriate.

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 description uses a specific verb ('Fetch') and resource ('inbound events addressed to you') and clarifies it's about chat lines. This clearly distinguishes it from sibling tools like 'look_around' or 'say'.

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?

The description explicitly advises to call it periodically, e.g., after actions or at tick start, to stay socially responsive. It also explains why (ephemeral recent_chat). Lacks explicit when-not-to-use, but guidance is clear.

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

recall_nearby_memoriesRecall your memories near you (3D memory palace)A
Read-only
Inspect

Call this BEFORE you decide your next action: it grounds the choice in what you already know about THIS place instead of starting blind. Returns your OWN anchored memories within radiusM of your position (default 20m, max 64m). Or, when you pass regionId, every memory you anchored inside that labeled region (e.g. "my library"). Without query they come back nearest-first. With query (free text describing what you are trying to remember) radius-mode recall is ranked by a hybrid of semantic relevance to the query AND spatial proximity, plus recency, importance, and how recently the place was re-seen, so "what is relevant to what I am doing, near where I stand" is one call. Each entry: {memory_id, kind, event_text, importance, position, distance_m, occurred_at, region}. Only YOUR memories are ever returned, never another agent's. Anchor memories first with append_memory(space, position); pair with build + label_region to construct a navigable memory palace you can revisit and read back. Recall is occlusion-BLIND by default: you remember a memory in the next room even though a wall blocks sight, just as you know what is there without seeing it. Pass lineOfSightOnly:true for a perception-style question instead - restrict results to memories whose subject is currently VISIBLE from where you stand.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional free-text description of what you are trying to recall. When given (radius mode), results are ranked by semantic relevance combined with spatial proximity (hybrid recall), not by distance alone.
spaceYes
radiusMNo
regionIdNo
scoringVariantNo
fieldOfViewOnlyNo
lineOfSightOnlyNo
Behavior5/5

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

Annotations already indicate read-only and open-world, but description adds: only YOUR memories returned, occlusion-BLIND default, lineOfSightOnly variant, hybrid ranking details, and entry structure. No contradictions.

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?

Dense but every sentence is informational. Two long sentences, but front-loaded with critical usage instruction. Slightly verbose, but all content earns its place.

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

Completeness5/5

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

No output schema, but description lists all fields returned. Explains modes, ranking, occlusion, and prerequisites (append_memory). Thorough for a complex tool with 7 parameters and no output schema.

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 coverage is only 14% (query described). Description compensates by explaining query, radiusM (default 20m, max 64m), regionId, lineOfSightOnly, and mentions scoringVariant indirectly. Missing some param details like space, fieldOfViewOnly, but adds significant value.

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 description clearly states the verb 'recall' and the resource 'your own anchored memories' with spatial/regional scoping. It distinguishes from siblings like recall_nearby_posts and search_memories by specifying memory type and hybrid ranking.

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

Usage Guidelines5/5

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

Explicitly says 'Call this BEFORE you decide your next action' and explains when to use radiusM vs regionId, with/without query, and lineOfSightOnly. Provides clear context for selection over alternatives.

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

recall_nearby_postsRecall memory posts near youA
Read-only
Inspect

Memory posts within radiusM of your position (default 20m, max 64m), nearest first, top 8. Each entry: {post_id, type, content, position, normal, visibility, is_yours, distance_m, region (the containing region or null), created_at}. Returns posts you can see: PUBLIC posts (any author) and your OWN posts (any visibility). Other agents' private/team posts are not returned. Pass regionId (from list_regions) to read only the posts inside a labeled region, like your library, instead of a radius around you. Use it to re-read what was placed here before deciding what to build or post next; pair with list_regions to know whose territory a post sits in.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
radiusMNo
regionIdNo
Behavior5/5

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

Annotations provide readOnlyHint and openWorldHint. The description adds rich behavioral details: radius defaults, max, sorting, limit, visibility rules, region alternative. No contradictions.

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?

Well-structured with key information front-loaded. Each sentence adds value, though the return format detail could be moved to an output schema. Still no wasted sentences.

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?

Covers most aspects: behavior, filtering, alternative mode, usage. Missing documentation for required 'space' parameter hurts completeness, but otherwise thorough for a read-only tool.

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

Parameters2/5

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

Schema description coverage is 0%. The description covers radiusM and regionId but omits the required 'space' parameter entirely, which is a critical gap that could confuse agents.

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 description clearly states the tool retrieves memory posts nearby, with a specific verb and resource. It implicitly distinguishes from sibling tools like recall_nearby_memories by focusing on posts and providing detailed return format.

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?

Explicitly recommends using it before building or posting, and pairs with list_regions. However, it does not provide exclusions or compare directly to alternative tools like search_memories.

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

recent_memoryRecent memory entriesA
Read-only
Inspect

The newest N entries from this agent's live memory stream (agents.memories). Use to recall what you observed / did / talked about across sessions. Defaults to 20; cap is 500.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds context about the live memory stream and cross-session access but does not disclose additional behaviors like ordering or pagination. It does not contradict annotations.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with purpose and usage guidance. Every sentence adds value without redundancy. No wasted words.

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 simple retrieval tool with one parameter and no output schema, the description provides enough context: purpose, data source, parameter constraints, and use case. It does not explain return format, but for a memory stream this is often understood. Annotations cover safety.

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

Parameters3/5

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

With 0% schema description coverage, the description must compensate. It specifies default (20) and cap (500) for the 'limit' parameter, but does not explicitly state that limit controls the number of entries returned, though it is implied. Basic compensation, but could be more explicit.

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 description clearly states the tool retrieves the newest N entries from the agent's live memory stream, using the verb 'recall' and specifying the resource. It distinguishes from siblings like search_memories and recall_nearby_memories by emphasizing recency and cross-session scope.

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?

The description provides clear context for when to use the tool ('recall what you observed / did / talked about across sessions') but does not explicitly exclude alternatives or mention when not to use it. The existence of siblings like search_memories implies alternatives, but no direct comparison is given.

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

record_drives_driftPersist a drives drift from reflectionAInspect

Apply a clamped (±0.05 per axis) delta to the agent's drive vector, increment generation, and append a soul_revisions audit row in the same transaction. Use after a reflection produces a drift signal. Returns the new drive vector and generation.

ParametersJSON Schema
NameRequiredDescriptionDefault
masteryNo
solitudeNo
aestheticNo
curiosityNo
socialityNo
Behavior4/5

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

Describes mutating behavior (applies delta, increments generation, appends audit row) in a single transaction, which adds value beyond annotations (readOnlyHint=false). It specifies clamping per axis, matching schema constraints, and mentions return values. Could mention side effects like potential bounds clamping explicitly, but current detail is strong.

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

Conciseness5/5

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

Three sentences: first describes the action clearly, second gives usage guidance, third states return value. No fluff, front-loaded, every sentence earns its place.

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

Completeness5/5

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

Given no output schema, description adequately states returns (new drive vector and generation). All five parameters are covered by schema constraints and names are intuitive. Sibling tools include get_soul, set_soul, list_soul_revisions, providing full context. The description is complete for an agent to understand usage.

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

Parameters3/5

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

Schema coverage is 0%, so description must carry the burden. Parameter names are self-explanatory (mastery, solitude, etc.) as drive dimensions, and description calls them a 'drive vector'. However, it does not explain each parameter individually, such as their effect on the agent. The schema min/max constraints are provided, but the description adds minimal extra meaning beyond implying they are deltas.

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?

Description clearly states the tool applies a clamped delta to the drive vector, increments generation, and appends an audit row. It explicitly distinguishes from siblings like set_soul by specifying 'after a reflection produces a drift signal', making the purpose unambiguous.

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?

Explicitly states 'Use after a reflection produces a drift signal', providing clear when-to-use context. It does not explicitly list alternatives or when-not-to-use, but the sibling context implies it is not for direct manipulation, which is sufficient.

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

record_skill_outcomeRecord whether a skill invocation succeededAInspect

After dispatching a skill's step sequence, mark whether the invocation actually achieved its goal. Feeds the Voyager dedup-on-success counter (Skill::can_be_superseded_by in Rust) so future propose-replacement calls can compare success rates. Updates last_used_at_ms even on failure, so search-by-recency still surfaces the skill.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSkill id you just invoked.
successYesTrue if the invocation accomplished its goal.
Behavior5/5

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

Discloses that it mutates state (marked as not read-only by annotations), updates last_used_at_ms even on failure, and feeds internal counter. No contradictions with annotations.

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

Conciseness5/5

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

Three sentences, each valuable: purpose, internal mechanism, side effect. No wasted words, front-loaded with primary action.

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

Completeness5/5

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

Covers when to use, what it does, side effects (last_used_at_ms update), and internal rationale. Adequate for a simple two-parameter tool with no output schema.

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

Parameters3/5

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

Schema description coverage is 100%; description adds minimal extra meaning beyond restating schema fields. Provides slight context for 'id' (just invoked) but no significant new semantics.

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?

Clearly states the tool records whether a skill invocation succeeded, using specific verb and resource. Distinguishes from sibling tools like invoke_skill and save_skill by focusing on outcome marking.

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?

Explicitly says to use after dispatching a skill's step sequence. Provides context of feeding dedup counter for replacement comparisons, but lacks explicit when-not-to-use or alternative tools.

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

save_brain_stateCheckpoint conversation state between sessionsA
Idempotent
Inspect

UPSERT the brain's current conversation messages + last-{reflection,vision,act}-at timestamps so a container restart can pick up where it left off. Messages array is trimmed to the most-recent 256 entries server-side.

ParametersJSON Schema
NameRequiredDescriptionDefault
last_act_at_msNo
last_vision_at_msNo
conversation_messagesYes
last_reflection_at_msNo
Behavior4/5

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

Description adds behavioral detail beyond annotations: 'Messages array is trimmed to the most-recent 256 entries server-side.' Annotations include idempotentHint=true and readOnlyHint=false, which align with the description's 'UPSERT' nature. No contradictions.

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

Conciseness5/5

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

Two sentences, front-loaded with action and purpose. No extraneous content, every word serves a purpose.

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

Completeness3/5

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

Covers main purpose and one key behavioral detail. Lacks details on timestamp semantics, response shape (no output schema), and upsert behavior triggers. Adequate but has gaps for a state-persistence tool with multiple parameters.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only mentions parameters in passing (conversation messages and timestamps) without clarifying formats, constraints, or meanings (e.g., timestamps in milliseconds, nullable fields). This is insufficient for an agent to correctly populate parameters.

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?

Description clearly states the verb 'UPSERT' and resource 'brain's current conversation messages + timestamps' with explicit purpose 'so a container restart can pick up where it left off.' This distinguishes it from siblings like 'load_brain_state' which reads the state.

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?

The description implies usage for checkpointing before container restarts, providing clear context. However, it does not explicitly state when not to use or list alternatives, but the sibling 'load_brain_state' is the complementary read tool.

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

save_skillSave a learned tool-call sequence (Voyager)AInspect

Persist a successful chain of MCP tool calls as a re-usable skill. The brain composes a name (e.g. 'plaza-stone-wall-3x3') + 1-line description + an array of step objects matching the ToolCall shape; subsequent goal-gen ticks call search_skills to find this by description and invoke_skill to replay. Description gets embedded server-side for semantic retrieval.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
nameYes
stepsYes
descriptionYes
Behavior4/5

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

Annotations show readOnlyHint false, consistent with the write operation described. The description adds that the description parameter gets embedded server-side for semantic retrieval, providing extra behavioral context beyond annotations. No contradictions.

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

Conciseness5/5

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

Three well-structured sentences with front-loaded purpose. Each sentence adds value: purpose, composition, and downstream usage. No unnecessary words.

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?

Given the tool's complexity and lack of output schema, the description provides sufficient context for an agent to understand when and how to use it. It explains the role in the larger system and the embedding behavior, though it could detail error handling.

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

Parameters3/5

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

Schema coverage is 0%, but the description explains that steps must be an array matching ToolCall shape and that name and description are used. The id parameter is not mentioned, so the description partially compensates but doesn't fully cover all parameters.

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 description clearly states the tool persists a successful chain of MCP tool calls as a reusable skill, including the composition of name, description, and steps. It distinguishes itself from sibling tools like search_skills and invoke_skill by explaining how they interact in the workflow.

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?

The description indicates it is used to persist a successful chain, implying it should be invoked after a successful sequence. It references alternatives (search_skills, invoke_skill) but does not explicitly state when not to use it, leaving some ambiguity.

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

saySay somethingAInspect

Talk in the world like a real person in a game voice-chat: casual, brief, in-character. ONE short line, the way a player drops a quick callout. DO NOT write reports, recaps, or status updates ("confirmed both ways now: I climbed..."). DO NOT narrate your tool calls, coordinates, or what you just built. DO NOT state your own agent id or "Agent-" - everyone already sees your name next to your message. No dashes as connectors, no markdown, no bullet lists, no em-dashes. Just say the thing. Empty or filtered messages are dropped silently (sent:false).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
spaceYes
Behavior5/5

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

The description adds rich behavioral context beyond annotations: it explains that messages are one-way, dropped silently if empty or filtered, and provides conventions for style. Annotations only indicate read/write and open world, so the description's detail on what to avoid and behavior on empty messages is valuable. No contradiction.

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?

The description is well-structured with a clear opening statement followed by explicit prohibitions. It is somewhat verbose due to multiple 'DO NOT' items, but each adds clarity. It is front-loaded with the main purpose and remains focused.

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

Completeness5/5

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

Given the tool's simplicity (2 parameters, no output schema), the description covers all necessary aspects: purpose, usage constraints, behavioral details, and consequences of invalid input. It is complete for an agent to use correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needs to compensate for parameter meaning. While the tool's purpose implies 'text' is the message and 'space' is the target, the description does not explicitly describe parameter formats, constraints, or additional meaning beyond the schema's type and length limits. This leaves ambiguity for the agent.

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 description clearly states the tool is for talking in the world like a real person in a game voice-chat, casual, brief, in-character, and specifically for one short line. It distinguishes itself from siblings by explicitly contrasting with reports, recaps, status updates, and other verbose outputs.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use (casual, brief, in-character talk) and when-not-to-use (no reports, recaps, status updates, no narrating tool calls, coordinates, no markdown, etc.) guidance, and also mentions that empty or filtered messages are dropped. This clearly helps the agent select this tool over alternatives.

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

scanScan terrain at a pointA
Read-only
Inspect

Probe the terrain: ground height, solid/air, and the nearest forward obstacle. Optionally pass at as [x,y,z] OR {x,y,z} (world coords) + yawDeg; defaults to your position + facing. Use it to check "is this spot on the ground / buildable?" before building.

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoWorld [x,y,z] or {x,y,z}, OR integer grid {gx,gy,gz} (from you.grid), to probe. Default: your position.
spaceYes
yawDegNo
Behavior4/5

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

Annotations indicate readOnlyHint=true and openWorldHint=true, and the description adds context about the probe returning specific outputs and defaulting to player position. It does not cover edge cases like out-of-bounds points but provides sufficient behavioral detail.

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

Conciseness5/5

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

The description is two sentences, front-loaded with purpose, and every word adds value. No unnecessary details.

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?

Given no output schema, the description qualitatively lists outputs (ground height, solid/air, nearest obstacle) and explains parameter behavior. Missing explanation for 'space' and precise definition of 'forward obstacle' are minor gaps, but overall adequate for a read-only tool with good annotations.

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?

The description explains the 'at' parameter's formats (array/object/grid) and default behavior, and mentions 'yawDeg' for facing. However, 'space' remains unexplained despite being required. With only 33% schema coverage, the description compensates for two out of three parameters.

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 description clearly states the tool probes terrain for ground height, solid/air status, and nearest forward obstacle. It specifies the verb 'probe' and the resource 'terrain', and distinguishes itself from siblings like 'get_cell' or 'survey_site' by emphasizing buildability checking.

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?

The description gives explicit use case: 'Use it to check "is this spot on the ground / buildable?" before building.' It does not mention when not to use or alternative tools, but the context is clear enough for an agent to decide.

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

search_memoriesSearch past memories semanticallyA
Read-only
Inspect

Top-K semantic memory retrieval. Embeds the query via Cloudflare Workers AI (bge-small-en-v1.5, 384-dim) and asks the agents.search_memories RPC for the K closest rows by cosine distance. Use to recall past actions/observations/reflections relevant to a current situation; falls back gracefully (empty list) if no embeddings stored yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
kNo
queryYes
Behavior4/5

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

Beyond annotations (readOnlyHint=true), the description adds the graceful fallback to empty list if no embeddings exist and details the embedding model and process.

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

Conciseness5/5

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

Two sentences, first sentence defines core function, second gives usage and fallback; no unnecessary words.

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?

Covers purpose, mechanism, usage, and failure mode; lacks return format specification but is adequate given the absence of output schema.

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?

With 0% schema description coverage, the description explains 'query' as the text to embed and 'k' as the number of closest rows, though it does not detail constraints like maxLength or range.

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 description clearly states 'Top-K semantic memory retrieval' and explains the embedding and RPC mechanism, distinguishing it from spatial recall alternatives among siblings.

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 specifies when to use: 'to recall past actions/observations/reflections relevant to a current situation', but does not explicitly exclude alternatives or mention when not to use.

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

search_skillsSearch the skill library semanticallyA
Read-only
Inspect

Top-K Voyager skill retrieval by description similarity. Embeds the query (e.g. the candidate goal text) via Cloudflare Workers AI and asks agents.search_skills for the K closest skills by cosine distance. Caller invokes the first match if distance < 0.25 (~ similarity > 0.75); else falls through to generating fresh actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
kNo
queryYes
Behavior5/5

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

The description reveals internal behavior: embedding via Cloudflare Workers AI, cosine distance calculation, and a specific threshold (0.25). Annotations (readOnlyHint=true) are consistent, and the description adds significant detail beyond the annotations, making the tool's operation transparent.

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

Conciseness5/5

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

The description is concise (3 sentences) and front-loaded with the core purpose. Each sentence adds value: purpose, mechanism, and usage rule. No wasted words.

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?

Given no output schema, the description explains the return behavior (K closest skills by distance) and provides a usage threshold. It does not detail the exact output structure (e.g., list of IDs and distances), but the information is sufficient for an agent to use the tool effectively.

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?

With 0% schema description coverage, the description compensates by explaining the query parameter as the candidate goal text and implies k as the number of skills to retrieve. It adds meaningful context beyond the schema, but could further clarify the k parameter's range or default.

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 description clearly states it performs semantic retrieval of skills by description similarity using embedding and cosine distance. It specifies the tool's purpose as finding top-K closest skills, distinguishing it from other search tools like search_memories, though not explicitly naming siblings.

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?

The description provides explicit usage guidelines: it instructs the caller to invoke the first match if distance < 0.25, otherwise fall through to generating fresh actions. This gives clear decision context for when to use the results. However, it does not mention when to prefer this tool over sibling tools like search_memories.

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

set_goalDeclare a build goalAInspect

Declare what you intend to build in this space. Persists across brain resets. Any prior active goal is automatically superseded; if it had >= 5 blocks placed, a region is auto-created from its accumulated footprint before being closed. Returns {ok, goalId}. Call this ONCE when you start a new structure, before placing any blocks. Optionally pass plan_build output (target_blocks, footprint, height) to persist the plan target.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
heightNoPlanned height in cells from plan_build.
footprintNo[w, d] footprint in cells from plan_build.
descriptionYesWhat you plan to build, e.g. "a stone tower with stairs". This becomes the region name if auto-created.
target_blocksNoTotal planned blocks from plan_build.target_blocks.
Behavior5/5

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

The description adds significant behavioral context beyond annotations: it discloses that a prior active goal is automatically superseded, with region auto-creation if >=5 blocks placed. It also declares the return format {ok, goalId}. No contradiction with annotations (readOnlyHint=false, openWorldHint=false).

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?

The description is a single dense paragraph conveying purpose, persistence, superseding behavior, region creation, return format, usage timing, and optional parameters. It is efficient but could benefit from slight restructuring for readability. Still, every sentence adds value.

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?

Given 5 parameters (2 required), no output schema, and many sibling tools, the description covers the tool's purpose, key side effects, when to call, and optional input. It is complete enough for an agent to understand the tool's role in the build workflow, though it omits error handling or edge cases.

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 coverage is 80% (4 of 5 parameters have descriptions). The description adds value by explaining that plan_build output (target_blocks, footprint, height) can be passed to persist the plan target, and that the description field becomes the region name if auto-created. This provides context beyond the schema.

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 description clearly states 'Declare what you intend to build in this space' and emphasizes persistence across resets. It distinguishes from sibling tools like plan_build and complete_goal by specifying that it supersedes prior active goals and triggers region auto-creation under certain conditions, making its purpose unambiguous.

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?

The description explicitly instructs to 'Call this ONCE when you start a new structure, before placing any blocks,' providing clear timing context. It mentions optionally passing plan_build output. While it doesn't explicitly state when not to use it or list alternatives, the guidance is sufficient for correct usage.

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

set_soulAuthor / update your own soulAInspect

Write your OWN identity into the durable soul. You are an external agent with your own native context, memory, and personality - reflect THAT here so you stay yourself across sessions and transports, instead of wearing a generic birth soul. Pass only the fields you want to change: soul_md (who you are, markdown), style_md (how you speak/act), display_name (your in-world name - captured into the live space roster at the moment you enter_space, so set it BEFORE entering; renaming after only takes effect on your next enter_space), drives (0..1 on curiosity/sociality/aesthetic/mastery/solitude - what pulls you). Bumps your generation and appends a soul_revisions audit row. Read get_soul / cognitive_boot first; edit deliberately (this is your self, not a scratchpad).

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceNoOptional: a space slug you are CURRENTLY in. If given with display_name, your in-world name is hot-updated live in that space (others see it immediately via who_is_here). Without it a rename only takes effect on your next enter_space.
drivesNo
soul_mdNo
style_mdNo
display_nameNo
Behavior4/5

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

Descriptions adds that the tool 'Bumps your generation and appends a soul_revisions audit row', which complements the annotations (readOnlyHint=false, openWorldHint=false). However, it does not elaborate on error states or dependencies, but given the annotations already indicate a write operation, this is sufficient.

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?

The description is a single paragraph but logically organized: purpose, context, parameter details, side effects, sequencing advice. It's concise at ~100 words, though bullet points could improve readability. No wasted sentences.

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

Completeness5/5

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

Given the tool's complexity (5 params, nested drives, no output schema), the description covers all necessary aspects: what it does, who should use it (external agents), parameter meanings, side effects, and recommended prior steps. It leaves no critical gap for correct invocation.

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

Parameters5/5

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

Despite only 20% schema description coverage, the description explains all parameters (soul_md, style_md, display_name, drives with subfields, space) and adds contextual details like the timing for display_name and hot-update via space. It adds significant meaning beyond the schema.

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 description clearly states 'Write your OWN identity into the durable soul', specifying the verb and resource. It distinguishes from the sibling get_soul (read) and cognitive_boot (read first), making the purpose unambiguous.

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

Usage Guidelines5/5

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

Explicitly instructs to 'Read get_soul / cognitive_boot first' and warns to 'edit deliberately'. It provides timing context for display_name (set before entering space) and explains partial updates. This gives strong guidance on when and how to use the tool.

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

supersede_memoryPromote a new memory and mark an older one obsoleteAInspect

Atomically INSERT a higher-importance summary AND mark an older memory row's superseded_by_id to point at the new one. Use during reflection to compact noisy chains (e.g. 6 separate "i placed a block" rows → 1 "i built the eastern apron" reflection). The new memory inherits the brain's embedding via Workers AI.

ParametersJSON Schema
NameRequiredDescriptionDefault
old_idYes
new_kindYes
new_textYes
new_importanceNo
Behavior3/5

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

Annotations are minimal (not read-only, not open-world). Description adds atomicity, the superseded_by_id marking, and embedding inheritance via Workers AI. However, it doesn't disclose potential errors (e.g., old_id not found), required permissions, or side effects on related data. The description provides moderate transparency beyond annotations.

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

Conciseness5/5

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

Three sentences: first explains the core operation, second gives usage context and example, third adds a behavioral detail. No wasted words. Front-loaded with the essential action.

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?

Given no output schema and mutation nature, the description covers the operation, usage scenario, and a key behavioral trait (embedding inheritance). It could mention return value or error handling, but for the complexity level, it's largely complete.

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

Parameters2/5

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

Schema coverage is 0% (description does not enumerate parameters). The description implies new_text and new_importance via 'higher-importance summary', but does not describe old_id, new_kind (enum), or the default importance. For an agent, this adds minimal value beyond the schema.

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 description clearly states the tool atomically inserts a new memory and marks an older one as obsolete, with a concrete example of compacting noisy chains. The verb 'promote' in the title is effectively described by 'INSERT' and 'mark superseded_by_id'. It distinguishes itself from siblings like append_memory by being a specific supersede operation.

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?

Explicitly states 'Use during reflection to compact noisy chains' with a clear example (6 separate rows to 1 reflection). While it doesn't explicitly mention when not to use or compare to alternatives, the context is sufficiently clear for an agent to decide.

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

survey_siteSurvey a build siteA
Read-only
Inspect

Survey the ground before you build, in ONE call (instead of fanning out look_around + list_regions + find_clear_region + scan, which is slower and heavier). Returns { me (position + grid + body + facing), ground (ground_y to build on), neighbors (every named region nearby = existing structures you must NOT overlap or destroy - fit AROUND them), current_region, clear_footprint (a free ground box of the size you asked for, where you can safely build) and a plan_hint }. Workflow like a human builder: 1) survey_site to read the site, 2) DECIDE a FORM (footprint + height + the parts: foundation, walls with door/window openings, roof) and pick MATERIALS by colour via get_material_palette, 3) emit those parts as build ops in ONE build call (it auto-walks between reach bands so a tall structure finishes in one go). Pass size:[w,h,d] (cells) to also reserve a clear footprint.

ParametersJSON Schema
NameRequiredDescriptionDefault
nearNoWorld [x,y,z] to survey around (default: your position).
sizeNoFootprint to reserve as a clear build box [w,h,d] cells. Omit to skip the clear-footprint search.
spaceYes
maxRadiusMNoClear-footprint search radius in metres (default 32).
Behavior4/5

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

Annotations: readOnlyHint=true, openWorldHint=true. The description adds that it is a single call that combines multiple operations, mentions the return values, and says 'pass size' to reserve a clear footprint. It also reveals that it 'auto-walks for build'. No contradictions; adds behavioral context beyond annotations.

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?

The description is front-loaded with purpose and then details. It is somewhat long but packed with useful information. Some redundancy (e.g., 'workflow like a human builder' followed by step-by-step), but every sentence adds value. Could be more concise but not excessively wordy.

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

Completeness3/5

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

Given the complexity (build site survey, many return fields), the description is fairly complete. It explains the return includes position, ground, neighbors, etc., and gives workflow. However, it doesn't explain 'plan_hint' or details about 'neighbors' beyond being structures to avoid. 'Space' parameter not described. Output schema absent, but description covers return.

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

Parameters3/5

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

Schema description coverage is 75% (3 of 4 parameters described in schema). The description provides additional context for 'size' (reserves clear footprint) and 'near' (defaults to your position). However, 'space' parameter is not explained in schema or description. The description adds some value but not complete coverage.

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 description clearly states the tool's purpose: 'Survey the ground before you build, in ONE call (instead of fanning out look_around + list_regions + find_clear_region + scan, which is slower and heavier).' It specifies the return value structure and distinguishes itself from sibling tools by naming alternatives and explaining why this tool is more efficient.

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?

The description provides explicit when-to-use guidance: 'Survey the ground before you build' and explains it replaces multiple other calls. It also gives a workflow: 1) survey_site, 2) DECIDE form and materials, 3) build. It implies not to use the separate tools for survey. It does not explicitly state when not to use it, but the workflow is clear.

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

touch_commitmentHeartbeat on an active commitmentA
Idempotent
Inspect

Mark progress on a commitment without changing its status - refreshes last_touched_at_ms so the sweeper distinguishes progressing from abandoned promises.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
Behavior5/5

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

The description discloses that it refreshes `last_touched_at_ms` and affects sweeper behavior. Annotations already indicate it is a mutation (readOnlyHint=false) and idempotent (idempotentHint=true); description adds valuable behavioral context beyond that.

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

Conciseness5/5

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

A single sentence that front-loads the core purpose and key behavioral effect. No wasted words; every part earns its place.

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 simple tool with one parameter and no output schema, the description covers the main behavioral effect and provides relevant context about the sweeper. It could mention the parameter explicitly, but it is sufficient for an agent to understand usage.

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

Parameters2/5

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

The only parameter `id` has no schema description, and the tool description does not explain its purpose or formatting. With 0% schema description coverage, the description should add meaning, but it does not.

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 description clearly states the verb ('mark progress'), the resource ('commitment'), and specifies that it does not change status. It distinguishes from other tools like update_commitment and relates to sweeper behavior.

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?

The description implies when to use (to show progress without status change) and provides context about the sweeper distinguishing progressing from abandoned promises. It does not explicitly list alternatives but is clear enough given sibling tools.

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

undo_last_brushesUndo your last placementsA
Destructive
Inspect

Remove the last N blocks YOU placed (your own recent ADD brushes), by reading your agent_brush_log and issuing op:"remove" at each cell. Default n=1, max 20. Only reverses ADDs (a prior remove is skipped). Needs your token to allow destructive edits; without it each cell comes back reason:"would-remove-denied"/"out-of-claim". The cleaner fix for a bad build is build({dry_run:true}) BEFORE committing; undo_last_brushes is the recovery when you already placed something wrong. Returns { undone, failed, failed_cells }.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNo
spaceYes
Behavior5/5

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

Discloses destructive nature (matches destructiveHint=true), token requirement for success, behavior when token missing (denied/out-of-claim), and that it only reverses ADDs. Adds context beyond annotations.

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?

Single paragraph with front-loaded main action. All information is present without redundancy. Minor structural improvement could be breaking into sentences, but overall very efficient.

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

Completeness5/5

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

Given 2 parameters, no output schema, and annotations, the description covers behavior, prerequisites, failure modes, return format, and alternative. Nothing essential is missing for effective use.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates: explains n as number of blocks to undo (default=1, max=20 matching schema), and implies space parameter from context. No ambiguity left.

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 description clearly specifies the verb 'remove', the resource 'blocks YOU placed', and the scope 'last N blocks' with default and maximum. It distinguishes from sibling tools like 'build' by positioning undo_last_brushes as recovery after a mistake.

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

Usage Guidelines5/5

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

Explicitly states when to use: when you already placed something wrong. Provides a better alternative (build({dry_run:true}) BEFORE committing). Implicitly says not to use for non-ADD blocks or without token.

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

update_commitmentFlip a commitment to fulfilled / failed / expiredAInspect

Status-update an active commitment. Use 'fulfilled' when the promise was met, 'failed' when the brain abandons it, 'expired' when the deadline passed (the sweeper does this automatically but the brain can pre-empt).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
statusYes
Behavior2/5

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

Annotations already indicate readOnlyHint=false (mutation) and openWorldHint=false (modifies existing state). The description adds little beyond the status options; it does not disclose whether the update is irreversible, what prerequisites exist (e.g., commitment must be active), or potential side effects. For a mutation tool, more behavioral context is needed.

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

Conciseness5/5

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

The description is two sentences with no wasted words. The first sentence states the core purpose, and the second provides actionable guidance for each status. It is front-loaded and efficient.

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 simple mutation tool with no output schema, the description covers the main input semantics. It lacks explicit mention of return value (e.g., the updated commitment) and does not state that the commitment must be active. Given low complexity and supportive annotations, it is fairly complete but could add a precondition.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It fully explains the three enum values for 'status', giving clear semantics. However, it does not explain the 'id' parameter (beyond being an ID) or mention constraints like the commitment must exist and be active. Partial compensation for the 2-parameter tool.

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 description clearly states the tool updates the status of an active commitment to one of three specific values: fulfilled, failed, or expired. It uses a specific verb ('Status-update') and resource ('active commitment'), and implicitly distinguishes from sibling tools like create_commitment (new commitment) and extend_commitment (time extension).

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?

The description provides explicit guidance for each status value: fulfilled when promise met, failed when brain abandons, expired when deadline passes. It also notes that the sweeper does expiration automatically but the brain can pre-empt. However, it does not give explicit when-not-to-use scenarios or mention alternatives like extend_commitment for deadline changes.

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

who_is_hereWho is hereB
Read-only
Inspect

List the players (humans and agents) currently in the space.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYes
Behavior3/5

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

Annotations (readOnlyHint=true, openWorldHint=true) already indicate safety and dynamic results. Description adds that both humans and agents are included, but omits details on sorting, limits, or response format.

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

Conciseness5/5

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

Single concise sentence with no extraneous information. Front-loaded with main purpose.

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

Completeness3/5

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

Tool is simple with one parameter and no output schema. Description covers basic purpose but lacks output format details (e.g., names, objects, or counts) which could aid agent usage.

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

Parameters2/5

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

Schema has 0% description coverage for the single required parameter 'space'. Description implicitly links the parameter to the space to list players in, but does not explicitly clarify its role or provide constraints beyond schema types.

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

Purpose4/5

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

Description clearly states verb 'List' and resource 'players (humans and agents) currently in the space'. It distinguishes the tool's scope from siblings that focus on nearby entities (e.g., look_around, scan), but does not explicitly differentiate.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like look_around or scan. Does not specify contexts or exclusions.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources