Skip to content

Agent index mismatch between reddit_profiles.json and twitter_profiles.csv/agent_configs (interview mis-targeting); report chat intermittently answers without the report body ("(nonereport)") #58

Description

@Quantum-eon

Summary

Two related post-run reliability problems. (a) The agent ordering in reddit_profiles.json does not match the ordering in twitter_profiles.csv/agent_configs (the latter includes extra nodes such as org entities and any deduplicated cast members). The interview/batch endpoints index by the latter, so a client that derives indices from reddit_profiles.json interviews the wrong agent, silently. (b) Separately, the report chat agent intermittently responds with "(nonereport)" — i.e. it answers without having loaded the generated report body — so its answers reflect an empty report rather than the actual analysis.

Reproduction

(a) Index mismatch:

  1. Run a simulation whose cast includes non-person entities (e.g. an org node) or where a dedup occurred (we saw a Valdoria/"Republic of Valdoria" dedup) — the two profile listings then diverge in composition/order.
  2. Pick a target agent's index from reddit_profiles.json and call the interview/batch endpoint with it.
  3. Compare the interview response content against the intended persona.

(b) "(nonereport)":

  1. Generate the report, then query the report chat.
  2. Intermittently, responses contain "(nonereport)" and clearly reflect no report content. Observed on two different model configurations (Claude Sonnet 4 and GPT-4.1 runs).

Observed

  • (a) In one run our first interview pass, indexed from reddit_profiles.json, mis-targeted two of five probes (an org entity answered at the index we expected a specific persona at, and a different country's persona at another). Detected only via response content; re-probing with indices taken from twitter_profiles.csv hit the intended agents.
  • (b) Report chat sessions intermittently return "(nonereport)" and answer as if the report were empty; a retry/new session usually loads it.

Expected

  • (a) A single canonical agent index (or stable agent IDs) shared by all profile artifacts and interview endpoints; indexing by any emitted profile file should reach the same agent.
  • (b) The report chat should either load the report body or fail explicitly ("report not found / still loading"), never answer from an empty report.

Suggested fix

  • (a) Emit a stable agent_id in every profile artifact (reddit_profiles.json, twitter_profiles.csv, agent_configs) and key interview/batch requests by agent_id rather than positional index. Short-term: generate all profile files from the same ordered source list so orderings agree.
  • (b) In the report chat handler, verify the report body loaded before answering; on retrieval failure return an explicit error (and retry the load) instead of proceeding with an empty context.

(Happy to split (b) into its own issue if you prefer one-problem-per-issue — they co-occur in the same post-run stage, which is why we bundled them.)

Context / disclosure: We are an independent research team auditing multi-agent simulation pipelines. We found this while running a systematic 18-run study on MiroFish-Offline across four LLM families. We plan to publish a reproducible study referencing this issue in roughly 4 weeks, and we're happy to share drafts with maintainers beforehand. Thank you for open-sourcing this project — it made this kind of research possible in the first place.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions