Skip to main content
Glama

sage_turn

Call each conversation turn to recall consensus-committed memories for the current topic and store an observation of what just happened, building persistent episodic context across sessions.

Instructions

Per-conversation-turn memory cycle. Call this EVERY turn. It does two things atomically: (1) Recalls consensus-committed memories relevant to the current topic (so you have context), and (2) Stores an observation about what just happened in this turn (so future-you has context). It also returns a payload-free message_inbox_unread flag/count; call sage_inbox with a fresh poll when true so exact, provider-addressed, and federated work share one claiming surface. sage_turn never claims or embeds message payloads. Exact-domain recall transparently checks currently authorized connected SAGEs and reports an actionable federation miss when none expose it. This builds episodic experience turn-by-turn, like human memory — not a context window dump. When domain is omitted, app-v23 uses this agent's approved owned home domain (older nodes use general). Pass an explicit domain only when you intentionally want that exact readable/writable domain; it is never silently remapped.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
topicYesWhat the current conversation is about — used for contextual recall
domainNoExact knowledge domain. Omit to use your approved app-v23 owned home domain (legacy nodes use general). Explicit values are never silently remapped.
observationNoWhat happened this turn — the user's request and key points of your response. Keep it concise but capture the essential insight.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv11.16.2
    • changedInput schema / properties / domain / description
      Previous value: -"Knowledge domain — create dynamically based on the topic (e.g. 'rust-async', 'user-preferences', 'sage-architecture'). Don't reuse 'general' when a specific domain fits better."New value: +"Exact knowledge domain. Omit to use your approved app-v23 owned home domain (legacy nodes use general). Explicit values are never silently remapped."
  2. Addedv11.13.9
  3. Removedv11.13.8
  4. Addedv11.13.0
  5. Removedv11.9.2
  6. Addedv8.1.0
  7. Removedv8.0.0
  8. Addedv7.6.1
  9. Removedv7.5.9
  10. First observedv4.5.2

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden. It discloses atomic behavior, the two actions, the payload-free nature, and that it 'never claims or embeds message payloads.' It also explains federation checking and the actionable miss report. It clarifies the memory model as 'episodic experience turn-by-turn' and not a context dump. All behaviors are clearly disclosed.

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 densely packed but front-loaded with the call directive. It contains some non-essential metaphorical language ('like human memory — not a context window dump') and a long tail about federation and message surfaces. However, every sentence carries information relevant to using the tool correctly, so it earns a 4 for structure over 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?

The description provides all necessary context: when to call, what it does, how to pass the domain, what the flag means, and the follow-up action (sage_inbox). It covers edge cases like domain omission and legacy nodes. No output schema exists, so not explaining return values beyond the flag is acceptable. The tool is complex, and the description is sufficient for an agent to call it 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?

Although schema coverage is 100%, the description adds significant meaning beyond the schema. For 'domain', it explains the app-v23 vs legacy behavior and the no-remapping guarantee, which is critical for correct usage. For 'observation', it advises 'Keep it concise but capture the essential insight.' These enrich the schema definitions.

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 a specific verb and resource: 'Per-conversation-turn memory cycle' that does two atomic operations: recall and store. It distinguishes itself from siblings by explicitly stating it is a per-turn cycle and never claims message payloads. The mention of the message_inbox_unread flag separates it from sage_inbox.

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?

It explicitly instructs 'Call this EVERY turn' and provides a clear condition for when to invoke sage_inbox based on the flag. It also gives parameter-level guidance: 'Omit to use your approved app-v23 owned home domain' and warns against passing an explicit domain unless intentional, with the note that values are never silently remapped. This is explicit and actionable.

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