Task Memory Retrieval Ops

BuildQueryOp

Purpose

Constructs a query for memory retrieval either from a direct query input or by analyzing conversation messages.

Functionality

  • If a direct query is provided in the context, it uses that query

  • If messages are provided in the context, it can:

    • Use an LLM to generate a query based on the conversation context

    • Or create a simple query from recent messages without using an LLM

Parameters

  • op.build_query_op.params.enable_llm_build (boolean, default: true):

    • When true, uses an LLM to generate a query from conversation messages

    • When false, creates a simple query by concatenating recent messages

RerankMemoryOp

Purpose

Reranks and filters recalled memories to ensure the most relevant memories are prioritized.

Functionality

  • Reranks memories using LLM-based analysis (optional)

  • Filters memories based on quality scores (optional)

  • Returns the top-k most relevant memories

Parameters

  • op.rerank_memory_op.params.enable_llm_rerank (boolean, default: true):

    • When true, uses an LLM to rerank memories based on their relevance to the query

  • op.rerank_memory_op.params.enable_score_filter (boolean, default: false):

    • When true, filters memories based on their quality scores

  • op.rerank_memory_op.params.min_score_threshold (float, default: 0.3):

    • Minimum score threshold for filtering memories when enable_score_filter is true

  • op.rerank_memory_op.params.top_k (integer, default: 5):

    • Number of top memories to retain after reranking

RewriteMemoryOp

Purpose

Rewrites and formats the retrieved memories to make them more relevant and actionable for the current context.

Functionality

  • Formats retrieved memories into a structured format

  • Can use an LLM to rewrite memories to better fit the current context (optional)

  • Generates a cohesive context message from multiple memories

Parameters

  • op.rewrite_memory_op.params.enable_llm_rewrite (boolean, default: true):

    • When true, uses an LLM to rewrite the memories to make them more relevant and actionable

    • When false, simply formats the memories without LLM-based rewriting

MergeMemoryOp

Purpose

An alternative to RewriteMemoryOp that merges multiple memories into a single response without using an LLM.

Functionality

  • Collects the content from all memories in the memory list

  • Formats them into a single response with a standard structure

  • Adds a prompt to consider the helpful parts when answering the question