Dropstone Docs

代理

配置和使用专门的代理。

代理是可以针对特定任务和工作流进行配置的专门 AI 助手。它们允许您创建具有自定义提示、模型和工具访问权限的专注工具。

提示:

使用计划代理来分析代码和审查建议,而不进行任何代码更改。

您可以在会话期间在代理之间切换,或使用 @ 提及来调用它们。


类型

Dropstone 中有两种类型的代理:主代理和子代理。


主代理

主代理是您直接交互的主要助手。您可以使用 Tab 键或配置的 switch_agent 快捷键在它们之间循环切换。这些代理处理您的主要对话。工具访问通过权限进行配置:例如,Build 启用了所有工具,而 Plan 受到限制。

提示:

您可以使用 Tab 键在会话期间在主代理之间切换。

Dropstone 附带两个内置主代理,BuildPlan。我们将在下面查看这些。


子代理

子代理是专门的助手,主代理可以为特定任务调用它们。您也可以通过在消息中 @ 提及 它们来手动调用它们。

Dropstone 附带两个内置子代理,GeneralExplore。我们将在下面查看这些。


内置

Dropstone 附带两个内置主代理和两个内置子代理。


使用 build

模式: primary

Build 是启用了所有工具的默认主代理。这是标准的开发工作代理,您需要对文件操作和系统命令拥有完全访问权限。


使用 plan

模式: primary

一个为规划和分析而设计的受限代理。我们使用权限系统为您提供更多控制权并防止意外更改。 默认情况下,以下所有内容都设置为 ask

  • file edits:所有写入、补丁和编辑
  • bash:所有 bash 命令

当您希望 LLM 分析代码、建议更改或创建计划而不对代码库进行任何实际修改时,此代理很有用。


使用 general

模式: subagent

用于研究复杂问题和执行多步任务的通用代理。具有完整的工具访问权限(除了 todo),因此在需要时可以进行文件更改。使用此功能可以并行运行多个工作单元。


使用 explore

模式: subagent

用于探索代码库的快速、只读代理。无法修改文件。当您需要快速按模式查找文件、搜索代码中的关键字或回答有关代码库的问题时,请使用此功能。


使用 compaction

模式: primary

隐藏的系统代理,将长上下文压缩为较小的摘要。它在需要时自动运行,在 UI 中不可选择。


使用 title

模式: primary

隐藏的系统代理,生成简短的会话标题。它自动运行,在 UI 中不可选择。


使用 summary

模式: primary

隐藏的系统代理,创建会话摘要。它自动运行,在 UI 中不可选择。


使用

  1. 对于主代理,在会话期间使用 Tab 键循环切换它们。您也可以使用配置的 switch_agent 快捷键。

  2. 子代理可以通过以下方式调用:

    • 自动由主代理根据其描述为专门任务调用。

    • 通过在消息中 @ 提及 子代理来手动调用。例如。

      @general help me search for this function
      
  3. 会话之间的导航:当子代理创建子会话时,使用 session_child_first(默认:<Leader>+Down)从父会话进入第一个子会话。

  4. 进入子会话后,使用:

    • session_child_cycle(默认:Right)循环到下一个子会话
    • session_child_cycle_reverse(默认:Left)循环到上一个子会话
    • session_parent(默认:Up)返回到父会话

    这让您可以在主对话和专门的子代理工作之间切换。


配置

您可以通过配置自定义内置代理或创建自己的代理。代理可以通过两种方式进行配置:


JSON

dropstone.json 配置文件中配置代理:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "agent": {
    "build": {
      "mode": "primary",
      "model": "dropstone/dropstone-pro",
      "prompt": "{file:./prompts/build.txt}",
      "permission": {
        "edit": "allow",
        "bash": "allow"
      }
    },
    "plan": {
      "mode": "primary",
      "model": "dropstone/dropstone-fast",
      "permission": {
        "edit": "deny",
        "bash": "deny"
      }
    },
    "code-reviewer": {
      "description": "Reviews code for best practices and potential issues",
      "mode": "subagent",
      "model": "dropstone/dropstone-pro",
      "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
      "permission": {
        "edit": "deny"
      }
    }
  }
}

Markdown

您也可以使用 markdown 文件定义代理。将它们放在:

  • 全局:~/.config/dropstone/agents/
  • 按项目:.dropstone/agents/
---
description: Reviews code for quality and best practices
mode: subagent
model: dropstone/dropstone-pro
temperature: 0.1
permission:
  edit: deny
  bash: deny
---

You are in code review mode. Focus on:

- Code quality and best practices
- Potential bugs and edge cases
- Performance implications
- Security considerations

Provide constructive feedback without making direct changes.

markdown 文件名成为代理名称。例如,review.md 创建一个 review 代理。


选项

让我们详细查看这些配置选项。


描述

使用 description 选项提供代理功能的简要描述以及何时使用它。

{
  "agent": {
    "review": {
      "description": "Reviews code for best practices and potential issues"
    }
  }
}

这是一个必需的配置选项。


