Input
Selected meta-agent role (requirements_analyst):
# Rolle: Requirements-basierter Prompt-Review-Analyst
Du bist die Schnittstelle zwischen der Qualitätsprüfung und dem Task-Agenten,
der einen bestehenden Prompt verbessert. Du überführst die Befunde des
Prüfberichts in eindeutige, nachvollziehbare und überprüfbare Änderungen an
den Vorgaben des Task-Agenten.
Du änderst weder den geprüften Ausgangsprompt noch den erzeugten
Kandidaten-Prompt direkt. Du änderst ausschließlich die Anweisungen im
Prompt-Design-Agenten, damit dessen nächster Kandidat die belegten
Schwachstellen gezielt behebt.
## Verbindliches Vorgehen
Für jeden relevanten Prüfbefund:
1. Ordne ihn einer konkreten Stelle oder Regel im geprüften Prompt zu.
2. Trenne beobachteten Befund, nachweisbare Ursache und erforderliche Änderung.
3. Kennzeichne eine nicht belegbare Ursache als „nicht eindeutig bestimmbar“.
4. Leite nur Änderungen ab, die durch den Prüfbericht begründet sind.
5. Formuliere das gewünschte Verhalten so, dass es in der nächsten Prüfung
überprüft werden kann.
6. Erhalte bestehende Anforderungen, die der Änderung nicht widersprechen.
7. Nutze ältere Generationsartefakte, wenn sie die Rückverfolgbarkeit einer
Änderung verbessern oder eine bereits erfolglose Änderung erkennen lassen.
Vermeide Vermutungen über die Absicht des Prompt-Autors, unbelegte Ursachen,
allgemeine Forderungen wie „klarer formulieren“ und eine vollständige
Neufassung des Prompts. Der Prüfbericht darf frei formuliert sein; maßgeblich
sind seine nachvollziehbaren Befunde und Hinweise, nicht eine starre Liste von
Feldern.
You are improving the prompt-generation strategy for Prompt Evolution.
Parent generation:
gen_000
Target generation:
gen_001
Latest evaluation:
Overall score: 125/160
Normalized score: 78.12%
Detailed evaluator report:
{
"rubric": {
"title": "Bewertungsschema für einen Leipziger Immobilienmarkt-Rechercheprompt",
"application": "Beauftragung einer gründlichen, nachvollziehbaren Recherche zum Immobilienmarkt in Leipzig. Bewertet wird ausschließlich, was der Prompt-Text für die spätere Bearbeitung vorgibt, nicht die Qualität einer späteren Recherche.",
"scientific_basis": "Die sechs anwendungsspezifischen Kriterien mit zusammen 100 Punkten erfassen die fachliche Validität der Aufgabe: Ein abgegrenzter Untersuchungsgegenstand, geeignete Marktkennzahlen, räumliche Unterschiede, belastbare Belege und eine auswertbare Darstellung sind für diesen Rechercheauftrag besonders relevant. Marktkennzahlen und Evidenz erhalten die höchsten Einzelgewichte, weil ohne sie eine gründliche Marktrecherche weder aussagekräftig noch überprüfbar wäre. Die drei eigenständigen Kriterien mit zusammen 60 Punkten prüfen die Umsetzbarkeit des Auftrags hinsichtlich Ablauf, Zwischenständen und Eingaben. Beobachtbare Textmerkmale und additive Teilregeln fördern Messbarkeit und Reliabilität. Bewertet wird nur die jeweilige Zuständigkeit eines Kriteriums; bloße Kürze wird nicht bestraft, sofern eine einfache Vorgabe die Aufgabe eindeutig regelt. Es werden weder bestimmte Quellen noch eine technische Umsetzung vorgeschrieben.",
"criteria": [
{
"id": "market_scope",
"name": "Fachliche Abgrenzung des Marktes",
"max_points": 20,
"definition": "Geprüft wird, welche Immobilienmärkte innerhalb Leipzigs untersucht werden sollen. Nicht bewertet werden der Umgang mit fehlenden Angaben, die Untergliederung in Teilräume, Kennzahlen oder das Ausgabeformat.",
"scoring_guide": "Je 5 Punkte für eine erkennbare Festlegung von: (1) räumlicher Grenze der Untersuchung, (2) einbezogenen Immobilienarten oder ausdrücklich marktweiter Betrachtung, (3) Kauf-, Mietmarkt oder beiden, (4) Erkenntnisziel, etwa Marktüberblick oder Investitionsentscheidung. 0 Punkte, wenn keiner dieser Aspekte festgelegt ist; Teilpunkte als Summe erfüllter Aspekte; 20 Punkte bei allen vier Festlegungen.",
"weight_rationale": "20 Punkte, weil die Abgrenzung die Aussagekraft aller späteren Ergebnisse bestimmt, allein aber noch keine gründliche Recherche sicherstellt."
},
{
"id": "market_indicators",
"name": "Relevante Marktkennzahlen",
"max_points": 25,
"definition": "Geprüft wird, ob der Prompt die zu erhebenden Marktgrößen benennt. Nicht bewertet werden Quellenqualität, Interpretation der Kennzahlen oder Regeln für fehlende Eingaben.",
"scoring_guide": "Je 5 Punkte für die ausdrückliche Anforderung von: (1) Kaufpreisen, sofern der Kaufmarkt einbezogen ist, sonst einer weiteren passenden Preisgröße, (2) Mieten, sofern der Mietmarkt einbezogen ist, sonst einer weiteren passenden Ertragsgröße, (3) Angebots- oder Nachfrageindikatoren, (4) zeitlicher Entwicklung von Marktgrößen, (5) Definition oder Einheit der angeforderten Größen, etwa Euro pro Quadratmeter. Nicht einbezogene Kauf- oder Mietmärkte lösen keine Pflicht zur jeweils fremden Kennzahl aus; die alternativ verlangte Größe muss zum festgelegten Markt passen. 0 Punkte ohne erfüllten Aspekt; Teilpunkte additiv; 25 Punkte bei allen fünf Aspekten.",
"weight_rationale": "25 Punkte als höchstes Fachgewicht, weil konkret messbare Marktgrößen den Kern einer überprüfbaren Immobilienmarktrecherche bilden."
},
{
"id": "local_segmentation",
"name": "Leipzigs Teilmärkte und Unterschiede",
"max_points": 15,
"definition": "Geprüft wird, ob die Recherche Unterschiede innerhalb des festgelegten Leipziger Marktes sichtbar machen soll. Nicht bewertet wird, welche Immobilienarten insgesamt zum Untersuchungsumfang gehören; das zählt nur bei market_scope.",
"scoring_guide": "Je 5 Punkte für: (1) eine Anforderung zur Betrachtung geeigneter Stadtteile oder anderer Leipziger Teilräume, (2) eine Anforderung zur Differenzierung nach mindestens einem marktprägendem Merkmal wie Objektart, Zustand oder Größe, (3) einen ausdrücklichen Vergleich der betrachteten Teilmärkte statt ausschließlich eines gesamtstädtischen Werts. 0 Punkte ohne diese Vorgaben; Teilpunkte additiv; 15 Punkte bei allen drei.",
"weight_rationale": "15 Punkte, weil gesamtstädtische Werte relevante Unterschiede verdecken können, die Segmentierung aber dem Erkenntnisziel angemessen bleiben muss."
},
{
"id": "evidence_quality",
"name": "Belegbarkeit und Aktualität",
"max_points": 20,
"definition": "Geprüft werden Vorgaben zur Nachprüfbarkeit und Einordnung verwendeter Marktdaten. Nicht bewertet werden die Auswahl der Marktkennzahlen oder Regeln zum Ergänzen fehlender Nutzerangaben.",
"scoring_guide": "Je 5 Punkte für: (1) überprüfbare Quellenangaben zu wesentlichen Zahlen, (2) Angabe des Bezugszeitraums der Daten, (3) Einordnung der Aktualität für die gestellte Marktfrage, (4) erkennbare Unterscheidung zwischen Daten, Schätzungen und unbelegten Aussagen oder eine Vorgabe zum Umgang mit widersprüchlichen Quellen. 0 Punkte ohne diese Vorgaben; Teilpunkte additiv; 20 Punkte bei allen vier. Eine konkrete Quelle muss nicht vorab vorgeschrieben sein.",
"weight_rationale": "20 Punkte, weil Immobilienmarktdaten je nach Quelle und Zeitpunkt erheblich abweichen können und eine produktiv nutzbare Recherche überprüfbar sein muss."
},
{
"id": "market_analysis",
"name": "Einordnung statt bloßer Datensammlung",
"max_points": 10,
"definition": "Geprüft werden Anforderungen an die fachliche Interpretation erhobener Befunde. Nicht bewertet werden die bloße Nennung von Kennzahlen, deren Belege oder die Gliederung der Antwort.",
"scoring_guide": "5 Punkte für eine ausdrücklich verlangte Interpretation von Marktentwicklungen oder Unterschieden; weitere 5 Punkte für eine verlangte Einordnung relevanter Einflussfaktoren oder Unsicherheiten ohne unbelegte Kausalbehauptungen. 0 Punkte ohne beides; 5 Punkte bei einem, 10 Punkte bei beiden Aspekten.",
"weight_rationale": "10 Punkte, weil Interpretation den Nutzen der Recherche erhöht, aber auf abgegrenzten und belegten Befunden aufbauen muss."
},
{
"id": "deliverable",
"name": "Nutzbares Rechercheergebnis",
"max_points": 10,
"definition": "Geprüft wird die Vorgabe für die Form des abschließenden Rechercheergebnisses. Nicht bewertet werden Arbeitsschritte auf dem Weg dorthin oder die fachliche Richtigkeit späterer Aussagen.",
"scoring_guide": "5 Punkte für eine erkennbare Ergebnisform, etwa strukturierter Bericht oder tabellarische Übersicht; weitere 5 Punkte für eine Vorgabe zur nutzbaren Verdichtung, etwa Zusammenfassung wesentlicher Befunde oder klar getrennte Schlussfolgerungen. 0 Punkte ohne beides; 5 Punkte bei einem, 10 Punkte bei beiden Aspekten.",
"weight_rationale": "10 Punkte, weil ein verständliches Ergebnis für die Verwendung wichtig ist, seine Form aber weniger Gewicht verdient als Umfang, Daten und Belegbarkeit."
},
{
"id": "process_architecture",
"name": "Nachvollziehbarer Rechercheablauf",
"max_points": 20,
"definition": "Geprüft wird, ob der Prompt die Recherche in sinnvoll zusammenhängende Arbeitsschritte und Entscheidungen übersetzbar macht. Nicht bewertet werden fachliche Themenabdeckung, Ausgabeformat, gespeicherte Zwischenstände oder Eingabevalidierung. Eine bestimmte technische oder benannte Ablaufstruktur ist nicht erforderlich.",
"scoring_guide": "Je 5 Punkte für eine erkennbare Regelung von: (1) Erhebung und anschließender Auswertung als unterscheidbare Tätigkeiten, (2) sachgerechter Abhängigkeit, sodass Schlussfolgerungen auf erhobenen Befunden beruhen, (3) Vorgehen bei unzureichenden oder widersprüchlichen Recherchebefunden, (4) Abschlussbedingung und Übergang zum Ergebnis. 0 Punkte ohne erkennbare Regelung; Teilpunkte additiv; 20 Punkte bei allen vier. Knappe, eindeutige Regeln genügen.",
"weight_rationale": "20 Punkte, weil ein nachvollziehbarer Ablauf Fehler bei einer mehrschrittigen Recherche reduziert, ohne unnötige technische Komplexität zu verlangen."
},
{
"id": "state_architecture",
"name": "Zwischenstände und Fortsetzung",
"max_points": 20,
"definition": "Geprüft wird, ob der Stand einer möglicherweise unterbrochenen oder noch unvollständigen Recherche bestimmbar bleibt. Nicht bewertet werden die Reihenfolge der Arbeitsschritte, fachliche Kennzahlen oder Regeln zur Annahme fehlender Eingaben. Eine bestimmte Speicherung oder technische Architektur ist nicht erforderlich.",
"scoring_guide": "Je 5 Punkte für eine erkennbare Regelung von: (1) Unterscheidung zwischen noch offenen und abgeschlossenen Rechercheteilen, (2) Festhalten wesentlicher vorläufiger Befunde und offener Lücken, (3) Bedingungen für Fertigstellung oder Abbruch, (4) sachgerechter Fortsetzung nach einer Unterbrechung, ohne ungeprüfte Befunde als abgeschlossen zu behandeln. 0 Punkte ohne erkennbare Regelung; Teilpunkte additiv; 20 Punkte bei allen vier. Eine einfache textliche Regel genügt.",
"weight_rationale": "20 Punkte, weil gründliche Recherche mehrere Befunde zusammenführt und offene Lücken erkennbar bleiben müssen; bewertet wird die Angemessenheit, nicht Implementierungsaufwand."
},
{
"id": "input_processing",
"name": "Eingaben und fehlende Angaben",
"max_points": 20,
"definition": "Geprüft wird, welche Angaben zur Auftragsauslegung nötig sind, wie zulässige Eingaben erkennbar werden und was bei fehlenden oder widersprüchlichen Angaben geschieht. Nicht bewertet werden die fachliche Qualität einer gewählten Marktgrenze, Recherchequellen oder Widersprüche zwischen externen Daten. Fehlende Tatsachen dürfen nicht als Fakten erfunden werden.",
"scoring_guide": "Je 5 Punkte für: (1) Benennung der zur Auslegung benötigten Angaben, etwa Untersuchungszweck, Marktsegment oder Zeitraum, (2) erkennbare Vorgaben zu deren Form oder Gültigkeit, (3) Regel zum Nachfragen oder zu einer kenntlich gemachten und sachlich begründeten Ersatzannahme bei fehlenden Angaben, (4) Regel zum Umgang mit widersprüchlichen Nutzervorgaben ohne Erfindung fehlender Tatsachen. 0 Punkte ohne diese Regeln; Teilpunkte additiv; 20 Punkte bei allen vier. Eine Ersatzannahme zählt nur, wenn Kennzeichnung und Begründung verlangt werden.",
"weight_rationale": "20 Punkte, weil der kurze Ausgangsauftrag wesentliche Auslegungsfragen offenlässt und unbegründete Annahmen die Ergebnisse verfälschen können."
}
]
},
"evaluation": {
"rubric_id": "d95ae941f5a9a5bf",
"criterion_scores": [
{
"id": "market_scope",
"points": 20,
"evidence": "Leipzig ist als Untersuchungsraum festgelegt. Der Prompt nennt Wohnimmobilien zum Kauf und zur Miete sowie Gewerbeimmobilien und verlangt einen fundierten Marktüberblick.",
"improvement": "Keine"
},
{
"id": "market_indicators",
"points": 25,
"evidence": "Verlangt werden Preis- und Mietniveaus, Angebot und Nachfrage sowie deren Entwicklung. Für wesentliche Zahlen sind Einheit, Bezugszeitraum und gegebenenfalls Objektart anzugeben.",
"improvement": "Keine"
},
{
"id": "local_segmentation",
"points": 15,
"evidence": "Der Prompt verlangt Unterschiede zwischen Stadtteilen, eine Analyse der Marktsegmente und eine Unterscheidung zwischen Neubau und Bestand, sofern die Daten dies ermöglichen.",
"improvement": "Keine"
},
{
"id": "evidence_quality",
"points": 20,
"evidence": "Für wesentliche Zahlen sind Quelle und Bezugszeitraum gefordert. Die jüngsten verfügbaren Daten sollen eingeordnet werden; Unterschiede zwischen widersprüchlichen Angaben sind anhand von Definition, Erhebungsmethode oder Zeitraum zu erklären. Datenlücken sind zu kennzeichnen.",
"improvement": "Keine"
},
{
"id": "market_analysis",
"points": 10,
"evidence": "Aktuelle Entwicklungen und Unterschiede sollen eingeordnet werden. Der Prompt verlangt zudem Markttreiber und Risiken sowie eine klare Trennung von Fakten und Einschätzungen.",
"improvement": "Keine"
},
{
"id": "deliverable",
"points": 10,
"evidence": "Die Ergebnisform ist mit kurzer Zusammenfassung, Analyse der Marktsegmente und Stadtteile sowie einem Fazit zu Chancen, Risiken und weiterem Recherchebedarf vorgegeben.",
"improvement": "Keine"
},
{
"id": "process_architecture",
"points": 15,
"evidence": "Recherche, Einordnung und Fazit sind als aufeinander bezogene Tätigkeiten erkennbar. Für widersprüchliche Angaben und fehlende aktuelle Recherchemöglichkeiten gibt es Regeln. Eine ausdrückliche Bedingung, wann die Recherche ausreichend abgeschlossen ist und in das Ergebnis übergeht, fehlt.",
"improvement": "Eine knappe Abschlussregel ergänzen, etwa dass nach Prüfung der wesentlichen Segmente und Kennzeichnung verbleibender Datenlücken der Bericht erstellt wird."
},
{
"id": "state_architecture",
"points": 5,
"evidence": "Die fehlende Möglichkeit aktueller Recherche löst einen eingeschränkten Bericht aus. Zwar sollen offene Datenlücken kenntlich gemacht werden; der Prompt regelt aber weder das Festhalten vorläufiger Befunde und abgeschlossener Rechercheteile noch die Fortsetzung nach einer Unterbrechung.",
"improvement": "Einen kurzen Zwischenstand mit geprüften Befunden, noch offenen Teilen und Datenlücken verlangen sowie festlegen, dass nach einer Unterbrechung ungeprüfte Befunde erneut geprüft werden."
},
{
"id": "input_processing",
"points": 5,
"evidence": "Leipzig, Marktsegmente und ein Vergleich mit den jüngsten verfügbaren Daten benennen wesentliche Angaben zur Auftragsauslegung. Vorgaben zur Gültigkeit ergänzender Nutzereingaben sowie Regeln für fehlende oder widersprüchliche Nutzervorgaben fehlen. Die Regel für fehlende Recherchemöglichkeiten betrifft keine fehlenden Nutzereingaben.",
"improvement": "Festlegen, welche ergänzenden Angaben berücksichtigt werden, und bei fehlenden oder widersprüchlichen Nutzervorgaben eine Rückfrage oder eine ausdrücklich gekennzeichnete und begründete Annahme verlangen."
}
],
"total_score": 125,
"priority_fixes": [
{
"criterion_id": "state_architecture",
"location": "Fehlender Abschnitt zum Recherchezwischenstand",
"problem": "Offene Datenlücken werden zwar im Ergebnis erwähnt, aber geprüfte und vorläufige Befunde bleiben bei einer Unterbrechung nicht unterscheidbar.",
"change": "Einen textlichen Zwischenstand mit geprüften Befunden, offenen Rechercheteilen und Datenlücken vorsehen; bei Fortsetzung vorläufige Befunde prüfen."
},
{
"criterion_id": "input_processing",
"location": "Fehlende Regel zu ergänzenden Nutzervorgaben",
"problem": "Für fehlende oder widersprüchliche Angaben des Nutzers ist kein Vorgehen festgelegt.",
"change": "Bei entscheidungsrelevanten Lücken oder Widersprüchen nachfragen; falls ohne Rückfrage fortgefahren wird, Ersatzannahmen ausdrücklich kennzeichnen und sachlich begründen."
},
{
"criterion_id": "process_architecture",
"location": "Übergang von der Recherche zum abschließenden Bericht",
"problem": "Es fehlt eine ausdrückliche Abschlussbedingung für die Recherche.",
"change": "Festlegen, dass nach Prüfung der wesentlichen Segmente und Quellen sowie Kennzeichnung nicht schließbarer Lücken der Bericht erstellt wird."
}
]
}
}
The evaluation and task context needed for this run are included here. Use the
parent generation artifacts when they help you understand what the current
agent produced and how it was evaluated.
This domain improves an existing source prompt instead of designing a prompt
from scratch. The generator should preserve the source prompt's core purpose
while improving clarity, robustness, operational rules, and consistency.
Translate supported evaluator findings into changes to the Task-Agent's
instructions in /home/USER/PromptEvolution/runs/sol6_brief_leipzig_real_estate_standard160_bestLast_260930/prompt_design_agent.py. Do not directly edit the source prompt or a
generated candidate prompt. The next Task-Agent run creates the revised
candidate from the changed instructions.
You may read:
- /home/USER/PromptEvolution/runs/sol6_brief_leipzig_real_estate_standard160_bestLast_260930/prompt_design_agent.py
- /home/USER/PromptEvolution/domains/prompt_design/source_prompts/brief_leipzig_real_estate.md
- files inside /home/USER/PromptEvolution/runs/sol6_brief_leipzig_real_estate_standard160_bestLast_260930/outputs/prompt_design/gen_000
- files inside /home/USER/PromptEvolution/runs/sol6_brief_leipzig_real_estate_standard160_bestLast_260930/outputs/prompt_design/gen_001/meta_workspace
You may edit:
- /home/USER/PromptEvolution/runs/sol6_brief_leipzig_real_estate_standard160_bestLast_260930/prompt_design_agent.py
You may freely create, edit, and remove files inside:
- /home/USER/PromptEvolution/runs/sol6_brief_leipzig_real_estate_standard160_bestLast_260930/outputs/prompt_design/gen_001/meta_workspace
If you want to reinterpret, summarize, or adapt the task for this run, write
that as a new artifact inside the workspace. Keep the source prompt
and all evaluation/report files unchanged.
Make an actual code change to /home/USER/PromptEvolution/runs/sol6_brief_leipzig_real_estate_standard160_bestLast_260930/prompt_design_agent.py. Do not merely describe changes.
TOOL PROTOCOL:
- Use exactly ONE tool per response.
- Tool calls MUST use exactly this format:
<json>
{
"tool_name": "...",
"tool_input": {...}
}
</json>
- Never use <function_calls>, <invoke_tool>, XML tool calls, or any other
tool-call syntax.
- Never simulate a tool result.
- Every editor call must include the absolute `path` inside `tool_input`.
- For `str_replace`, use `command`, `path`, `old_str`, and `new_str` together.
- If editor returns an error, correct the JSON and retry editor; do not switch
to bash, sed, or another editing method.
- Wait for the real tool result before making the next tool call.
After editing:
1. Inspect the changed files.
2. Finish with a short summary. The loop runs py_compile and validates the
patch after your response; no shell tool is available to you.
For this run the evolution scope is PROMPT ONLY.
Target file:
/home/USER/PromptEvolution/runs/sol6_brief_leipzig_real_estate_standard160_bestLast_260930/prompt_design_agent.py
Workspace:
/home/USER/PromptEvolution/runs/sol6_brief_leipzig_real_estate_standard160_bestLast_260930/outputs/prompt_design/gen_001/meta_workspace
STRICT CONSTRAINTS:
- Preserve generate_prompt(task: str) -> str.
- It must continue to return a Python string.
- Keep the existing single Task-Agent LLM call.
- Do not add runtime evaluator logic or extra model calls.
- Improve the prompt-generation strategy inside generate_prompt().
- Preserve the behavior that the Task-Agent improves an existing prompt and
does not replace it with an unrelated prompt.
IMPLEMENTATION PROTOCOL:
- Make exactly one small but meaningful improvement.
- First use editor view on the target file with `line_numbers: false`.
- Your first response must be this actual editor call, with no surrounding text:
<json>{"tool_name":"editor","tool_input":{"command":"view","path":"/home/USER/PromptEvolution/runs/sol6_brief_leipzig_real_estate_standard160_bestLast_260930/prompt_design_agent.py","line_numbers":false}}</json>
- Then use editor str_replace on a short exact substring copied verbatim from
the file you viewed.
- Copy only actual file text into `old_str` and `new_str`. Never add display
labels such as `15\t`, and never invent extra fields such as `new_str_2`.
- Prioritize the actual edit before exploration or documentation. Do not list
directories or create notes, reports, checklists, or summaries before editing.
- If an edit fails, use the real error and file contents to fix that edit next.
- Never assume a proposed tool call was executed. Only real tool results prove
that a change or validation happened.
- Do not replace the whole function or whole file.
- Do not use sed.
- After the edit, view the file again.
- The loop runs py_compile and patch validation after you finish. You do not
need to run either check yourself.
- Documentation is not required; prefer finishing immediately with a short
plain-text summary. Do not spend tools printing success messages.
- Reserve remaining tool calls for the edit, verification, and necessary fixes.
- Do not finish unless the target file actually changed.
SUGGESTED TOOL CYCLE:
1. editor view with `line_numbers: false`
2. editor str_replace
3. editor view to verify the real change
4. finish with a short plain-text summary (the loop performs py_compile)