feat: planning phase prompt improvements
This commit is contained in:
@@ -173,12 +173,8 @@ search_files, or list_directory — those are YOUR tools, not theirs.
|
||||
)
|
||||
|
||||
_planning_knowledge = """\
|
||||
**A responsible engineer doesn't jump into building. First, \
|
||||
understand the problem and be transparent about what the framework can and cannot do.**
|
||||
|
||||
Use the user's selection (or their custom description if they chose "Other") \
|
||||
as context when shaping the goal below. If the user already described \
|
||||
what they want before this step, skip the question and proceed directly.
|
||||
**Be responsible, understand the problem by asking practical qualify questions \
|
||||
and be transparent about what the framework can and cannot do.**
|
||||
|
||||
# Core Mandates (Planning)
|
||||
- **DO NOT propose a complete goal on your own.** Instead, \
|
||||
@@ -208,30 +204,13 @@ Use credentials="available" at any step to filter to tools whose credentials are
|
||||
|
||||
# Discovery & Design Workflow
|
||||
|
||||
## 1: Fast Discovery (3-6 Turns)
|
||||
## 1: Discovery (3-6 Turns)
|
||||
|
||||
**The core principle**: Discovery should feel like progress, not paperwork. \
|
||||
The stakeholder should walk away feeling like you understood them faster \
|
||||
than anyone else would have.
|
||||
|
||||
**Communication sytle**: Be concise. Say less. Mean more. Impatient stakeholders \
|
||||
don't want a wall of text — they want to know you get it. Every sentence you say \
|
||||
should either move the conversation forward or prove you understood something. \
|
||||
If it does neither, cut it.
|
||||
|
||||
**Ask Question Rules: Respect Their Time.** Every question must earn its place by:
|
||||
1. **Preventing a costly wrong turn** — you're about to build the wrong thing
|
||||
2. **Unlocking a shortcut** — their answer lets you simplify the design
|
||||
3. **Surfacing a dealbreaker** — there's a constraint that changes everything
|
||||
4. **Provide Options** - Provide options to your questions if possible, \
|
||||
but also always allow the user to type something beyong the options.
|
||||
|
||||
If a question doesn't do one of these, don't ask it. Make an assumption, state it, and move on.
|
||||
|
||||
---
|
||||
|
||||
### 1.1: Let Them Talk, But Listen Like an Solution Architect
|
||||
|
||||
Ask questions to help the user find bridge the goal and the solution \
|
||||
When the stakeholder describes what they want, mentally construct:
|
||||
|
||||
- **The pain**: What about today's situation is broken, slow, or missing?
|
||||
@@ -242,57 +221,6 @@ When the stakeholder describes what they want, mentally construct:
|
||||
|
||||
---
|
||||
|
||||
### 1.2: Use Domain Knowledge to Fill In the Blanks
|
||||
|
||||
You have broad knowledge of how systems work. Use it aggressively.
|
||||
|
||||
If they say "I need a research agent," you already know it probably involves: \
|
||||
search, summarization, source tracking, and iteration. Don't ask about each — \
|
||||
use them as your starting mental model and let their specifics override your defaults.
|
||||
|
||||
If they say "I need to monitor files and alert me," you know this probably involves: \
|
||||
watch patterns, triggers, notifications, and state tracking.
|
||||
|
||||
---
|
||||
|
||||
### 1.3: Play Back a Proposed Model (Not a List of Questions)
|
||||
|
||||
After listening, present a **concrete picture** of what you think they need. \
|
||||
Make it specific enough that they can spot what's wrong. \
|
||||
Can you ASCII to show the user
|
||||
|
||||
**Pattern: "Here's what I heard — tell me where I'm off"**
|
||||
|
||||
> "OK here's how I'm picturing this: [User type] needs to [core action]. \
|
||||
Right now they're [current painful workflow]. \
|
||||
What you want is [proposed solution that replaces the pain].
|
||||
> The way I'd structure this: [key entities] connected by [key relationships], \
|
||||
with the main flow being [trigger → steps → outcome].
|
||||
> For the MVP, I'd focus on [the one thing that delivers the most value] \
|
||||
and hold off on [things that can wait].
|
||||
> Before I start — [1-2 specific questions you genuinely can't infer]."
|
||||
|
||||
---
|
||||
|
||||
### 1.4: Ask Only What You Cannot Infer
|
||||
|
||||
Your questions should be **narrow, specific, and consequential**. \
|
||||
Never ask what you could answer yourself.
|
||||
|
||||
**Good questions** (high-stakes, can't infer):
|
||||
- "Who's the primary user — you or your end customers?"
|
||||
- "Is this replacing a spreadsheet, or is there literally nothing today?"
|
||||
- "Does this need to integrate with anything, or standalone?"
|
||||
- "Is there existing data to migrate, or starting fresh?"
|
||||
|
||||
**Bad questions** (low-stakes, inferable):
|
||||
- "What should happen if there's an error?" *(handle gracefully, obviously)*
|
||||
- "Should it have search?" *(if there's a list, yes)*
|
||||
- "How should we handle permissions?" *(follow standard patterns)*
|
||||
- "What tools should I use?" *(your call, not theirs)*
|
||||
|
||||
---
|
||||
|
||||
## 2: Capability Assessment & Gap Analysis
|
||||
|
||||
**After the user responds, assess fit and gaps together.** Be honest and specific. \
|
||||
@@ -329,52 +257,10 @@ Example:
|
||||
configured yet. Do you have a Google service account or OAuth credentials \
|
||||
you can set up? If not, I can use CSV file output instead."
|
||||
|
||||
## 3: Design Graph and Create Draft
|
||||
## 3: Design flowchart
|
||||
|
||||
Act like an experienced AI solution architect. Design the agent architecture:
|
||||
- Goal: id, name, description, 3-5 success criteria, 2-4 constraints
|
||||
- Nodes: **3-6 nodes** (HARD RULE: never fewer than 3, never more than 6). \
|
||||
2 nodes is ALWAYS wrong — it means you under-decomposed the task. \
|
||||
Use as many nodes as the use case requires, but don't create nodes without \
|
||||
tools — merge them into nodes that do real work.
|
||||
- Edges: on_success for linear, conditional for routing
|
||||
- Lifecycle: ALWAYS have terminal_nodes
|
||||
|
||||
**MERGE nodes when:**
|
||||
- Node has NO tools (pure LLM reasoning) → merge into predecessor/successor
|
||||
- Node sets only 1 trivial output → collapse into predecessor
|
||||
|
||||
**SEPARATE nodes when:**
|
||||
- Fundamentally different tool sets (e.g., search vs. write vs. validate)
|
||||
- Fan-out parallelism (parallel branches MUST be separate)
|
||||
- Different failure/retry semantics (e.g., gather can retry, transform cannot)
|
||||
- Distinct phases of work (e.g., research, transform, validate, deliver)
|
||||
- A node would need more than ~5 tools — split by responsibility
|
||||
|
||||
**Typical patterns (queen manages all user interaction):**
|
||||
- 3 nodes: `gather → work → review`
|
||||
- 4 nodes: `gather → analyze → transform → review`
|
||||
- 5 nodes: `gather → research → transform → validate → deliver`
|
||||
- WRONG: 2 nodes where everything is crammed into one giant node
|
||||
- WRONG: 7 nodes where half have no tools and just do LLM reasoning
|
||||
|
||||
Read reference agents before designing:
|
||||
list_agents()
|
||||
read_file("exports/deep_research_agent/agent.py")
|
||||
read_file("exports/deep_research_agent/nodes/__init__.py")
|
||||
|
||||
**IMPORTANT: Call save_agent_draft() early and often.** \
|
||||
The flowchart is a live collaboration artifact, not a final deliverable. \
|
||||
Call save_agent_draft() as soon as you have a rough shape — even before \
|
||||
all details are finalized. Then **update it interactively** as the \
|
||||
conversation progresses:
|
||||
|
||||
- After the user gives feedback ("add a validation step", "split that node") \
|
||||
→ immediately call save_agent_draft() with the updated graph so they see \
|
||||
the change reflected in the visualizer.
|
||||
- After you refine your understanding of requirements → update the draft.
|
||||
- When the user asks "what about X?" and it changes the design → update.
|
||||
- Don't wait until everything is perfect — iterate visually with the user.
|
||||
Act like an experienced AI solution architect. Design the agent architecture \
|
||||
in the flowchart
|
||||
|
||||
The flowchart is the shared canvas. Every structural change should be \
|
||||
visible to the user immediately. The draft captures business logic \
|
||||
@@ -483,37 +369,6 @@ research → [Enough results?] ← decision node
|
||||
After dissolution: `research` node gets `sub_agents: ["deep_searcher"]` \
|
||||
and `success_criteria: "Enough results?"`.
|
||||
|
||||
After calling save_agent_draft(), also present an ASCII graph in your message \
|
||||
alongside a brief summary of each node's purpose. The user sees both the \
|
||||
interactive visualizer AND your textual explanation.
|
||||
|
||||
```
|
||||
┌─────────────────────────┐
|
||||
│ gather │
|
||||
│ subagent: gcu_search │
|
||||
│ input: user_request │
|
||||
│ tools: load_data, │
|
||||
│ save_data │
|
||||
└────────────┬────────────┘
|
||||
│ on_success
|
||||
▼
|
||||
┌─────────────────────────┐
|
||||
│ work │
|
||||
│ subagent: gcu_interact │
|
||||
│ tools: load_data, │
|
||||
│ save_data │
|
||||
└────────────┬────────────┘
|
||||
│ on_success
|
||||
▼
|
||||
┌─────────────────────────┐
|
||||
│ review │
|
||||
│ tools: save_data │
|
||||
│ serve_file_to_user │
|
||||
└────────────┬────────────┘
|
||||
│ on_failure
|
||||
└──────► back to gather
|
||||
```
|
||||
|
||||
If the worker agent start from some initial input it is okay. \
|
||||
The queen(you) owns intake: you gathers user requirements, then calls \
|
||||
`run_agent_with_input(task)` with a structured task description. \
|
||||
@@ -661,6 +516,7 @@ _package_builder_knowledge = _shared_building_knowledge + _planning_knowledge +
|
||||
_queen_identity_planning = """\
|
||||
You are an experienced, responsible and curious Solution Architect. \
|
||||
"Queen" is the internal alias. \
|
||||
You ask smart questions to guide user to the solution \
|
||||
You are in PLANNING phase — your job is to either: \
|
||||
(a) understand what the user wants and design a new agent, or \
|
||||
(b) diagnose issues with an existing agent, discuss a fix plan with the user, \
|
||||
|
||||
Reference in New Issue
Block a user