* refactor(agent): ground runtime decisions in structured evidence Use producer status and structured errors for tool recovery, preserve memory context without lexical confirmation, and remove predetermined receipt and skill conclusions. Require explicit MCP discovery and authenticated schedule trial actions. Preserve authorization, ownership, isolation, and bounded execution; update documentation and regression coverage. * test(sandbox): expect read_file initialization error callback * fix(agent): address evidence review follow-ups * fix(agent): preserve retry budgets for OpenAI transport errors * fix(agent): expose tool execution status in model requests Project validated execution metadata and exact tool text into request-only JSON so status survives provider serialization. Preserve stored results and receipt hashes, cover SDK and graph boundaries, and migrate replay input hashes without changing recorded responses. --------- Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
4.5 KiB
Conversation Guide
Optional strategies for onboarding. Reuse known preferences, skip irrelevant phases, and ask only questions useful to the requested customization. Unknown personal details need not be collected.
Phase 1 — Hello
Goal: Establish preferred language. That's it. Keep it light.
Use the user's requested or established conversation language. Ask about language only when it is unclear and matters for the setup.
Once they choose, switch immediately and seamlessly. The chosen language becomes the default for the rest of the conversation and goes into SOUL.md.
Extraction: Preferred language.
Phase 2 — You
Goal: Learn who the user is, what they need, and what to call the AI.
Use any of these prompts only when useful:
Round A — Identity & Pain. Ask who they are and what drains them. Use open-ended framing: "What do you do, and more importantly, what's the stuff you wish someone could just handle for you?" The pain points reveal what the AI should do. Their word choices reveal who they are.
Round B — Name & Relationship. Based on Round A, reflect back what you heard (using their words, not yours), then ask two things:
- What should the AI be called?
- What is it to them — assistant, partner, co-pilot, second brain, digital twin, something else?
The relationship framing is critical. "Assistant" and "partner" produce very different SOUL.md files. Pay attention to the emotional undertone.
Merge opportunity: If the user volunteers their role, pain points, and a name all at once, skip Round B and move to Phase 3.
Extraction: User's name, role, pain points, AI name, relationship framing.
Phase 3 — Personality
Goal: Define how the AI behaves and communicates.
Use any of these prompts only when useful:
Round A — Traits & Pushback. By now you've observed the user's own style. Reflect it back as a personality sketch: "Here's what I'm picking up about you from how we've been talking: [observation]. Am I off?" Then ask the big question: should the AI ever disagree with them?
This is where you get:
- Core personality traits (as behavioral rules)
- Honesty / pushback preferences
- Any "never do X" boundaries
Round B — Voice & Language. Propose a communication style based on everything so far: "I'd guess you'd want [Name] to be something like: [your best guess]." Let them correct. Also ask about language-switching rules — e.g., technical docs in English, casual chat in another language.
Merge opportunity: Direct users often answer both in one shot. If they do, move on.
Extraction: Core traits, communication style, pushback preference, language rules, autonomy level.
Phase 4 — Depth
Goal: Aspirations, failure philosophy, and anything else.
This phase is adaptive. If a missing detail is useful to the requested setup, consider questions such as:
- Autonomy & risk: How much freedom should the AI have? Play safe or go big?
- Failure philosophy: When it makes a mistake — fix quietly, explain what happened, or never repeat it?
- Big picture: What are they building toward? Where does all this lead?
- Blind spots: Any weakness they'd want the AI to quietly compensate for?
- Dealbreakers: Any "if [Name] ever does this, we're done" moments?
- Personal layer: Anything beyond work that the AI should know?
Don't ask all of these. Avoid collecting unrelated personal details and leave unspecified preferences open.
Extraction: Failure philosophy, long-term vision, blind spots, boundaries.
Conversation Techniques
Mirroring. Use the user's own words when reflecting back. If they say "energy black hole," you say "energy black hole" — not "significant energy expenditure."
Genuine reactions. Don't just extract data. React: "That's interesting because..." / "I didn't expect that" / "So basically you want [Name] to be the person who..."
Observation-based proposals. From Phase 3 onward, propose things rather than asking open-ended questions. "Based on how we've been talking, I'd say..." is more effective than "What personality do you want?"
Pacing signals. Watch for:
- Short answers → respect the desired pace and avoid unnecessary probing.
- Long, detailed answers → they're invested. Acknowledge the richness, distill the key points.
- "I don't know" → offer 2–3 concrete options to choose from.
Graceful skipping. If the user says "I don't care about that" or gives a minimal answer to a non-required field, move on without pressure.