Distill skill hits "Prompt is too long" when processing many conversations

Ouverte Adaptée aux débutants
#14 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
64/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
À l'abandon
Stack technique
markdown
Domaine
ai, tooling

Piste de recherche

Examinez skills/distill/SKILL.md, en vous concentrant sur les prompts des sub-agents et l'étape de collecte du coordinateur. Exécutez /distill sur un lot de conversations, en incluant suffisamment de sessions pour reproduire la limite de contexte. C'est terminé lorsque les sub-agents écrivent directement dans le journal, ne renvoient que de courts résumés et que l'ensemble du flux de distillation et de mise à jour s'achève sans erreur "Prompt is too long".

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Problem

I have 10-25 Claude Code sessions/day. Today, the /distill skill's coordinator session started hitting "Prompt is too long" during the end-of-day/memory-maintenance runs — every API call after sub-agents completed returned this error, making the session completely unresponsive.

In my case, sub-agents were returning ~25-37KB of JSON each. With 18+ conversations to process, the accumulated results in the coordinator's context (~630KB / ~164K tokens estimated) plus the system prompt exceeded the context limit.

Root cause

Claude and I did some debugging and our understanding of the current flow is:

  1. Coordinator spawns sub-agents in parallel
  2. Each sub-agent reads a conversation, extracts JSON, returns it to the coordinator
  3. Coordinator collects all results, then writes to journal

Step 2 seems like the problem. All returned results accumulate in the coordinator's context. Claude Code context is append-only until compaction — there's no way to discard results between turns. The more conversations you have, the more result data piles up.

Fix attempted

Have sub-agents write directly to the journal via log_journal() instead of returning results to the coordinator. Each sub-agent returns only a short summary string (e.g., "Wrote 3 actions, 2 facts, 1 decision to journal.").

The coordinator then reads from the journal (get_recent_journal) when it needs the data for entity/state file updates.

Before: sub-agent → returns 35KB JSON → coordinator writes to journal
After: sub-agent → writes to journal directly → returns ~50 bytes

Tested

Patched locally and ran against 25 conversations without issue. Previously failed with 18 "Prompt is too long" results. All 25 conversations completed successfully — distillation, state file updates, entity updates, index maintenance finished without hitting context limits.

Proposed changes to skills/distill/SKILL.md

  1. Sub-agent prompt: instead of "Extract and return as JSON", instruct to call log_journal() directly with topics distilled, distilled-fact, distilled-decision
  2. Sub-agent prompt: "Return ONLY a short summary line" instead of "Return ONLY the JSON"
  3. Step 3 (Collect): coordinator reads from journal instead of parsing returned JSON
  4. Add note: "Sub-agents MUST write to journal themselves and return only a short summary"

Happy to open a PR with the full SKILL.md change if this approach looks good.

Langage dominant
TypeScript
Étoiles
119
Forks
6
Merge moyen
1 h 32 min
PR mergées (30 j)
2

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de ascorbic/macrodata

Toutes les issues de ascorbic/macrodata

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.