工具
管理LLM可以使用的工具。
工具允许LLM在您的代码库中执行操作。Dropstone附带一组内置工具,但您可以通过自定义工具或MCP服务器扩展它。
默认情况下,所有工具都是启用的,不需要权限即可运行。您可以通过权限控制工具行为。
配置
使用permission字段控制工具行为。您可以为每个工具允许、拒绝或要求批准。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "deny",
"bash": "ask",
"webfetch": "allow"
}
}
您还可以使用通配符一次控制多个工具。例如,要求批准来自MCP服务器的所有工具:
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"mymcp_*": "ask"
}
}
了解更多关于配置权限的信息。
内置工具
以下是Dropstone中可用的所有内置工具。
bash
在您的项目环境中执行shell命令。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"bash": "allow"
}
}
此工具允许LLM运行终端命令,如npm install、git status或任何其他shell命令。
edit
使用精确字符串替换修改现有文件。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
此工具通过替换精确文本匹配来对文件进行精确编辑。这是LLM修改代码的主要方式。
write
创建新文件或覆盖现有文件。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
使用此工具允许LLM创建新文件。如果文件已存在,它将覆盖现有文件。
Note
write工具由edit权限控制,该权限涵盖所有文件修改(edit、write、apply_patch)。
read
从您的代码库中读取文件内容。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"read": "allow"
}
}
此工具读取文件并返回其内容。它支持读取大文件的特定行范围。
grep
使用正则表达式搜索文件内容。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"grep": "allow"
}
}
在您的代码库中进行快速内容搜索。支持完整的正则表达式语法和文件模式过滤。
glob
通过模式匹配查找文件。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"glob": "allow"
}
}
使用glob模式(如**/*.js或src/**/*.ts)搜索文件。返回按修改时间排序的匹配文件路径。
lsp(实验性)
与您配置的LSP服务器交互,获取代码智能功能,如定义、引用、悬停信息和调用层次结构。
实验性
LSP工具是实验性的,默认禁用。行为可能会在版本之间发生变化。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"lsp": "allow"
}
}
支持的操作包括goToDefinition、findReferences、hover、documentSymbol、workspaceSymbol、goToImplementation、prepareCallHierarchy、incomingCalls和outgoingCalls。
要配置哪些LSP服务器可用于您的项目,请参阅LSP服务器。
apply_patch
将补丁应用到文件。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
此工具将补丁文件应用到您的代码库。适用于应用来自各种来源的差异和补丁。
在处理tool.execute.before或tool.execute.after钩子时,检查input.tool === "apply_patch"(而不是"patch")。
apply_patch使用output.args.patchText而不是output.args.filePath。路径嵌入在patchText中的标记行内,相对于项目根目录(例如:*** Add File: src/new-file.ts、*** Update File: src/existing.ts、*** Move to: src/renamed.ts、*** Delete File: src/obsolete.ts)。
Note
apply_patch工具由edit权限控制,该权限涵盖所有文件修改(edit、write、apply_patch)。
skill
加载一个技能(一个SKILL.md文件)并在对话中返回其内容。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"skill": "allow"
}
}
todowrite
在编码会话期间管理待办事项列表。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"todowrite": "allow"
}
}
创建和更新任务列表,以跟踪复杂操作期间的进度。LLM使用此工具来组织多步骤任务。
Note
此工具默认对子代理禁用,但您可以手动启用它。了解更多。
webfetch
获取网页内容。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"webfetch": "allow"
}
}
允许LLM获取和读取网页。适用于查找文档或研究在线资源。
websearch
搜索网络获取信息。当您登录Dropstone时,默认可用。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"websearch": "allow"
}
}
执行网络搜索以查找相关信息。适用于研究主题、查找当前事件或收集超出训练数据截止日期的信息。当您登录Dropstone时,无需API密钥或额外设置。
Tip
当您需要查找信息(发现)时使用websearch,当您需要从特定URL检索内容(检索)时使用webfetch。
question
在执行期间向用户提问。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"question": "allow"
}
}
此工具允许LLM在任务期间向用户提问。它适用于:
- 收集用户偏好或需求
- 澄清模糊的指令
- 获取实现选择的决策
- 提供关于方向的选项
每个问题包括标题、问题文本和选项列表。用户可以从提供的选项中选择或输入自定义答案。当有多个问题时,用户可以在提交所有答案之前导航它们。
自定义工具
自定义工具允许您定义自己的函数,LLM可以调用这些函数。这些在您的配置文件中定义,可以执行任意代码。
了解更多关于创建自定义工具的信息。
MCP服务器
MCP(模型上下文协议)服务器允许您集成外部工具和服务。这包括数据库访问、API集成和第三方服务。
了解更多关于配置MCP服务器的信息。
忽略模式
默认情况下,grep和glob尊重您的.gitignore:列出的文件和目录将从搜索和列表中排除。
要包含通常会被忽略的文件,请在项目根目录创建.ignore文件。此文件可以显式允许某些路径。
!node_modules/
!dist/
!build/
例如,此.ignore文件允许在node_modules/、dist/和build/目录中进行搜索,即使它们列在.gitignore中。