-
Notifications
You must be signed in to change notification settings - Fork 2.6k
feat: add /plan command in CLI to invoke reasoner with plan system prompt #1616
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
crates/goose-cli/src/session/mod.rs
Outdated
| use goose::model::ModelConfig; | ||
| use goose::providers::create; | ||
|
|
||
| // TODO: hacky to create a new provider for the planner each time plan is called |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the reasoning model only used for the /plan call? Assuming we switch back to the prior model_config after planning is finished?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes right now its only used for the /plan call
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
crates/goose-cli/src/session/mod.rs
Outdated
| reasoner_provider = "openai".to_string(); | ||
| reasoner_model = "o1-high".to_string(); | ||
| } else if model.starts_with("o1") || model.starts_with("o3-mini") { | ||
| reasoner_provider = "openai".to_string(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we have to validate the effort - high / medium / low only?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should be validated in the openai provider
| /extension <command> - Add a stdio extension (format: ENV1=val1 command args...) | ||
| /builtin <names> - Add builtin extensions by name (comma-separated) | ||
| /prompts [--extension <name>] - List all available prompts, optionally filtered by extension | ||
| /prompts [--extension <n>] - List all available prompts, optionally filtered by extension |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor: why n from name? n almost implies a number/index to me
i guess /prompt <n> just under it is not using name either though
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this was probably copilot making random change
| if parts.is_empty() { | ||
| println!("For the /plan command, you must provide message text but none was provided."); | ||
| println!("Usage: /plan --model=<model> <message_text>"); | ||
| return None; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you just type /plan and hit enter you get this message and then the agent loop continues:
( O)> /plan
For the /plan command, you must provide message text but none was provided.
Usage: /plan --model=<model> <message_text>
◓ Honking thoughtfully...
# Planning Session
I'd be happy to help you with planning. Let me guide you through a planning session where we can outline your goals, tasks, or projects.
## How I Can Help
...
Probably want to return Some(InputResult::Retry) to put them back into the prompt
| if options.message_text.is_empty() { | ||
| println!("For the /plan command, you must provide message text but none was provided."); | ||
| println!("Usage: /plan --model=<model> <message_text>"); | ||
| return None; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as above
* origin/main: (74 commits) config: add optional extension description (#1743) docs: add deployment for install link generator (#1737) ui: new configure provider flow (#1736) Revert "Standardize Radio Button input" (#1758) Settings v2 Add Model (#1708) fix: use lowercase names for builtin external extensions (#1756) chore(release): release version 1.0.15 (#1749) docs: goosing around: langfuse blog (#1746) feat: update the deny call response (#1741) feat: refactor register eval (#1713) fix: Goose UI fix typos (#1744) feat(google_drive): comment read (#1732) feat: build cli workflow (#1697) fix: fix initial model configuration in cli when using toolshim (#1720) feat: add basic support for aws bedrock to desktop app (#1271) feat(google_drive): add image resizing logic from developer, and use Content::Image (#1735) Standardize Radio Button input (#1701) ui: tweaks to settings v2 (#1731) feat(google_drive): set read/write scope on all commands to use the same token (#1707) refactor: clean up log usage (#1704) ...
kalvinnchau
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔥 ! love the /plan mode
looks like a failing test, but overall lgtm!
michaelneale
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Like this - any chance can have a GUI treatment that is appropriate for plan/execute mode? (seperate PR)
|
@michaelneale i talked to design team and wanted to ship this in CLI first as experimental feature |
* origin/main: (74 commits) docs: add youtube vscode short (#1809) blog: Goose Boston Meetup (#1805) docs: Choosing the Right Prompting Style Blog (#1794) docs: Asana tutorial (#1806) docs: add langfuse tutorial to blog (#1755) docs: Add VS Code tutorial (#1798) feat: can read and write to google sheets now (#1784) tweak darkmode for modal (#1797) docs: asana and gcal blog post (#1796) fix: update experimental features docs (#1781) docs: Remove Installer Link From Filesystem Tutorial (#1795) alexhancock/remove-little-gap (#1793) fix: #1562 - Only show text portion of goose message if there is text to display (#1791) feat: add /plan command in CLI to invoke reasoner with plan system prompt (#1616) docs: Adding Trigger Words to Memory Tutorial (#1783) docs: Add prompt completion (#1787) fix: check if working directory has changed before asking (#1733) extensions: add a display name field (#1759) ui: add logs to app (#1760) docs: add stdin (#1769) ...

to test with o1, o3:
or claude 3.7 sonnet: