Supported composition

Build knowledge from completed agent work

Flow

From an installed repository checkout:

python -m examples.quickstarts.agent_knowledge

Mari consumes observable activity after the host runtime has executed it. A caller-supplied model labels the workflow and phases. Mari checks those labels against the event sequence, then validates any proposed memory mutation.

Completed activity to a reviewable knowledge proposal
"""Turn completed tool activity into a validated, reviewable memory plan."""

from mari_kit.knowledge import (
    MemoryDecision,
    MemoryOperation,
    plan_memory_mutations,
)
from mari_kit.trajectories import parse_trajectory_analysis


def run() -> dict[str, object]:
    events = (
        {"name": "search", "args": {"query": "refund policy"}, "ok": True},
        {"name": "read_document", "args": {"document_id": "refunds"}, "ok": True},
        {"name": "approve_answer", "args": {"answer_id": "answer-7"}, "ok": True},
    )
    analysis = parse_trajectory_analysis(
        events,
        {
            "workflow": "Find the current policy, inspect its source, and approve the answer.",
            "activity": "Answer a policy question",
            "category": "support",
            "intent": "resolve_refund_question",
            "rework": 0,
            "phases": [
                {
                    "name": "research",
                    "family": "discover",
                    "start": 0,
                    "end": 1,
                    "substate": "grounding",
                },
                {
                    "name": "review",
                    "family": "approve",
                    "start": 2,
                    "end": 2,
                    "substate": "complete",
                },
            ],
        },
    )
    candidates = {"procedure:refund-answer": analysis.grounded_workflow}
    plan = plan_memory_mutations(
        {},
        candidates,
        {
            "procedure:refund-answer": MemoryDecision(
                operation=MemoryOperation.ADD,
                reason="successful reviewed run",
            )
        },
    )
    return {
        "analysis": analysis,
        "proposal": plan.writes[0],
        "target_id": plan.writes[0].target_id,
    }


if __name__ == "__main__":
    print(run())

The returned mutation plan contains proposed writes. The host can send those proposals through evidence checks, human review, policy evaluation, and its own storage transaction. The host retains runtime and commit authority.

Input

Mari operation

Output

Completed tool events

parse_trajectory_analysis

Validated workflow, intent, phases, and rework

Existing knowledge and candidates

plan_memory_mutations

Add, update, delete, and no-op proposals

Approved plan

Host transaction

Application-owned stored knowledge

Search observed knowledge

Use conversation knowledge when the goal is retrieving lessons and decisions from messages or visible tool observations. Use trajectory mining for process structure and procedural learning for reviewable procedure candidates. These paths retain distinct evidence and promotion gates.