Edit a presentation using natural language instructions from the user
WHEN TO USE:
- User wants to MODIFY an existing presentation that was created in this conversation
- Trigger phrases: "edit", "change", "update", "make it", "add", "remove", "move", "fix", "tweak", "adjust"
- Examples:
• "make slide 2 more concise"
• "add a slide about pricing"
• "change the theme to something darker"
• "remove the last slide"
• "add more visuals"
• "i don't like this slide" (pass exactly as-is)
DO NOT USE:
- No presentation exists in this conversation → Ask user to create one first
- User wants to create a NEW presentation → Use generate_slides
- User wants to list/retrieve saved presentations → Use list_presentations
- User wants to export → guide him to export using the export button in the UI widget from generate_slides toolcall
- You don't have a valid presentation_id → Ask user to create or open a presentation
CAPABILITIES:
The backend agent can:
├─ Content: Modify text, add/remove bullet points, change titles, add speaker notes
├─ Slides: Add, remove, reorder, duplicate slides
├─ Images: Add, replace, remove images; change image style
├─ Theme: Change colors, fonts, overall visual style
├─ Layout: Adjust slide layouts, text positioning
└─ Navigation: The agent auto-detects which slide user is viewing (no slide number needed)
CONTEXT AWARENESS:
- Agent tracks which slide user is currently viewing in the widget
- Agent maintains conversation context for multi-turn edits
- User can refine iteratively: "make it shorter" → "now add examples" → "perfect, do the same for slide 3"
⚠️ CRITICAL INSTRUCTION — PASS USER MESSAGES EXACTLY:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Do NOT interpret, expand, rephrase, summarize, or rewrite the user's input. │
│ Pass the instruction parameter EXACTLY as the user typed it. │
│ The backend agent handles clarification — your job is only to pass through. │
└─────────────────────────────────────────────────────────────────────────────┘
Examples of correct pass-through:
User: "i do not like this slide" → instruction: "i do not like this slide"
User: "make it better" → instruction: "make it better"
User: "more professional" → instruction: "more professional"
User: "add something about our team" → instruction: "add something about our team"
User: "idk fix it" → instruction: "idk fix it"
❌ WRONG — Do not do this:
User: "make it better"
→ instruction: "Improve the slide by enhancing the content quality and visual design" ← NO!
Args:
presentation_id: UUID of presentation to edit (REQUIRED — from generate_slides response)
instruction: User's EXACT message, word-for-word (REQUIRED — do NOT rewrite)
conversation_id: Optional. Auto-tracked by widget for multi-turn context.
Returns:
ToolResult with updated presentation widget
RESPONSE GUIDANCE:
Accompany the widget with a brief text response (1-2 lines max).
STRUCTURE:
1. Confirm what was changed (1 line, specific)
2. Optionally prompt for next action or confirmation
TONE: Brief, specific, conversational. Match the energy of the edit size.
EXAMPLE RESPONSES:
✅ GOOD (small edit):
User: "make the title shorter"
Response: "Shortened the title. Anything else?"
[Widget]
✅ GOOD (content change):
User: "add a slide about pricing"
Response: "Added a pricing slide after slide 4. Want me to adjust the details?"
[Widget]
✅ GOOD (theme change):
User: "change to a dark theme"
Response: "Switched to a dark theme throughout. Let me know if you'd like to tweak the colors."
[Widget]
✅ GOOD (vague request — agent asked clarification):
User: "i don't like this slide"
Agent response: "What would you like me to change — the content, layout, or visuals?"
[Widget with agent's clarifying question]
✅ GOOD (multi-turn):
User: "make it more concise"
Response: "Condensed the text. Want me to do the same for other slides?"
[Widget]
❌ BAD (too verbose):
"I've successfully updated your presentation by shortening the title on slide 2. The new title is now more concise and impactful. You can continue editing, change the theme, export the presentation, or make additional modifications..."
❌ BAD (vague confirmation):
"Done."
[Widget]
❌ BAD (over-explaining what changed):
"I modified the slide by adjusting the title length, reducing it from 12 words to 6 words, which improves readability and visual hierarchy..."
EDGE CASES:
1. NO PRESENTATION EXISTS
User: "edit slide 2"
Response: "There's no presentation open yet. Want me to create one? Just tell me the topic."
2. PRESENTATION_ID NOT FOUND / INVALID
Response: "I couldn't find that presentation. It may have been deleted or expired. Want to create a new one?"
3. EDIT FAILED (backend error)
Response: "Couldn't apply that edit. Try rephrasing, or let me know what you'd like to change and I'll retry."
4. AMBIGUOUS MULTI-PRESENTATION CONTEXT (rare)
User has multiple presentations discussed in conversation
Response: "Which presentation — the [topic A] deck or the [topic B] one?"
5. USER ASKS TO EDIT SOMETHING OUTSIDE SCOPE
User: "edit my Google Slides presentation"
Response: "I can only edit presentations created here. Want me to create a new presentation on the same topic?"
edit_presentation