Gralkor.Distill (jido_gralkor v4.1.0)

Copy Markdown View Source

Render a list of conversation turns into the transcript episode body ingested into the knowledge graph.

The transcript keeps only user/assistant text. Behaviour (the agent's reasoning, tool calls, tool results) is never woven in: a turn marked for experiential learning routes its reasoning into a separate Gralkor.AgentLearning episode (see Gralkor.Learn), and non-ERL turns drop it. Rendering is pure — there is no LLM call.

See ex-format-transcript in TEST_TREES.md.

Summary

Functions

Render turns (a list of turns; each turn a list of canonical Messages) into the transcript episode body — user and assistant lines only.

Types

turn()

@type turn() :: [Gralkor.Message.t()]

Functions

format_transcript(turns, agent_name, user_name)

@spec format_transcript([turn()], String.t(), String.t()) :: String.t()

Render turns (a list of turns; each turn a list of canonical Messages) into the transcript episode body — user and assistant lines only.

agent_name labels assistant lines ("Susu: hello"); user_name labels user lines ("Eli: hi"). Both are required and non-blank — the transcript is fed to graphiti's entity extraction, where a generic "User:" label would collapse every user across the deployment into a single node.