DataGrout.ai Logo
Tool Suite ยท Logic

Memory That Survives.
Reasoning That Doesn't Hallucinate.

Logic is DataGrout's persistent symbolic memory for AI agents. Store facts in natural language or structured maps, query with Prolog precision, define constraints as business rules โ€” all at sub-millisecond latency with zero LLM cost.

10 tools

remember ยท assert ยท query ยท constrain ยท hydrate ยท more

Sub-millisecond

Prolog symbolic layer โ€” no LLM at query time

Cross-session

facts persist across all agent runs

Free to start ยท No credit card required

Ten Tools. One Persistent Knowledge Layer.

From natural language storage to raw Prolog queries, graph traversal, and business rule constraints โ€” Logic handles the full symbolic memory lifecycle.

logic.remember

Natural Language Fact Storage

Store facts as natural language statements or structured key-value pairs. Each fact gets a unique handle for later retraction. Supports batch storage, tags for grouping, namespaces for isolation, and TTL for ephemeral facts.

Best for: Agents that receive information in natural language and need to persist it without writing schemas

Key capabilities

  • Single statement or batch array โ€” same call
  • tag parameter groups related facts (e.g. 'project-alpha', 'contacts')
  • namespace isolates fact spaces โ€” facts never cross boundaries
  • ttl_seconds for ephemeral facts that auto-expire
  • mode: append (default), upsert, or preview (dry-run)
  • Returns handles for targeted retraction later
๐Ÿ’ณ 3 credits (NL translation) ยท instant recall afterward
View logic.remember docs โ†’

What Agents Can Do When They Remember

Logic transforms stateless agents into systems that learn, accumulate context, and enforce policies โ€” across every call and every session.

Cross-Session Agent Memory

LLMs forget everything between calls. Logic gives agents a persistent fact base that survives across sessions, restarts, and model updates โ€” so agents accumulate knowledge over time instead of starting from scratch.

logic.rememberlogic.hydrate

Declarative Business Rule Enforcement

Define rules once ('enterprise customers must have a billing contact before invoicing') and flow.into enforces them automatically before executing matching steps โ€” without modifying each individual workflow.

logic.constrainlogic.query

Adaptive Policy Enforcement with Warden

Store user trust levels, verified contexts, and threat history as logic facts. Warden reads these to apply adaptive security policies โ€” escalate scrutiny for flagged users, relax for verified internal agents.

logic.assertlogic.query

Multi-Agent Shared Knowledge Base

Facts stored in Logic are shared across all agents on the same server within a namespace. One agent discovers a contact, another agent can immediately query it โ€” no re-fetching, no duplication.

logic.assertlogic.querylogic.worlds

Goal-Driven Context Window Priming

Instead of stuffing a full fact base into every LLM call, use logic.hydrate to assemble only the relevant facts for the current goal โ€” within your token budget, as prose or structured JSON.

logic.hydratelogic.reflect

CRM & Relationship Graph Queries

Store entities and relations from CRM data, then traverse the graph with Prolog. Find all companies reachable from an acquisition chain, or all contacts attributed to an enterprise account โ€” in milliseconds.

logic.assertlogic.query
Power-Up Combos

Logic Gets Richer With Other DataGrout Tools

Logic is the shared knowledge layer โ€” every other DataGrout tool can read from it or write to it.

Logic+flow.into

Constraint-Driven Workflow Guardrails

Constraints stored in Logic are checked by flow.into before executing matching steps. Define business rules once โ€” they apply across every workflow without modifying each plan. Declarative enforcement at the orchestration layer.

logic.constrain('require billing_contact') โ†’ flow.into โ†’ [blocked or continued]

โœฆ Business rules that apply everywhere, written once

Logic+warden

Context-Aware Adaptive Defense

Store user trust levels, verified contexts, and multi-turn threat history as logic facts. Warden's intent analysis reads these to apply adaptive policies โ€” escalate scrutiny for flagged users, relax for verified internal contexts.

logic.assert(user_trust_level) โ†’ warden.intent(expected_context from logic)

โœฆ Security policies that evolve with your agent's knowledge

Logic+governor

Passive Fact Enrichment on Every Call

When a Governor session is active, every tool call automatically asserts facts into Logic โ€” tool name, timestamp, success/failure, cache_ref. Over time, agents build a complete audit trail of everything they've done, queryable in real time.

governor.enable โ†’ every tool call โ†’ logic.assert(tool_name, timestamp, result)

โœฆ Zero-effort audit trail โ€” built automatically as agents work

Logic+prism

Natural Language Queries Over Fact Bases

Pipe logic.export or logic.query results through prism.refract or prism.analyze for natural language reasoning over your entire fact base โ€” pattern detection, anomaly surfacing, and narrative summaries without writing Prolog.

logic.export โ†’ prism.analyze(mode='exploratory') โ†’ structured findings

โœฆ LLM reasoning over symbolic facts โ€” the best of both worlds

Conduit SDK

Integrate Logic in Minutes

One import. Facts persist instantly โ€” queryable from any agent, any session.

logic.remember + logic.query ยท Python ยท Conduit SDK
from datagrout.conduit import Client

async with Client(
    "https://gateway.datagrout.ai/servers/{uuid}/mcp",
    auth={"bearer": "your-access-token"}
) as client:

    # Store a fact in natural language
    await client.perform("data-grout@1/logic.remember@1", {
        "statement": "The billing contact for Acme Corp is jane@acme.com",
        "tag": "contacts"
    })

    # Store structured facts in batch โ€” zero LLM cost
    await client.perform("data-grout@1/logic.assert@1", {
        "facts": [
            {"type": "attribute", "entity": "Acme Corp", "attribute": "plan", "value": "enterprise"},
            {"type": "metric",    "entity": "Acme Corp", "metric": "arr",  "value": 2500000},
        ],
        "tag": "contacts"
    })

    # Natural language recall โ€” works across sessions
    result = await client.perform("data-grout@1/logic.query@1", {
        "question": "Who is the billing contact for Acme Corp?"
    })
    print(result["results"][0]["statement"])
    # โ†’ "The billing contact for Acme Corp is jane@acme.com"

Also available in TypeScript, Rust, Elixir, and Ruby. View Conduit SDK โ†’

Frequently Asked Questions

Everything developers ask before integrating Logic.

More questions? Read the full Logic documentation.

Your agents deserve a memory.

Logic is the only symbolic memory layer built for AI agents โ€” persistent facts, Prolog reasoning, and business rule enforcement without a database, schema, or LLM call at query time.

Free to start ยท No credit card required

We use cookies to improve your experience, analyze site traffic, and serve personalized content. By clicking "Accept All", you consent to our use of cookies. See our Privacy Policy for details.

Ask the Advisor