Skip to content

feat(prime): project child progress notes (#2282) and evaluation of rlm.collect for Agents view #724

Description

@rynfar

Background & Upstream Changes

Upstream Prime Agent introduced:

  1. Child progress notes (#2282):
    • Added schema 28 capability / payload fields for in-flight sub-agent reporting:
      • progressNote: optional string emitted by children via rlm.progress.note (throttled).
      • lastActivityAt: monotonic timestamp of the last tracked child activity.
      • activityStaleMs: duration since last activity, held unset while a child is executing so long tool invocations do not falsely flag as stale.
    • These surface in the child session snapshot and roster (rlm.list_subagents()).
  2. rlm.collect (#2282 / release 0.9.5):
    • A typed, non-steering fan-in mechanism for subagents that awaits direct children with a bounded timeout and returns per-child result envelopes (status, settled, answer preview, error, duration, tool_count) without inflating the parent's conversational message queue.

Analysis for Pylon

1. Projecting Child Progress Notes into Pylon Agents Surface

  • Pylon Invariants:
    • Pylon's PrimeAgentDaemonSessionRuntime tracks child rosters via authoritative roster snapshots and live event sequences (authoritative_child_roster capability).
    • Pylon represents agents in its Agents UI with status, activity, and subagent tree views.
  • Proposed Projection:
    • In PrimeAgentDaemonEvents.ts and PrimeAgentDaemonSessionRuntime.ts, extend the child roster event types and session snapshot decoders to include optional progressNote, lastActivityAt, and activityStaleMs.
    • In Pylon's UI / web state, surface the child's latest progressNote directly on the child's row in the agent hierarchy (similar to how tool execution status or compact summaries are displayed).
    • Gate decoding on schema capability or optional field presence rather than raw schema revision numbers to prevent schema version conflict with fork revisions 28–33.

2. rlm.collect Integration

  • Internal vs Exposed Action:
    • rlm.collect is designed as a kernel-level aggregation primitive for multi-agent workflows running in the Python REPL harness.
    • Exposing rlm.collect directly as a user-facing action in Pylon is unnecessary and could collide with Pylon's turn settlement and occurrence model.
    • Recommendation: Keep rlm.collect purely internal to the agent kernel / subagent runtime. However, Pylon should ensure that when an agent calls rlm.collect, Pylon's turn-settlement and prompt lifecycle fencing recognize that the parent turn is awaiting subagents and does not prematurely settle or time out.

Action Items

  • Extend Pylon child roster schema decoder to parse progressNote and activityStaleMs when present.
  • Update Agents view subagent rows to render active progress notes.
  • Verify that rlm.collect execution inside the agent kernel respects Pylon's turn quiescence and timeout policies.

Activity

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