Skip to main content
Glama

manage_behaviors

Register, list, get, or synthesize immutable JSON behavior tree definitions with SHA-256 hash verification to version behavior structures without executing them.

Instructions

Manage immutable JSON behavior tree definitions with SHA-256 hash verification (actions: register, list, get, synthesize). Use manage_behaviors instead of load_behavior when defining, versioning, or synthesizing behavior tree structures rather than executing them.

Returns tree definition, version metadata, SHA-256 content hash, or synthesis DAG.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoBehavior tree name
treeNoBehavior tree JSON object
stepsNoSteps or actions to synthesize into a behavior tree
actionYesBehavior definition management operation: register, list, get, synthesize
projectNoTarget project slug
versionNoTree version
strategyNoRoot composition strategy for synthesize action (default: sequence)
tree_jsonNoRaw behavior tree JSON string
descriptionNoTree description
client_request_idNoIdempotency key

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.3.1
    • addedInput schema / properties / action / enum
      Added value: +[
      +  "register",
      +  "list",
      +  "get",
      +  "synthesize"
      +]
  2. Changed15 schema fields changedv0.2.1
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / action / description
      Added value: +"Behavior definition management operation: register, list, get, synthesize"
    • removedInput schema / properties / action / enum
      Removed value: -[
      -  "register",
      -  "list",
      -  "get"
      -]
    • addedInput schema / properties / client_request_id / description
      Added value: +"Idempotency key"
    • addedInput schema / properties / description / description
      Added value: +"Tree description"
    • addedInput schema / properties / name / description
      Added value: +"Behavior tree name"
    • addedInput schema / properties / project / description
      Added value: +"Target project slug"
    • addedInput schema / properties / steps
      Added value: +{
      +  "description": "Steps or actions to synthesize into a behavior tree",
      +  "items": {
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / strategy
      Added value: +{
      +  "description": "Root composition strategy for synthesize action (default: sequence)",
      +  "enum": [
      +    "sequence",
      +    "selector",
      +    "parallel"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / tree / additionalProperties
      Removed value: -true
    • addedInput schema / properties / tree / description
      Added value: +"Behavior tree JSON object"
    • removedInput schema / properties / tree / properties
      Removed value: -{}
    • addedInput schema / properties / tree_json / description
      Added value: +"Raw behavior tree JSON string"
    • addedInput schema / properties / version / description
      Added value: +"Tree version"
  3. First observedv0.1.2

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, and the description adds meaningful context: definitions are 'immutable' and content is SHA-256 verified. However, it never distinguishes which of the four actions mutate state (register/synthesize) versus which are reads (list/get), nor mentions the idempotency key parameter despite idempotentHint=false. With annotations covering the safety profile, the added value is real but partial.

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-loaded with purpose and action enumeration followed by the sibling rule and return values. Slight redundancy in restating the tool name in the second sentence, but otherwise efficient and well ordered.

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?

Compensates for the absent output schema by naming return shapes ('tree definition, version metadata, SHA-256 content hash, or synthesis DAG'). For a 10-parameter, nested-object, multi-action tool, the remaining gap is the lack of per-action parameter guidance, since different actions clearly need different subsets of the 10 fields.

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% across 10 parameters, so the schema documents each field's type, enum, and meaning. The description adds no per-action parameter mapping (e.g., which of tree/tree_json/name/steps are required for register vs. synthesize), leaving the schema to do all the work. Baseline 3 is appropriate when the schema carries this burden.

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?

States a specific verb+resource ('Manage immutable JSON behavior tree definitions with SHA-256 hash verification') and enumerates the four supported actions, so the agent understands this is a multi-action dispatcher rather than a single operation. It also explicitly contrasts itself with the sibling load_behavior, making it distinguishable without opening either schema.

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?

Names the alternative tool (load_behavior) and the exact condition that selects this one: 'when defining, versioning, or synthesizing behavior tree structures rather than executing them.' That is an explicit when-to-use vs. alternative statement, which is the top of the scale.

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