Skip to main content

Planning System

Multi-step task orchestration — SignalPilot agents don’t just react to single requests. They can create structured plans, track progress, and dynamically adapt as your analysis evolves.
Planning transforms high-level goals into executable steps, handles dependencies automatically, and keeps you in control with analyst-in-the-loop approval.

How Planning Works

1

Analyze context

When you give a high-level request, the agent reviews:
  • Your current notebook state and available data
  • Database connections and schemas
  • dbt models and transformations (if connected)
  • Relevant Slack/Jira context (if available via MCP)
The agent gathers all relevant context before proposing a plan.
2

Draft a plan

The agent breaks your request into a step-by-step sequence:
  • Clear, actionable tasks
  • Logical ordering (handles dependencies automatically)
  • Progress tracking with checkboxes
  • Estimated complexity or notes
Agent proposing a multi-step plan
3

Ask for confirmation

Before executing anything, the agent shows you the full plan:
  • Review all steps
  • Reorder if needed
  • Add or remove steps
  • Refine instructions
  • Approve or reject
Analyst-in-the-loop approval — you always see the plan before execution.
4

Execute step by step

After approval, the agent:
  • Works through each step sequentially
  • Marks steps as done (✓) when completed
  • Updates the plan cell with progress
  • Shows results after each major step
You can pause execution at any time to review intermediate results.
5

Update dynamically

If results change or errors occur, the plan adapts:
  • Pauses on errors to show the issue
  • Suggests fixes before continuing
  • Updates remaining steps based on new information
  • Allows you to refine the plan mid-execution
Plans are living documents that evolve with your analysis.

Example: Dollar-Cost Averaging Analysis

Your request:
"Do dollar cost averaging investment in SPY every month with $1000 for the last 5 years"
Agent creates this plan:
DCA investment plan with 5 steps
## Investment Analysis Plan

- [ ] Download SPY historical data for last 5 years
- [ ] Calculate monthly investment schedule ($1000/month)
- [ ] Compute cumulative shares purchased at each period
- [ ] Calculate final portfolio value and total invested
- [ ] Generate performance visualization comparing DCA to lump sum
You review and click “Approve” Agent executes:
  1. ✓ Downloads SPY data using yfinance
  2. ✓ Creates monthly date range and investment amounts
  3. ✓ Calculates shares purchased each month at closing price
  4. ✓ Sums total shares and computes current value
  5. ✓ Generates interactive plotly chart with key metrics
Complete analysis in your notebook, ready to iterate or share.

Planning in Different Modes

Behavior: Fully autonomous after approvalWorkflow:
  1. You give high-level goal
  2. Agent creates plan
  3. You approve plan
  4. Agent executes all steps automatically
  5. Marks tasks as complete progressively
Best for: Complex analyses where you trust the agent to execute once the plan is approvedExample:
You: "Investigate why conversion dropped 8% last week"

Agent: [Creates 8-step plan including data loading, filtering,
        cohort analysis, A/B test check, visualization]

You: [Reviews, approves]

Agent: [Executes all 8 steps, updating plan as it goes]

Managing Plans

Viewing the Plan

Plans are stored in a special markdown cell at the top of your notebook:
## Analysis Plan
- [x] Load data from warehouse
- [x] Filter for 2024 Q4
- [ ] Calculate key metrics
- [ ] Generate visualizations
- [ ] Export results
The cell updates automatically as the agent works.

Modifying the Plan

You can edit the plan at any time:
After approval but before agent starts:
  • Click the plan cell
  • Add, remove, or reorder steps
  • Click “Regenerate Plan” to have agent incorporate changes

Plan Persistence

Plans are saved with your notebook:
Persists across sessions — When you reopen the notebook, the agent remembers:
  • The original plan
  • Which steps were completed
  • Where execution left off
  • Any modifications you made
If you manually delete the plan cell, the agent won’t remember progress. Keep the plan cell to maintain context.

Why Planning Matters

Handle dependencies

Agent automatically orders steps logically. You don’t need to think about “load data before analyzing it” — the agent figures out dependencies.

Track progress

Visual checkboxes show what’s done, what’s in progress, and what’s remaining. No more “wait, did I already do that?”

Adapt to errors

When something fails, the plan pauses, explains the issue, and lets you decide how to proceed. No silent failures.

Maintain control

You approve the plan upfront. No surprises. You always know what the agent will do before it does it.

Planning Best Practices

Good: “Analyze customer retention over last 6 months”Too specific: “Load customers table, filter for signup_date > ‘2024-06-01’, group by month, calculate retention rate, plot as line chart”Let the agent break down the high-level goal. You can always refine the plan after seeing it.
Check for:
  • Missing steps (e.g., data validation before analysis)
  • Wrong ordering (e.g., visualization before aggregation)
  • Unclear instructions (e.g., “analyze data” without specifics)
  • Unnecessary steps (e.g., loading data you already have)
It’s easier to fix the plan before execution than to debug issues later.
Use planning for:
  • Multi-step analyses (3+ steps)
  • Investigations with unclear scope
  • Tasks with dependencies
  • Workflows you might want to repeat
Skip planning for:
  • Single operations (“load this CSV”)
  • Quick fixes (“add error handling to cell 5”)
  • Exploration without clear goal
Use Inline Edit or simple chat for simple tasks.
Don’t let the agent run through all steps without checking:
  • Click “Pause” after key steps
  • Review the results
  • Verify the approach is working
  • Adjust the plan if needed
Catching issues early saves time.

Plan Templates (Coming Soon)

Roadmap feature: Save common plans as templates for reuse.Example templates:
  • “Weekly revenue analysis”
  • “Customer segmentation workflow”
  • “Data quality check and cleaning”
  • “A/B test analysis”
Vote on this feature in our GitHub discussions.

FAQ

To give you control. Analyst-in-the-loop approval means you review the full plan before any code runs. This prevents:
  • Unexpected changes to your notebook
  • Wasted time on wrong approaches
  • Costly database queries or API calls
  • Confusion about what the agent is doing
The plan is your chance to course-correct before execution.
The plan pauses and shows you:
  • The error message with context
  • Which step failed
  • Suggested fixes
You can then:
  • Accept the fix: Agent updates the code and continues
  • Edit manually: Fix it yourself and tell agent to continue
  • Skip the step: Move on without completing it
  • Refine the plan: Adjust instructions and retry
The agent won’t proceed until you address the failure.
Yes! You can:
  1. Click “Pause” to stop the agent
  2. Edit the plan cell (add, remove, or reorder steps)
  3. Click “Resume” or “Regenerate Plan”
  4. Agent incorporates your changes and continues
The agent adapts to plan changes dynamically.
Yes. The plan is saved as part of the notebook metadata. When you reopen the notebook:
  • The plan cell is still there
  • Completed steps are still marked ✓
  • The agent remembers where it left off
  • You can resume execution or modify the plan
This makes it easy to work on complex analyses over multiple sessions.
Yes! You can have multiple plan cells for different analyses. The agent will:
  • Track each plan independently
  • Ask which plan you want to work on if there are multiple
  • Update the relevant plan cell as it works
This is useful for notebooks with multiple distinct analyses.
If you delete the plan cell:
  • The agent loses track of progress
  • It won’t remember completed steps
  • You’ll need to start from scratch if you want planning
Don’t delete the plan cell unless you’re sure you’re done with that analysis.If you want to hide it, collapse the cell instead of deleting it.

Next Steps