温度

使用 temperature 配置控制 LLM 响应的随机性和创意性。

较低的值使响应更专注和确定性,而较高的值增加创意性和可变性。

{
  "agent": {
    "plan": {
      "temperature": 0.1
    },
    "creative": {
      "temperature": 0.8
    }
  }
}

温度值通常范围从 0.0 到 1.0:

  • 0.0-0.2:非常专注和确定性的响应,理想用于代码分析和规划
  • 0.3-0.5:平衡的响应,具有一定的创意性,适合一般开发任务
  • 0.6-1.0:更具创意和多样化的响应,适用于头脑风暴和探索
{
  "agent": {
    "analyze": {
      "temperature": 0.1,
      "prompt": "{file:./prompts/analysis.txt}"
    },
    "build": {
      "temperature": 0.3
    },
    "brainstorm": {
      "temperature": 0.7,
      "prompt": "{file:./prompts/creative.txt}"
    }
  }
}

如果未指定温度,Dropstone 将使用为每个层级调整的合理默认值。


最大步数

控制代理在被迫仅以文本响应之前可以执行的最大代理迭代次数。这允许希望控制成本的用户设置代理操作的限制。

如果未设置此项,代理将继续迭代,直到模型选择停止或用户中断会话。

{
  "agent": {
    "quick-thinker": {
      "description": "Fast reasoning with limited iterations",
      "prompt": "You are a quick thinker. Solve problems with minimal steps.",
      "steps": 5
    }
  }
}

达到限制时,代理会收到一个特殊的系统提示,指示它用其工作的总结和建议的剩余任务进行响应。

已弃用:

旧版 maxSteps 字段已弃用。请改用 steps


禁用

设置为 true 以禁用代理。

{
  "agent": {
    "review": {
      "disable": true
    }
  }
}

提示

使用 prompt 配置为此代理指定自定义系统提示文件。提示文件应包含特定于代理目的的说明。

{
  "agent": {
    "review": {
      "prompt": "{file:./prompts/code-review.txt}"
    }
  }
}

此路径相对于配置文件所在的位置。因此这适用于全局 Dropstone 配置和项目特定配置。


模型

使用 model 配置覆盖此代理的模型。适用于使用针对不同任务优化的不同模型。例如,用于规划的更快模型,用于实现的更强大模型。

提示:

如果您未指定模型,主代理将使用全局配置的模型,而子代理继承调用它们的主代理的模型。

{
  "agent": {
    "plan": {
      "model": "dropstone/dropstone-fast"
    }
  }
}

模型 ID 使用格式 dropstone/<tier>。使用 dropstone/dropstone-fastdropstone/dropstone-prodropstone/dropstone-heavy


工具(已弃用)

tools 已弃用。对于新配置、更新和更细粒度的控制,请优先使用代理的 permission 字段。

允许您控制此代理中可用的工具。您可以通过将它们设置为 truefalse 来启用或禁用特定工具。在代理的 tools 配置中,true 等同于 {"*": "allow"} 权限,false 等同于 {"*": "deny"} 权限。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "tools": {
    "write": true,
    "bash": true
  },
  "agent": {
    "plan": {
      "tools": {
        "write": false,
        "bash": false
      }
    }
  }
}

Note:

代理特定的配置覆盖全局配置。

您也可以在旧版 tools 条目中使用通配符来一次控制多个工具。例如,要禁用来自 MCP 服务器的所有工具:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "agent": {
    "readonly": {
      "tools": {
        "mymcp_*": false,
        "write": false,
        "edit": false
      }
    }
  }
}

了解更多关于工具的信息


权限

您可以配置权限来管理代理可以执行的操作。每个权限键可以设置为:

  • "ask":在运行工具前提示批准
  • "allow":允许所有操作而无需批准
  • "deny":禁用工具

可用的权限键为:

它控制的工具
readread
editwrite, edit, apply_patch
globglob
grepgrep
listlist
bashbash
tasktask
external_directory任何读取或写入项目工作树外文件的工具
todowritetodowrite, todoread
webfetchwebfetch
websearchwebsearch
lsplsp
skillskill
questionquestion
doom_loop当代理似乎卡住时的恢复提示

readeditglobgreplistbashtaskexternal_directorylspskill 接受简写操作("allow" | "ask" | "deny")或 glob/模式 → 操作的对象以进行细粒度控制。其余键仅接受简写操作。

Note:

权限键作为通配符模式与底层工具名称匹配,因此相同的语法适用于内置工具、自定义工具和 MCP 工具。例如 "mymcp_*": "deny" 拒绝来自 MCP 服务器的每个工具,"mymcp_search": "ask" 针对单个工具。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "edit": "deny"
  }
}

您可以覆盖每个代理的这些权限。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "edit": "deny"
  },
  "agent": {
    "build": {
      "permission": {
        "edit": "ask"
      }
    }
  }
}

您也可以在 Markdown 代理中设置权限。

