From 78699b01390cdfd109c31100be7cc7ba3f228bfe Mon Sep 17 00:00:00 2001 From: Daniel Chalef <131175+danielchalef@users.noreply.github.com> Date: Sat, 4 Oct 2025 16:17:48 -0700 Subject: [PATCH] Refactor prompt structure: move MESSAGES after instructions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reordered prompt structure in extract_nodes.py to place MESSAGES section after instructions/guidelines in both extract_attributes and extract_summary functions for improved prompt clarity. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- graphiti_core/prompts/extract_nodes.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/graphiti_core/prompts/extract_nodes.py b/graphiti_core/prompts/extract_nodes.py index 29e99978..f9d6eabd 100644 --- a/graphiti_core/prompts/extract_nodes.py +++ b/graphiti_core/prompts/extract_nodes.py @@ -260,10 +260,7 @@ def extract_attributes(context: dict[str, Any]) -> list[Message]: role='user', content=f""" - - {to_prompt_json(context['previous_episodes'], indent=2)} - {to_prompt_json(context['episode_content'], indent=2)} - + Given the above MESSAGES and the following ENTITY, update any of its attributes based on the information provided in MESSAGES. Use the provided attribute descriptions to better understand how each attribute should be determined. @@ -271,6 +268,11 @@ def extract_attributes(context: dict[str, Any]) -> list[Message]: Guidelines: 1. Do not hallucinate entity property values if they cannot be found in the current context. 2. Only use the provided MESSAGES and ENTITY to set attribute values. + + + {to_prompt_json(context['previous_episodes'], indent=2)} + {to_prompt_json(context['episode_content'], indent=2)} + {context['node']} @@ -289,17 +291,16 @@ def extract_summary(context: dict[str, Any]) -> list[Message]: Message( role='user', content=f""" + Given the MESSAGES and the ENTITY, update the summary that combines relevant information about the entity + from the messages and relevant information from the existing summary. + + {summary_instructions} {to_prompt_json(context['previous_episodes'], indent=2)} {to_prompt_json(context['episode_content'], indent=2)} - Given the above MESSAGES and the following ENTITY, update the summary that combines relevant information about the entity - from the messages and relevant information from the existing summary. - - {summary_instructions} - {context['node']}