Skip to main content
Glama

create_hypotheses

Add one or multiple hypothesis nodes with parent dependencies to a research DAG. Validates the entire batch before writing, so rejected calls create nothing.

Instructions

Add one or many hypothesis nodes (with optional parent edges). Pass a list of one to create a single hypothesis. Parents may be created by the same call in any order. The whole batch is validated before anything is written, so a rejected call creates nothing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hypothesesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.6.0-release
    • addedInput schema / properties / hypotheses / items / properties / title
      Added value: +{
      +  "description": "Optional short human label; node_id remains the identity.",
      +  "maxLength": 128,
      +  "type": "string"
      +}
  2. Changed3 schema fields changedv0.5.0
    • addedInput schema / properties / hypotheses / items / properties / estimated_cost
      Added value: +{
      +  "description": "Roughly what testing this will cost, in seconds. A hint for ordering, never a claim about the hypothesis: it changes what gets tried next and never what the belief state asserts, and the first real `duration_s` supersedes it. Worth giving when the competing answers to one question differ in cost — a 30-second unit test against an overnight fine-tune — because the last answer standing is deduced rather than probed, so putting the expensive one last means never paying for it. Omit it when they all cost about the same; ordering is then free of it anyway.",
      +  "exclusiveMinimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / hypotheses / items / properties / exclusion_closed
      Added value: +{
      +  "default": true,
      +  "description": "Whether these are ALL the candidate answers. True (the default) licenses the engine to confirm the last one standing for free once every rival is ruled out — sound over a complete list, and an assertion of something false over a partial one. Pass false when the next candidate always exists: 'which learning rate', 'which prompt wording'. Confirming one member still retires the others either way; only the last-one-standing deduction is withheld.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / hypotheses / items / properties / parent_ids / description
      Previous value: -"Ids this hypothesis is wired to. They may be created by this same call, in any order — dependencies are sorted out for you."New value: +"What this hypothesis RESTS ON — its premises, not its sub-tasks. Edges run from the thing assumed to the thing assuming it, so a premise is the PARENT of the combination that uses it, and a goal is the LAST node in that chain: put the work in the goal's parent_ids, never the goal in the work's. They may be created by this same call, in any order — dependencies are sorted out for you."
  3. First observedv0.3.0

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does usefully disclose batch atomicity: 'The whole batch is validated before anything is written, so a rejected call creates nothing.' It also reveals dependency handling ('Parents may be created by the same call in any order'). This is solid but does not cover permissions, reversibility, or return 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?

Three sentences, front-loaded with the core purpose, and every sentence earns its place: what it adds, how to express a single creation, and the safety-relevant atomicity guarantee. No redundant phrasing or filler.

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 complex creation tool with nested policies (if_exists, is_goal, exclusion groups) and no output schema, the description covers the core operation and atomicity but omits return shape and decision points not already in the schema. The schema's field descriptions help compensate, so this is adequate but not fully complete.

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 description adds useful parameter-level meaning beyond the raw schema: it explains list cardinality ('Pass a list of one') and parent-edge ordering behavior. The schema itself already contains rich nested descriptions for fields like is_goal, if_exists, parent_ids, and exclusion_group, so the description does not need to repeat them, though top-level schema coverage is low.

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 starts with a specific verb and resource: 'Add one or many hypothesis nodes (with optional parent edges).' It clearly distinguishes this from sibling tools like add_edges by scoping the action to creating hypothesis nodes, and clarifies the one-or-many 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?

It gives operational guidance like 'Pass a list of one to create a single hypothesis' and notes that parent edges can be included in the same call, implying when this tool is useful. However, it never explicitly contrasts with sibling tools such as add_edges or states when NOT to use it, so guidance is only implied.

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