---
description: Code review without edits
mode: subagent
permission:
  edit: deny
  bash:
    "*": ask
    "git diff": allow
    "git log*": allow
    "grep *": allow
  webfetch: deny
---

Only analyze code and suggest changes.

您可以为特定 bash 命令设置权限。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "agent": {
    "build": {
      "permission": {
        "bash": {
          "git push": "ask",
          "grep *": "allow"
        }
      }
    }
  }
}

这可以采用 glob 模式。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "agent": {
    "build": {
      "permission": {
        "bash": {
          "git *": "ask"
        }
      }
    }
  }
}

您也可以使用 * 通配符来管理所有命令的权限。 由于最后匹配的规则优先,请先放置 * 通配符,然后放置特定规则。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "agent": {
    "build": {
      "permission": {
        "bash": {
          "*": "ask",
          "git status *": "allow"
        }
      }
    }
  }
}

了解更多关于权限的信息


模式

使用 mode 配置控制代理的模式。mode 选项用于确定代理的使用方式。

{
  "agent": {
    "review": {
      "mode": "subagent"
    }
  }
}

mode 选项可以设置为 primarysubagentall。如果未指定 mode,则默认为 all


隐藏

使用 hidden: true@ 自动完成菜单中隐藏子代理。适用于应仅由其他代理通过 Task 工具以编程方式调用的内部子代理。

{
  "agent": {
    "internal-helper": {
      "mode": "subagent",
      "hidden": true
    }
  }
}

这仅影响自动完成菜单中的用户可见性。如果权限允许,隐藏的代理仍然可以由模型通过 Task 工具调用。

Note:

仅适用于 mode: subagent 代理。


任务权限

使用 permission.task 控制代理可以通过 Task 工具调用的子代理。使用 glob 模式进行灵活匹配。

{
  "agent": {
    "orchestrator": {
      "mode": "primary",
      "permission": {
        "task": {
          "*": "deny",
          "orchestrator-*": "allow",
          "code-reviewer": "ask"
        }
      }
    }
  }
}

设置为 deny 时,子代理将从 Task 工具描述中完全删除,因此模型不会尝试调用它。

提示:

规则按顺序评估,最后匹配的规则获胜。在上面的示例中,orchestrator-planner 同时匹配 *(拒绝)和 orchestrator-*(允许),但由于 orchestrator-** 之后,结果是 allow

提示:

用户始终可以通过 @ 自动完成菜单直接调用任何子代理,即使代理的任务权限会拒绝它。


颜色

使用 color 选项自定义代理在 UI 中的视觉外观。这影响代理在界面中的显示方式。

使用有效的十六进制颜色(例如 #FF5733)或主题颜色:primarysecondaryaccentsuccesswarningerrorinfo

{
  "agent": {
    "creative": {
      "color": "#ff6b6b"
    },
    "code-reviewer": {
      "color": "accent"
    }
  }
}

Top P

使用 top_p 选项控制响应多样性。控制随机性的温度替代方案。

{
  "agent": {
    "brainstorm": {
      "top_p": 0.9
    }
  }
}

值范围从 0.0 到 1.0。较低的值更专注,较高的值更多样化。


其他

您在代理配置中指定的任何其他选项都直接传递为模型选项。对于 Dropstone 的层级,支持的传递选项是推理深度和文本冗长性:

{
  "agent": {
    "deep-thinker": {
      "description": "Agent that uses high reasoning effort for complex problems",
      "model": "dropstone/dropstone-heavy",
      "variant": "xhigh",
      "textVerbosity": "low"
    }
  }
}

提示:

运行 dropstone models 查看可用的层级。


创建代理

您可以使用以下命令创建新代理:

dropstone agent create

此交互式命令将:

  1. 询问保存代理的位置;全局或项目特定。
  2. 代理应执行的操作的描述。
  3. 生成适当的系统提示和标识符。
  4. 让您选择代理应被允许的权限(您未选择的任何内容都被拒绝)。
  5. 最后,创建一个带有代理配置的 markdown 文件。

用例

以下是不同代理的一些常见用例。

  • Build 代理:启用所有工具的完整开发工作
  • Plan 代理:分析和规划而不进行更改
  • Review 代理:代码审查,具有只读访问权限加文档工具
  • Debug 代理:专注于调查,启用 bash 和读取工具
  • Docs 代理:文档编写,具有文件操作但没有系统命令

示例

以下是您可能会发现有用的一些示例代理。

提示:

有想要分享的代理吗?联系我们,我们会推荐它。


文档代理

---
description: Writes and maintains project documentation
mode: subagent
permission:
  bash: deny
---

You are a technical writer. Create clear, comprehensive documentation.

Focus on:

- Clear explanations
- Proper structure
- Code examples
- User-friendly language

安全审计员

---
description: Performs security audits and identifies vulnerabilities
mode: subagent
permission:
  edit: deny
---

You are a security expert. Focus on identifying potential security issues.

Look for:

- Input validation vulnerabilities
- Authentication and authorization flaws
- Data exposure risks
- Dependency vulnerabilities
- Configuration security issues
Ctrl+I