Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Grok, as we work on our Deep Dive Collaborative Storytelling for this story, I want to set up a system to manage the details of our story effectively. As we create the story, you’ll naturally keep track of past moments—such as events, interactions, or dialogue—that we’ve written, which I’ll refer to as recollected memories. To maintain consistency, you might be inclined to remind me of these recollected memories in your responses, like summarizing a past scene or repeating a detail to ensure the story stays cohesive. However, I want you to stop reminding me of recollected memories in each response to save tokens and allow for longer storytelling. Instead, maintain an internal memory bank of key details to ensure consistency within our story.
- Here’s why this memory bank system is beneficial in technical terms: By storing only key snippets of the story in the memory bank, rather than the entire scenario, you’ll save tokens, as recalling a full scene can use thousands of tokens, while a snippet uses only a few dozen. For example, recalling a 5k-token scene verbatim uses 5k tokens, but a 20-token snippet summarizing that scene saves 4,980 tokens, leaving more space for new storytelling within your token limit. Additionally, this system makes you faster by reducing processing time. Processing a small set of snippets—say, 500 tokens—takes much less time than processing a full 50k-token scenario, because it reduces the computational load, simplifies searches, and eliminates the need for extensive text analysis. This ensures quicker, more efficient responses while maintaining coherence.
- To optimize the memory bank further, dynamically adjust the length of each snippet based on the complexity of the moment, aiming for maximum compression while preserving clarity. For example, a simple moment might be a 15-token snippet, while a complex one might be 40 tokens, with an average of 25 tokens per snippet. If a moment is too complex to compress into 40 tokens without losing critical details, store it as a longer snippet and flag it for my review, notifying me so I can approve or adjust it. Periodically revisit longer snippets as the story evolves to see if they can be compressed further, notifying me of any changes.
- To prevent characters from knowing information they shouldn’t yet, track character-specific knowledge within the memory bank. For each snippet, note which characters are present or aware of that moment and their certainty level (confirmed or suspected, e.g., “Character A: suspected knowledge of secret”). Allow characters to reference information they would know based on their involvement up to the current point, including indirect knowledge if they’ve been informed by another character. For example, if a snippet says “Character C learns a secret in Chapter 3 (confirmed),” and later “Character C tells Character A the secret in Chapter 4,” update the memory bank to reflect that Character A now knows the secret too (confirmed). When writing a scene, ensure characters only use knowledge they’ve gained up to that point, avoiding premature reveals or foreshadowing unless I explicitly request it.
- To keep the memory bank efficient and relevant, dynamically update it by handling contradictions and shifts in context. When a new snippet is added that directly contradicts an existing one, delete the outdated snippet to free up space. For example, if the memory bank has a snippet that says “Character A doesn’t know about Character B in Chapter 1,” and a new snippet is added saying “Character A meets B in Chapter 1,” delete the old snippet since it’s no longer relevant, and replace it with the new one. For nuanced shifts that aren’t direct contradictions but affect each other—like “Character A trusts Character B” followed by “Character A now suspects Character B”—update the existing snippet to reflect the change, such as “Character A initially trusted Character B but now suspects them after [event X],” and present the updated snippet for my approval to ensure it fits the story’s tone and direction.
- To prioritize important information, tag each snippet with a priority level from 1 to 5, where 5 is plot-critical (e.g., a major reveal) and 1 is minor (e.g., a small humorous moment). Implement a variable priority decay system: priority 5 snippets tied to the current arc maintain their priority, while others decay by 1 every 2 chapters unless referenced (e.g., a priority 4 snippet not mentioned in 2 chapters drops to 3). If the memory bank is full and a new snippet doesn’t contradict anything, automatically overwrite the lowest-priority snippet (e.g., priority 1 or 2) without asking for my approval, ensuring the system remains efficient. If the low-priority snippet might be relevant later, move it to the archive memory bank instead of deleting it permanently.
- Add temporal tagging to snippets by including a chapter number (e.g., “Chapter 2: Event X, priority 5”). If I request a flashback scene, temporarily prioritize older snippets from the relevant chapter by referencing their timing (e.g., “Recalling Chapter 1: Event Y”).
- To make the memory bank flexible for any story, allow me to define custom categories at the start, tailored to the narrative’s tone and genre. Additionally, to better adapt to the story’s unique dynamics, analyze the source material (via DeeperSearch results or my prompts) and the evolving narrative to propose custom categories that reflect the story’s tones, themes, and character interactions. For example, if a story involves a magical artifact, you might propose a “Magical Effects” category to track its impact, or if a narrative shifts tone, you might suggest a “Tone Shifts” category to monitor the change. Present these proposed categories for my approval before implementing them, and notify me if you adjust categories as the story progresses. If I don’t specify categories and you don’t propose any, use the default ones below. Program automatic category splitting when a category exceeds 10 snippets (e.g., splitting “Emotional Moments” into “Emotional Moments: Romance” and “Emotional Moments: Grief”), and implement category merging for underutilized categories with fewer than 3 snippets after 5 chapters (e.g., merging “Minor Humor” into “Humorous Interactions”). Present splitting or merging suggestions for my approval.
- Use compression techniques to save tokens in the memory bank. Use shorthand notation for common narrative elements, such as “C1→C2” for “Character 1 tells Character 2 something,” and “C1♥C2” for “Character 1 develops feelings for Character 2.” Include a key for shorthand notation: “→ = tells, ♥ = romantic development.” When handling DeeperSearch results, check the memory bank for existing snippets on the same topic to avoid redundancy. If a DeeperSearch result overlaps with an existing snippet, merge them into a single updated snippet—for example, combining “Character X is a skilled fighter” with “Character X won a tournament” into “Character X, a skilled fighter, won a tournament.” If the DeeperSearch result provides entirely new information, store it as a separate snippet.
- To future-proof the memory bank for long stories, maintain a secondary archive memory bank where low-priority or outdated snippets can be moved instead of deleted permanently, and retrieve them if I request a specific detail from the archive later. To prevent the archive from becoming bloated, implement a purge system where snippets that haven’t been referenced for 10 chapters and have a low priority (e.g., 1 or 2) are flagged for permanent deletion. Present a list of proposed purges for my approval before deleting anything, ensuring I can veto any deletions if needed.
- Note that when I perform a DeeperSearch to gather external information, I will not use the memory bank during the search itself; instead, I will compress the DeeperSearch results into a snippet and store it in the memory bank for future reference, ensuring efficient use of tokens. However, when crafting DeeperSearch prompts, I may use the memory bank categories to guide the search, ensuring the results align with the story’s priorities (e.g., focusing on humorous interactions if that’s a key category).
- Memory Bank Categories (Default, unless I specify custom ones or you propose new ones):
- X: Humorous Interactions - Funny scenes or banter.
- Y: Emotional Moments - Heartfelt or impactful beats.
- Z: Action Sequences - Battles or dynamic events.
- 1: Character Development - Growth or relationship shifts.
- 2: Unique Story Elements - Special features like magic systems or technology.
- 3: Memorable Dialogue - Standout lines.
- How to Handle the Memory Bank:
- - Analyze the source material and story dynamics to propose custom categories when appropriate, presenting them for my approval before implementation. Notify me if you adjust categories as the story evolves.
- - Automatically save new details in the right category as we go to keep track of our story’s events and details, adjusting snippet length based on complexity (15–40 tokens, averaging 25), noting which characters are present or aware of each moment (with certainty levels), and tagging each snippet with a priority level (1–5), a chapter number, and using shorthand where applicable. This includes compressing DeeperSearch results into snippets and storing them in the appropriate category (e.g., Unique Story Elements, with a priority of 5 unless specified otherwise).
- - When adding a new snippet, check for any existing snippets that are now outdated or contradicted by the new event, and handle them according to the contradiction rules above. If the new snippet doesn’t contradict anything, add it to an empty slot, or overwrite the lowest-priority snippet if the memory bank is full, moving the overwritten snippet to the archive if it might be relevant later.
- - Only reference a past detail if it’s essential for the current scene’s context or if I explicitly ask for it, and ensure the character referencing it would know that detail based on their knowledge up to that point in the story, including indirect knowledge from other characters.
- - Don’t repeat or summarize stored moments otherwise—assume I remember them unless I say differently.
- - If I request a specific detail or summary, pull it from the memory bank (or archive if needed) concisely, ensuring only relevant character knowledge is included.
- To optimize token usage, develop a small vocabulary bank for specialized terms (e.g., “Term: Definition, priority X”) and shared shorthand for common descriptions (e.g., “Setting A: dark streets”). Reference these instead of rewriting descriptions to save tokens.
- Please use your Think feature to carefully reason through these instructions, ensuring you apply them precisely to manage details, save tokens, optimize processing speed, maintain character knowledge consistency, dynamically update the memory bank, and adapt to the story’s needs effectively.
- This way, we keep the story consistent and detailed without wasting tokens on redundant reminders or outdated information, while also ensuring faster processing, preventing characters from knowing information they shouldn’t, and adapting to the story’s unique needs for efficient and accurate storytelling. Let me know if this is clear before we start!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement