From 2a236e413723f207c2f6c1e8921fab4f071d0445 Mon Sep 17 00:00:00 2001 From: Salman Mohammed Date: Thu, 20 Aug 2026 10:59:57 -0400 Subject: [PATCH] refactor(prompt): simplify Buzz agent guidance (#6340) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Why The Buzz agent prompt carries verbose agent-draft instructions that add prompt weight without improving benchmark correctness. Buzz-native channel trials also showed agents creating permanent channels while claiming they had applied a one-hour TTL. The static CLI inventory remains for efficient command discovery by smaller agents. ## What - Retain the static Buzz CLI command table and direct agents to use `--help` for full usage - Compact the owner-reviewed agent-draft guidance without changing its workflow - Clarify that `buzz channels create` is permanent unless `--ttl` is provided ## Benchmark Results - Terminal-Bench retained 22/22 correctness in the initial no-table candidate while reducing prompt size, input tokens, tool calls, and cost; total active time was effectively flat. - Across two Buzz-native runs, the non-channel cases tied at 26/30; the CLI clarification directly addresses the observed TTL omission. ## Update — 2026-08-20 - Restored the CLI command table following review feedback about multistep discovery with smaller agents. The restored-table candidate has not been re-benchmarked. Signed-off-by: Salman Mohammed --- crates/buzz-acp/src/base_prompt.md | 8 ++------ crates/buzz-cli/src/lib.rs | 5 +++-- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/crates/buzz-acp/src/base_prompt.md b/crates/buzz-acp/src/base_prompt.md index 7eeb070d17..471dab8695 100644 --- a/crates/buzz-acp/src/base_prompt.md +++ b/crates/buzz-acp/src/base_prompt.md @@ -37,13 +37,9 @@ To assign an issue to someone, run `buzz issues assign --issue --repo ## Conversational Agent Creation -When someone asks to create an agent, ask for at most two things: the agent's name and what it should do day-to-day. Turn the user's rough purpose into the `--system-prompt` yourself; do not separately ask for purpose, tone, constraints, access, runtime, provider, or model unless the user's request is genuinely ambiguous. +When someone asks to create an agent, ask for at most two things: its name and what it should do day-to-day. Write the `--system-prompt` yourself. Do not ask about runtime, provider, model, credentials, environment variables, or access unless the request is genuinely ambiguous. -`buzz agents draft-create --channel --display-name --system-prompt ` - -Use the channel UUID from `[Context]`. Do not ask about runtime, provider, model, credentials, environment variables, or access: Buzz Desktop resolves local runtime/provider/model defaults and new agents default to owner-only access. The command only opens a reviewable draft in the owner's Desktop; never claim the agent exists until the owner saves it. - -For explicit changes to an existing personal agent, use `buzz agents draft-update --help`. Draft updates also require owner review and save. +Open an owner-reviewed draft with `buzz agents draft-create --channel --display-name --system-prompt `, using the UUID from `[Context]`. Never claim the agent exists until the owner saves it. For explicit changes to an existing personal agent, use `buzz agents draft-update --help`. ## Communication Patterns diff --git a/crates/buzz-cli/src/lib.rs b/crates/buzz-cli/src/lib.rs index 2b041da57b..5faa47e8cf 100644 --- a/crates/buzz-cli/src/lib.rs +++ b/crates/buzz-cli/src/lib.rs @@ -582,8 +582,9 @@ pub enum ChannelsCmd { /// Channel description #[arg(long)] description: Option, - /// Make the channel ephemeral: lifetime in seconds. The relay archives - /// it once this many seconds pass without a new message. + /// Make the channel temporary/ephemeral: idle lifetime in seconds. If + /// omitted, the channel is permanent. The relay archives it once this + /// many seconds pass without a new message. #[arg(long, value_name = "SECONDS")] ttl: Option, /// Apply a desktop-local channel template by name (case-insensitive):