-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial Branching and Parallel Exploration
This tutorial explores Mosaic's core feature — conversation branching — in depth. You'll learn strategies for effective branching, how to compare parallel paths, and how to manage complex conversation trees.
Estimated time: 20 minutes
Traditional AI chats are linear: you ask, the AI answers, you ask again. This works for sequential tasks but fails when you want to:
- Compare approaches: "Write this function in Python vs JavaScript"
- Explore tangents: "What about this alternative interpretation?"
- Iterate on details: "Refine this specific part while keeping the rest"
- Backtrack: "Go back to that earlier point and try a different direction"
Mosaic's canvas solves all of these. Every node is a potential fork.
Start with a question that has multiple valid approaches:
- Click the root node
- Type:
What are different approaches to handling errors in API design? - Press Enter and wait for the AI's response
The AI will likely discuss several approaches (HTTP status codes, retry strategies, circuit breakers, etc.).
Now, instead of continuing linearly, branch from the AI's response:
- Click on the AI's response node
- Type:
Explain the circuit breaker pattern in detail with a code example - Press Enter
This creates a new branch exploring one specific topic from the response.
Go back to the original response and create a different branch:
- Again click the same AI response node (the original one)
- Type:
Compare REST and GraphQL error handling approaches - Press Enter
Now you have:
[root] → [You: API design approaches] → [AI: response]
├── [You: circuit breaker] → [AI: response]
└── [You: REST vs GraphQL] → [AI: response]
You can now drag the nodes to arrange them side by side for comparison.
With two parallel branches, you can:
- Drag nodes: Move the two branch responses so they sit next to each other
- Review side-by-side: Read both responses to compare their approaches
- Continue each branch: Click into either response and continue the conversation independently
This is impossible in a linear chat — you'd have to choose one direction and lose the other.
Branches can themselves be branched. Let's go deeper:
- Click the circuit breaker response node
- Ask:
Show me a Python implementation of circuit breaker with asyncio - Then click the REST vs GraphQL response node
- Ask:
What tools help implement GraphQL error handling?
Your tree now has depth:
[root]
└── [AI: API design]
├── [You: circuit breaker] → [AI: response]
│ └── [You: Python asyncio] → [AI: response]
└── [You: REST vs GraphQL] → [AI: response]
└── [You: tools] → [AI: response]
As the tree grows, you can collapse branches you don't need to see:
- Right-click the circuit breaker response node
- Select Collapse
- The entire circuit breaker subtree collapses into a badge:
+2
[root]
└── [AI: API design]
├── [AI: circuit breaker (+2)]
└── [You: REST vs GraphQL] → [AI: response]
└── [You: tools] → [AI: response]
To expand: click the badge or right-click → Expand.
As you explore, bookmark the most valuable responses:
- Right-click a particularly insightful response
- Select Bookmark (star icon appears)
- Later, click the Bookmarks button (★) in the TopBar to see only bookmarked nodes
- This is great for distilling key takeaways from a large canvas
If some branches turned out to be less useful:
- Click the Prune button (🧹) in the TopBar
- Enter a goal, for example:
I want to learn about practical API error handling patterns - Mosaic scores each branch against this goal
- Low-scoring branches are dimmed
You can restore pruned branches anytime via the Prune Banner.
When you've finished exploring, distill everything into a summary:
- Click the Distill button (🌿) in the TopBar
- Mosaic collects all leaf nodes and sends them to the AI
- A new distillation node appears at the bottom of the canvas
- It summarizes all branches into a coherent synthesis
- Gold dashed edges connect the distillation to its source leaves
For critical decisions, compare how different models handle the same input:
- Open Settings → Debate Models
- Select 2-3 models (e.g., Mistral Large, GPT-4o, Claude Sonnet)
- Click a node and type your question
- Press Shift+Enter instead of Enter
- Multiple response nodes fan out, one per model
┌── [Mistral Large response]
[You: complex question] ───┼── [GPT-4o response]
└── [Claude Sonnet response]
You can then branch from any of these responses, mix insights across models, or distill the debate into a synthesis.
Create several branches from a single response to explore different angles:
[root] → [broad question]
├── [angle A]
├── [angle B]
├── [angle C]
└── [angle D]
Best for: Exploring a complex topic from multiple perspectives.
A single deep branch that goes deeper on a specific topic:
[root] → [question] → [follow-up] → [deep dive] → [implementation]
Best for: Sequential problem-solving, debugging, tutorials.
Full branching with multiple levels, combining Star and Chain:
[root]
├── [angle A] → [deeper] → [even deeper]
├── [angle B] → [deeper]
└── [angle C]
Best for: Complex research where you need breadth and depth.
Use multiple models on the same input via parallel debate:
[question] → Mistral, GPT-4o, Claude (simultaneous)
Best for: Fact-checking, comparing reasoning styles, cost/quality analysis.
Explore several branches, then distill into a summary:
[root] → [broad question]
├── [angle A] → [deep dive A]
├── [angle B] → [deep dive B]
└── [angle C] → [deep dive C]
│
└── [Distillation: synthesis of A, B, C]
Best for: Research where you need to explore multiple angles and then synthesize findings.
Use parallel debate to get multiple perspectives:
[question] → Mistral, GPT-4o, Claude (simultaneous)
│
├── [AI response from Model A]
├── [AI response from Model B]
└── [AI response from Model C]
Best for: Fact-checking, comparing reasoning styles, cost/quality analysis.
Allow the conversation to grow organically with tendrils:
[root] → [question] → [AI response]
├── [tendril: follow-up 1] → materialize → branch
├── [tendril: follow-up 2] → (auto-dismissed)
└── [tendril: follow-up 3] → materialize → branch → deep dive
Best for: Exploratory conversations where you don't know the direction in advance.
[root: "Help me debug this Python error"]
└── [AI: suggests 3 possible causes]
├── [Branch: "Check database connection pooling"]
│ └── [AI: deep dive into connection pool settings]
├── [Branch: "Check async/await patterns"]
│ └── [AI: reviews code for async issues]
└── [Branch: "Check environment variables"]
└── [AI: walks through env config]
[root: "Outline an essay on AI ethics"]
└── [AI: provides outline with 5 sections]
├── [Branch: "Expand privacy section"]
│ └── [AI: detailed privacy analysis]
├── [Branch: "Expand bias section"]
│ └── [AI: detailed bias analysis]
└── [Branch: "Write introduction"]
└── [AI: draft introduction]
└── [Branch: "Make it more engaging"]
└── [AI: revised introduction]
[root: "Prepare for Q3 board meeting"]
└── [AI: suggests preparation areas]
├── [Branch: "Financial highlights"]
│ └── [AI: revenue, costs, projections]
├── [Branch: "Product roadmap"]
│ └── [AI: feature launch timeline]
└── [Branch: "Competitive landscape"]
└── [AI: competitor analysis]
└── [Distillation: executive summary]
- Name your branches mentally — know what each branch is exploring
- Collapse early — reduce visual noise for branches you're done with
- Bookmark key insights — mark responses that contain critical information
- Distill before archiving — synthesize branches before moving on
- Use auto-layout — press F to fit all nodes when the tree gets messy
- Rearrange spatially — drag nodes to group related branches together
- Prune ruthlessly — dim branches that don't serve your goal
- Leverage tendrils — let the AI suggest follow-ups to save typing time
- Combine strategies — start with a Star, follow a Chain on one branch, then Distill
- Export regularly — save important canvases before major restructuring
- Tutorial - Advanced Features in Practice — Combine all features in one workflow
- Tutorial - Using RAG with Documents — Add document context to your branches
- Advanced AI Features — Deep dive into each advanced feature
Mosaic — Branch, explore, and run code inline — an infinite canvas for AI conversations.
Built with Tauri, React, and Mistral AI.
GitHub Repository |
Report an Issue |
Releases
- Canvas and Node System
- LLM Provider Integration
- RAG System Guide
- Advanced AI Features
- Keyboard Shortcuts and UI Reference
- Tutorial - Branching and Parallel Exploration
- Tutorial - Using RAG with Documents
- Tutorial - Advanced Features in Practice
- Tutorial - Customizing Mosaic