Skip to content

[Question] How is Φ(s_i) implemented for language memory GT annotation? #5

Open

Description

@xiao10ma

Hi Cortex team,

Thanks for sharing this great work and releasing the code!

I have a question about the ground-truth language memory annotation used for System-2 training.

In Section 3.1, the paper defines the memory as:

$$ M^{(t)} = M^{(0)} \oplus \bigoplus_{i=1}^{k-1}\Phi(s_i) $$

where (\Phi(s_i)) encodes the completed state of subtask (s_i).

I understand how the subtask labels and boundaries are obtained, but I'm not clear about how (\Phi(s_i)) is implemented to generate the natural-language memory GT.

In the released cortex/inference/eval_subtask_dataset.py, _get_active_language_memory() appears to read action_config[subtask_id]["language_memory"] directly, so I couldn't find where these annotations are generated.

Could you please clarify:

  1. How is (\Phi(s_i)) implemented? Is it based on deterministic templates/rules, an LLM/VLM, or manual annotation?
  2. How is the accumulated memory constructed? Are completed-subtask descriptions simply concatenated, or is there an additional summarization/compression step?
  3. Would it be possible to share the memory annotation script or prompt, or a minimal example showing how the language_memory field is generated?

This would be very helpful for reproducing the System-2 training pipeline.

Thank you!

Activity

  1. steinate commented on Oct 27, 2026

    @steinate
    Collaborator

    Hi,
    Thanks for your questions!

    $\Phi(s_i)$ is implemented with Qwen3.5. Instead of straightforward concatenation, the model summarizes all completed subtasks and compresses redundant details into a compact task log for the language_memory field.

  2. xiao10ma commented on Oct 28, 2026

    @xiao10ma
    Author

    Thanks for the clarification!

    I understand that Qwen3.5 is used to summarize completed subtasks into compact language memory. However, I'm still unclear about how the memory GT annotations are actually generated.

    Specifically, what inputs are provided to Qwen3.5? Are they the ground-truth subtask descriptions, the previous memory and newly completed subtask, or actual trajectory videos/frames?

    Also, is the memory GT generated independently at each subtask boundary, or generated for the entire episode at once?

    Could you share a minimal example of the input prompt and corresponding language_memory output? This would help us reproduce the annotation pipeline.

    Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions