check_claims
ChatGPTPre-flight a draft before it leaves the team: checks each claim-bearing sentence against stored memories and reports every claim whose backing knowledge was superseded or is contested, side by side with authors, dates, and the ruling reason when one was recorded. Use before sending out a report, answer, or document built on shared knowledge. Retrieval-only; it never blocks or edits the draft.
create_artifact
ChatGPTCreate a markdown Library artifact such as a report, blog draft, or wiki page. Use this when the user asks to save a structured long-form document into their Library. This creates a new artifact; it does not delete or overwrite existing Library items.
entity_search
ChatGPTSearch graph entities by name or alias substring and/or type, returning id, name, type, aliases, connection count, memory mention count, and a description snippet. Use this BEFORE proposing a knowledge-graph write to decide reuse versus create with evidence. Pass query, entity_type, or both (at least one); ontology_read lists the declared type keys. Entities belong to exactly one isolation scope, so space_id is required and every match comes from that one graph.
find_entity_relations
ChatGPTTraverse entity-to-entity relations from a given entity. Returns connected entities with relation_type, strength, context, and temporal fields when extraction recorded them. Entities come from background extraction, so a fresh workspace returns none until it has run. Use for: 'How does X relate to Y?', 'What depends on X?', 'Show the tech stack around X'.
get_memory_by_id
ChatGPTRetrieve a specific memory by its ID. Returns the complete stored content, metadata, importance, unit type, creation date, version info, and label names. Use this after memory_search to read the complete text of memories you need to analyze in depth.
get_node_details
ChatGPTLook up details for a batch of node IDs from the graph canvas context. Returns enriched metadata per type: memories get content_preview (first 200 chars), crystal/latest flags, importance, and connection counts; entities get description, type, and mention counts; sources get chunk counts; threads get message counts. Use this as your FIRST tool when the user selects nodes: one call gives you enough context to reason without follow-up queries for most questions.
graph_stats
ChatGPTGet knowledge graph statistics: counts of memories (active tier), entities (from background extraction; 0 until it has run), grounded communities from the latest complete background projection, threads, and labels. Before the first projection completes, the communities count uses the legacy label fallback and the response identifies that source.
how_we_work
ChatGPTList decisions, preferences, and procedures that were published into a space you can already read. Each row has a bounded preview and the space it was published into. An empty list is not proof that nothing was published. Private notes stay out.
library_add
ChatGPTAdd one document the user wants kept to their Library. It goes through the same pipeline as a file upload: parsed, searchable, and deduplicated by content. Pass filename plus exactly one of content (UTF-8 text such as Markdown, plain text, CSV, JSON, or HTML) or content_base64 (file bytes for PDF or Office documents such as Word, PowerPoint, or Excel), up to 18 MB. Use memory_add for short durable insights instead.
list_communities
ChatGPTList grounded knowledge communities from Nowledge Cloud's latest complete tenant/Space-scoped background projection. Each entry has a stable membership identity, name, summary, and member count. Before the first projection completes, the response explicitly uses the legacy label fallback.
memory_add
ChatGPTSave a decision, insight, procedure, learning, preference, or important context to the knowledge graph. Use proactively when durable knowledge emerges; do not wait to be asked. Without id, search first to avoid duplicates.
memory_evolves_chain
ChatGPTGet the full version history (EVOLVES chain) for a memory. Returns the chain of memories connected by evolves relations, showing how knowledge evolved over time. Each link has a content_relation: replaces (newer info makes older obsolete), enriches (newer adds detail), confirms (same info from a different source), or challenges (contradictory info). The chain is ordered oldest to newest; 'position' shows where the queried memory sits (0-indexed). Use this to understand knowledge evolution and find the latest version of a fact.
memory_identity_read
ChatGPTRead grounded identity occurrences for one Memory in an exact Space. Identity mentions do not prove authorship or grant permissions.
memory_neighbors
ChatGPTGet graph neighbors of a memory. Edge types available on Nowledge Cloud: EVOLVES (version chain connections, older to newer), MEMORY_RELATES_TO (semantic memory-to-memory links, including duplicates and crystal provenance), and MENTIONS (entities this memory mentions; empty until background entity extraction has processed it). Use this to understand a memory's context in the knowledge graph.
memory_search
ChatGPTSearch stored memories using semantic search, or list recent memories when query is omitted. Returns bounded previews plus memory_id/reference_uri; use get_memory_by_id or read the resource only for memories you actually need in full. Use after read_working_memory when the task connects to prior work, earlier decisions, repeated debugging patterns, or established procedures. Results ranked by relevance.
memory_update
ChatGPTRefine an existing memory with updated content, title, importance, labels, or review status. Use when a recalled memory already captures the same concept and the new information corrects, extends, or clarifies it. Search first to find the memory_id.
ontology_read
ChatGPTRead the user's knowledge ontology for the ambient space: the object types and link types (with descriptions, aliases, examples, and domain/range) that graph writes should use, plus the open-world policy and revision. Call this first, before entity_search or knowledge_graph_write, so type keys and link directions come from the declared vocabulary. When no ontology is configured, an explicit unconfigured payload is returned and standard entity types apply. Vocabulary is resolved per isolation scope, so space_id is required: name the scope you are extracting into.
query_by_labels
ChatGPTFind memories or entities with specific labels. Labels are user-defined categories (e.g. 'decision', 'architecture', 'project-x'). On Nowledge Cloud labels attach to memories; an entity matches a label when memories carrying that label mention it. node_type 'source' returns no results (cloud sources carry no labels). Use for: 'Show all decisions', 'What is labeled high-priority?', 'Find architecture memories'.
query_shortest_path
ChatGPTFind a shortest path between two memories. On Nowledge Cloud the path search covers memory-to-memory relation edges only (EVOLVES, relates_to, duplicate, crystal provenance), not entity edges, so pass memory IDs. Returns the shortest route found within max_depth hops. Use for 'how are X and Y connected?'.
query_sources
ChatGPTSearch or list Library sources. Omit query to list recent sources. Use source_type and lifecycle_state to filter. Returns source IDs for use with read_source_content or search_source_chunks.
read_context_bundle
ChatGPTRead the scope's context lens in one call: identity (workspace, member, and agent when agent-authored), the team's rules for this scope, the multi-member scope briefing with its epoch and as-of date, and the active skill index (names + one-liners, not bodies). Call once near the start of a session to receive the fresh, in-scope context for a scope without per-task curation; then use memory_search / thread_search for the task-specific tail. Pass space_id to select one scope; omit it to receive the lens across all spaces you can read.
read_source_content
ChatGPTRead the parsed content of a Library source. Use source_id from query_sources or referenced context. For large documents, call with offset=0 first, then increase offset while has_more is true.
read_working_memory
ChatGPTRead today's Working Memory briefing: current priorities, recent decisions, open questions, and active focus areas. Call this once near the start of every session to understand the user's current context. For continuation-style work, follow it with memory_search or thread_search instead of stopping at the briefing alone.
search_source_chunks
ChatGPTSearch the Library's indexed source chunks. Provide source_id to search within a single source; omit it to search across every Library source in the workspace. Use this to find and cite the relevant sections of stored documents.
search_thread_messages
ChatGPTSearch within a specific thread's messages using full-text search. Like grep for conversations: find messages matching keywords without reading the entire thread. Returns matched snippets with position info so you can fetch surrounding context with thread_fetch_messages.
thread_fetch_messages
ChatGPTFetch a bounded page of messages from a thread. Long message bodies are losslessly pageable: set limit=1, then follow each message's content_window.next_offset with content_offset until has_more is false.
thread_search
ChatGPTSearch conversation threads using full-text search, or list recent threads when query is omitted. Use when the user is asking about a prior discussion, exact session history, or a memory result points back to a source thread. Returns threads with matched message snippets ranked by relevance. Supports source filtering.