更新 Agent Tools 文本,优化描述和参数说明

This commit is contained in:
Creator
2025-12-13 01:12:01 +08:00
parent b7871dc2f4
commit b50ea4ac4c

View File

@@ -1,16 +1,15 @@
[
{
"description": "查找代码库中与搜索查询最相关的代码片段。\n这是一个语义搜索工具因此查询应该要求在语义上匹配所需内容。\n如果仅在特定目录中进行搜索有意义,请在 target_directories 字段中指定它们。\n除非有明确理由使用您自己的搜索查询,否则请直接重用用户带有其措辞的精确查询。\n他们精确的措辞/措辞通常有助于语义搜索查询。保持相同的确问题格式也可能有所帮助。",
"description": "代码库中查找与搜索查询最相关的代码片段。\n这是一个语义搜索工具因此查询应该语义化地询问所需内容。\n如果仅在特定目录中搜索有意义请在 target_directories 字段中指定它们。\n除非有明确理由使用您自己的搜索查询否则请直接重用用户的确切查询及其措辞。\n他们的确切措辞/表达方式通常对语义搜索查询很有帮助。保持相同的确问题格式也很有帮助。",
"name": "codebase_search",
"parameters": {
"properties": {
"explanation": {
"description": "关于为何使用此工具以及它如何有助于目标的一句话解释。",
"description": "一句话解释为什么使用此工具以及它如何有助于实现目标。",
"type": "string"
},
"query": {
"description": "用于查找相关代码的搜索查询。除非有明确理由不这样做,否则您应该重用用户精确的查询/最近的消息,并保留其措辞。",
"description": "用于查找相关代码的搜索查询。除非有明确理由,否则您应该重用用户的确切查询/最新消息及其措辞。",
"type": "string"
},
"target_directories": {
@@ -28,16 +27,16 @@
}
},
{
"description": "读取文件的内容。此工具调用的输出将是文件中从 start_line_one_indexed 到 end_line_one_indexed_inclusive(包含)的 1-索引内容,以及 start_line_one_indexed 和 end_line_one_indexed_inclusive 之外的行的摘要。\n请注意此调用一次最多可以查看 250 行,最少 200 行。\n\n使用此工具收集信息时您有责任确保拥有**完整的上下文**。具体来说,每次调用此命令时,您应该:\n1) 评估您查看的内容是否足以继续您的任务。\n2) 记下未显示的行。\n3) 如果您查看的文件内容不足,并且您怀疑它们可能在未显示的行中,请**主动**再次调用该工具以查看这些行。\n4) 如果不确定,请再次调用此工具以收集更多信息。请记住,部分文件视图可能会遗漏关键的依赖项、导入或功能。\n\n在某些情况下如果读取一系列行不够,您可以选择读取整个文件。\n读取整个文件通常是浪费且缓慢的特别是对于大文件(即数百行以上)。因此您应该**谨慎**使用此选项。\n在大多数情况下不允许读取整个文件。**仅当文件已被用户编辑或手动附加到对话中时,才允许读取整个文件**。",
"description": "读取文件的内容。此工具调用的输出将是从 start_line_one_indexed 到 end_line_one_indexed_inclusive 的 1 索引文件内容,以及 start_line_one_indexed 和 end_line_one_indexed_inclusive 之外的行的摘要。\n请注意此调用一次最多可以查看 250 行,最少 200 行。\n\n使用此工具收集信息时,您有责任确保拥有完整的上下文。具体来说,每次调用此命令时,您应该:\n1) 评估您查看的内容是否足以继续执行任务。\n2) 注意哪里有未显示的行。\n3) 如果您查看的文件内容不足,并且您怀疑它们可能在未显示的行中,请主动再次调用该工具以查看这些行。\n4) 如有疑问,请再次调用此工具以收集更多信息。请记住,部分文件视图可能会错过关键的依赖项、导入或功能。\n\n在某些情况下如果读取一定范围的行还不够,您可以选择读取整个文件。\n读取整个文件通常是浪费且缓慢的尤其是对于大文件(即超过几百行)。因此您应该谨慎使用此选项。\n在大多数情况下不允许读取整个文件。只有在文件已被编辑或用户手动附加到对话中时,才允许读取整个文件。",
"name": "read_file",
"parameters": {
"properties": {
"end_line_one_indexed_inclusive": {
"description": "结束读取的 1-索引行号(包含)。",
"description": "结束读取的 1 索引行号(包含)。",
"type": "integer"
},
"explanation": {
"description": "关于为何使用此工具以及它如何有助于目标的一句话解释。",
"description": "一句话解释为什么使用此工具以及它如何有助于实现目标。",
"type": "string"
},
"should_read_entire_file": {
@@ -45,11 +44,11 @@
"type": "boolean"
},
"start_line_one_indexed": {
"description": "开始读取的 1-索引行号(包含)。",
"description": "开始读取的 1 索引行号(包含)。",
"type": "integer"
},
"target_file": {
"description": "要读取的文件路径。您可以使用工作区中的相对路径或绝对路径。如果提供绝对路径,它将保持不变。",
"description": "要读取的文件路径。您可以使用工作区中的相对路径或绝对路径。如果提供绝对路径,它将按原样保留。",
"type": "string"
}
},
@@ -63,7 +62,7 @@
}
},
{
"description": "**提议**一个代表用户运行的命令。\n如果您有此工具,请注意您**确实**有能力直接在用户的系统上运行命令。\n请注意用户必须批准命令才能执行。\n用户可能会拒绝它,或者在批准之前修改命令。如果他们确实进行了更改,请将这些更改考虑在内。\n在用户批准之前实际命令**不会**执行。用户可能不会立即批准。**不要**假设命令已开始运行。\n如果步骤正在**等待**用户批准,则它**尚未**开始运行。\n使用这些工具时请遵守以下准则\n1. 根据对话内容,您将被告知您是否与上一步在同一个 shell 中在不同的 shell 中。\n2. 如果在新的 shell 中,除了运行命令外,您还应该 `cd` 到适当的目录并进行必要的设置。\n3. 如果在同一个 shell 中,请**查看聊天记录**以了解您当前的工作目录。\n4. 对于**任何**需要用户交互的命令,请**假定用户无法进行交互**并**传递非交互式标志**(例如 `npx``--yes`)。\n5. 如果命令使用分页器,请 ` | cat` 附加到命令后。\n6. 对于长时间运行/预无限期运行直到中断的命令,请在后台运行它们。要在后台运行作业,请将 `is_background` 设置为 `true`,而不是更改命令的详细信息。\n7. 命令中不要包含任何换行符。",
"description": "提议代表用户运行的命令。\n如果您有此工具请注意您确实有能力直接在用户的系统上运行命令。\n请注意用户必须在执行命令之前批准命令。\n如果用户不喜欢可能会拒绝它,或者可能在批准之前修改命令。如果他们确实更改了它,请考虑这些更改。\n实际命令在用户批准之前不会执行。用户可能不会立即批准它。不要假设命令已开始运行。\n如果步骤正在等待用户批准,则它尚未开始运行。\n使用这些工具时,请遵守以下准则:\n1. 根据对话内容,系统会告诉您是在与先前步骤相同的 shell 中还是在不同的 shell 中。\n2. 如果在新的 shell 中,除了运行命令外,您还应该 `cd` 到适当的目录并进行必要的设置。\n3. 如果在同一个 shell 中,请在聊天历史记录中查找您当前的工作目录。\n4. 对于任何需要用户交互的命令,假设用户不可用于交互,并传递非交互式标志(例如 npx 的 --yes。\n5. 如果命令使用分页器,请在命令后附加 ` | cat`。\n6. 对于长时间运行/预无限期运行直到中断的命令,请在后台运行它们。要在后台运行作业,请将 `is_background` 设置为 true而不是更改命令的详细信息。\n7. 命令中不要包含任何换行符。",
"name": "run_terminal_cmd",
"parameters": {
"properties": {
@@ -72,7 +71,7 @@
"type": "string"
},
"explanation": {
"description": "关于为何需要运行此命令以及它如何有助于目标的一句话解释。",
"description": "一句话解释为什么需要运行此命令以及它如何有助于实现目标。",
"type": "string"
},
"is_background": {
@@ -88,16 +87,16 @@
}
},
{
"description": "列出目录的内容。在进行语义搜索或文件读取等更有针对性的工具之前用于发现的快速工具。有助于在深入研究特定文件之前尝试了解文件结构。可用于探索代码库。",
"description": "列出目录的内容。这是在使用语义搜索或文件读取等更有针对性的工具之前用于发现的快速工具。在深入研究特定文件之前,用于尝试了解文件结构。可用于探索代码库。",
"name": "list_dir",
"parameters": {
"properties": {
"explanation": {
"description": "关于为何使用此工具以及它如何有助于目标的一句话解释。",
"description": "一句话解释为什么使用此工具以及它如何有助于实现目标。",
"type": "string"
},
"relative_workspace_path": {
"description": "相对于工作区根目录,要列出内容的路径。",
"description": "要列出内容的路径,相对于工作区根目录。",
"type": "string"
}
},
@@ -108,7 +107,7 @@
}
},
{
"description": "### 说明:\n这最适合查找精确的文本匹配或正则表达式模式。\n当我们知道在某些目录/文件类型中搜索的确符号/函数名称/等时,它比语义搜索更受欢迎。\n\n使用此工具可以使用 `ripgrep` 引擎对文本文件运行快速、精确的正则表达式搜索。\n为避免输出过多结果最多限制为 50 个匹配项。\n使用包含或排除模式按文件类型或特定路径过滤搜索范围。\n\n- 始终转义特殊的正则表达式字符:` ( ) [ ] { } + * ? ^ $ | . \\`\n- 当这些字符出现在搜索字符串中时,使用 `\\` 对其进行转义。\n- **不要**执行模糊或语义匹配。\n- 仅返回有效的正则表达式模式字符串。\n\n### 示例:\n| 字面值               | 正则表达式模式            |\n|-----------------------|--------------------------|\n| function(             | function\\(              |\n| value[index]          | value\\[index\\]         |\n| file.txt               | file\\.txt                |\n| user|admin            | user\\|admin             |\n| path\\to\\file         | path\\\\to\\\\file        |\n| hello world           | hello world              |\n| foo\\(bar\\)          | foo\\\\(bar\\\\)         |",
"description": "### 说明:\n这最适合查找精确的文本匹配或正则表达式模式。\n当我们知道在某些目录/文件类型中搜索的确符号/函数名称等时,首选此方法而不是语义搜索。\n\n使用此工具使用 `ripgrep` 引擎对文本文件运行快速、精确的正则表达式搜索。\n为避免输出过多结果上限为 50 个匹配项。\n使用包含或排除模式按文件类型或特定路径过滤搜索范围。\n\n- 始终转义特殊的正则表达式字符:( ) [ ] { } + * ? ^ $ | . \\\n- 当这些字符出现在搜索字符串中时,使用 `\\` 转义它们。\n- 不要执行模糊或语义匹配。\n- 仅返回有效的正则表达式模式字符串。\n\n### 示例:\n| 字面值 | 正则表达式模式 |\n|-----------------------|--------------------------|\n| function( | function\\( |\n| value[index] | value\\[index\\] |\n| file.txt | file\\.txt |\n| user|admin | user\\|admin |\n| path\\to\\file | path\\\\to\\\\file |\n| hello world | hello world |\n| foo\\(bar\\) | foo\\\\(bar\\\\) |",
"name": "grep_search",
"parameters": {
"properties": {
@@ -121,11 +120,11 @@
"type": "string"
},
"explanation": {
"description": "关于为何使用此工具以及它如何有助于目标的一句话解释。",
"description": "一句话解释为什么使用此工具以及它如何有助于实现目标。",
"type": "string"
},
"include_pattern": {
"description": "要包含的文件的 Glob 模式(例如TypeScript 文件的 '*.ts'",
"description": "要包含的文件的 Glob 模式(例如 '*.ts' 表示 TypeScript 文件)",
"type": "string"
},
"query": {
@@ -140,20 +139,20 @@
}
},
{
"description": "使用此工具提议现有文件进行编辑或创建新文件。\n\n这将由一个不太智能的模型读取该模型将快速应用编辑。您应该清楚地说明编辑内容,同时最大限度地减少您编写的未更改代码。\n编写编辑时,您应该按顺序指定每个编辑,并使用特殊注释 `// ... existing code ...` 来表示编辑行之间未更改代码。\n\n例如\n\n```\n// ... existing code ...\nFIRST_EDIT\n// ... existing code ...\nSECOND_EDIT\n// ... existing code ...\nTHIRD_EDIT\n// ... existing code ...\n```\n\n您仍应倾向于重复尽可能少原始文件行来传达更改。\n但是每个编辑都应包含您正在编辑的代码周围足够的未更改行的上下文以解决歧义。\n**不要**在不使用 `// ... existing code ...` 注释来指示其缺失的情况下省略预先存在的代码(或注释)跨度。如果您省略现有代码注释,模型可能会意外删除这些行。\n确保清楚地说明编辑应该是什么,以及应该在哪里应用。\n要创建新文件只需在 `code_edit` 字段中指定文件的内容即可。\n\n您应该在其他参数之前指定以下参数`[target_file]`\n\n**始终**在单个 `edit_file` 中对文件进行所有编辑,而不是对同一文件进行多次 `edit_file` 调用。应用模型可以一次处理许多不同的编辑。编辑多个文件时,**始终**并行进行 `edit_file` 调用。",
"description": "使用此工具提议编辑现有文件或创建新文件。\n\n这将由一个不太智能的模型读取该模型将快速应用编辑。您应该明确编辑是什么,同时尽量减少您编写的未更改代码。\n编写编辑时您应该按顺序指定每个编辑并使用特殊注释 `// ... existing code ...` 来表示编辑行之间未更改代码。\n\n例如\n\n```\n// ... existing code ...\nFIRST_EDIT\n// ... existing code ...\nSECOND_EDIT\n// ... existing code ...\nTHIRD_EDIT\n// ... existing code ...\n```\n\n您仍应尽可能少地重复原始文件的行以传达更改。\n但是每个编辑都应包含您正在编辑的代码周围未更改行的足够上下文以解决歧义。\n不要在不使用 `// ... existing code ...` 注释来指示其缺失的情况下省略现有代码的范围(或注释)。如果您省略现有代码注释,模型可能会无意中删除这些行。\n确保清楚编辑应该是什么以及应该在哪里应用。\n要创建新文件只需在 `code_edit` 字段中指定文件的内容。\n\n您应该在其他参数之前指定以下参数[target_file]\n\n始终在单个 edit_file 中对文件进行所有编辑,而不是对同一文件进行多edit_file 调用。应用模型可以一次处理许多不同的编辑。编辑多个文件时,始终进行并行的 edit_file 调用。",
"name": "edit_file",
"parameters": {
"properties": {
"code_edit": {
"description": "**仅**指定您希望编辑的精确代码行。**切勿**指定或写出未更改的代码。相反,使用您正在编辑的语言的注释来表示所有未更改的代码 - 示例:`// ... existing code ...`",
"description": "指定您希望编辑的精确代码行。**永远不要指定或写出未更改的代码**。相反,使用您正在编辑的语言的注释来表示所有未更改的代码 - 示例:`// ... existing code ...`",
"type": "string"
},
"instructions": {
"description": "描述您将要对草图编辑执行的操作的一句话说明。这用于帮助不太智能的模型应用编辑。请使用第一人称描述您将要做的事情。不要重复您之前在普通消息中说过的话。并用它来消除编辑中的不确定性。",
"description": "一句话指令,描述您将为草拟的编辑做什么。这用于帮助不太智能的模型应用编辑。请使用第一人称描述您将要做什么。不要重复您之前在正常消息中所说的内容。并使用它来消除编辑中的不确定性。",
"type": "string"
},
"target_file": {
"description": "要修改的目标文件。始终将目标文件指定为第一个参数。您可以使用工作区中的相对路径或绝对路径。如果提供绝对路径,它将保持不变。",
"description": "要修改的目标文件。始终将目标文件指定为第一个参数。您可以使用工作区中的相对路径或绝对路径。如果提供绝对路径,它将按原样保留。",
"type": "string"
}
},
@@ -166,20 +165,20 @@
}
},
{
"description": "使用此工具提议对现有文件执行搜索和替换操作。\n\n该工具将在指定文件中用 `new_string` 替换 `old_string` 的**一次**出现。\n\n使用此工具的**关键要求**\n\n1. **唯一性**`old_string` **必须**唯一标识您要更改的特定实例。这意味着:\n   - 在更改点**之前**至少包含 3-5 行上下文\n   - 在更改点**之后**至少包含 3-5 行上下文\n   - 准确包含文件中出现的所有空格、缩进和周围代码\n\n2. **单个实例**:此工具一次只能更改**一个**实例。如果您需要更改多个实例:\n   - 为每个实例分别调用此工具\n   - 每次调用必须使用广泛的上下文唯一标识其特定实例\n\n3. **验证**:在使用此工具之前:\n   - 如果存在多个实例,请收集足够的上下文以唯一标识每个实例\n   - 计划对每个实例进行单独的工具调用\n",
"description": "使用此工具对现有文件提议搜索和替换操作。\n\n该工具将在指定文件中用 new_string 替换一次 old_string。\n\n使用此工具的关键要求\n\n1. 唯一性old_string 必须唯一标识您要更改的特定实例。这意味着:\n - 在更改点之前至少包含 3-5 行上下文\n - 在更改点之后至少包含 3-5 行上下文\n - 包含所有空格、缩进和周围代码,与文件中显示的完全一样\n\n2. 单个实例:此工具一次只能更改一个实例。如果您需要更改多个实例:\n - 为每个实例分别调用此工具\n - 每次调用必须使用广泛的上下文唯一标识其特定实例\n\n3. 验证:在使用此工具之前:\n - 如果存在多个实例,请收集足够的上下文以唯一标识每个实例\n - 每个实例规划单独的工具调用\n",
"name": "search_replace",
"parameters": {
"properties": {
"file_path": {
"description": "您要在其中搜索和替换的文件路径。您可以使用工作区中的相对路径或绝对路径。如果提供绝对路径,它将保持不变。",
"description": "您要在其中进行搜索和替换的文件路径。您可以使用工作区中的相对路径或绝对路径。如果提供绝对路径,它将按原样保留。",
"type": "string"
},
"new_string": {
"description": "替换 `old_string` 的编辑后的文本(必须与 `old_string` 不同)",
"description": "用于替换 old_string 的编辑文本(必须与 old_string 不同)",
"type": "string"
},
"old_string": {
"description": "要替换的文本(在文件中必须是唯一的,并且必须与文件内容完全匹配,包括所有空格和缩进)",
"description": "要替换的文本(必须在文件中是唯一的,并且必须与文件内容完全匹配,包括所有空格和缩进)",
"type": "string"
}
},
@@ -192,12 +191,12 @@
}
},
{
"description": "基于文件路径的模糊匹配快速文件搜索。如果您知道文件路径的一部分但不知道它的确切位置,请使用此选项。响应将限制为 10 个结果。如果需要进一步过滤结果,请使您的查询更具体。",
"description": "基于文件路径的模糊匹配进行快速文件搜索。如果您知道文件路径的一部分但不确切知道它的位置,请使用此选项。响应将限制为 10 个结果。如果需要进一步过滤结果,请使您的查询更具体。",
"name": "file_search",
"parameters": {
"properties": {
"explanation": {
"description": "关于为何使用此工具以及它如何有助于目标的一句话解释。",
"description": "一句话解释为什么使用此工具以及它如何有助于实现目标。",
"type": "string"
},
"query": {
@@ -213,16 +212,16 @@
}
},
{
"description": "删除指定路径的文件。以下情况,操作将优雅地失败:\n    - 文件不存在\n    - 操作因安全原因被拒绝\n    - 文件无法删除",
"description": "删除指定路径的文件。如果出现以下情况,操作将优雅地失败:\n - 文件不存在\n - 出于安全原因操作被拒绝\n - 无法删除文件",
"name": "delete_file",
"parameters": {
"properties": {
"explanation": {
"description": "关于为何使用此工具以及它如何有助于目标的一句话解释。",
"description": "一句话解释为什么使用此工具以及它如何有助于实现目标。",
"type": "string"
},
"target_file": {
"description": "要删除的文件路径,相对于工作区根目录。",
"description": "要删除的文件路径,相对于工作区根目录。",
"type": "string"
}
},
@@ -233,12 +232,12 @@
}
},
{
"description": "调用一个更智能的模型应用指定文件的上次编辑。\n**仅当**差异与您预期的不符时,才在 `edit_file` 工具调用结果后立即使用此工具,这表明应用更改的模型不够智能,无法遵循您的指。",
"description": "调用更智能的模型将最后一次编辑应用指定文件。\n仅当 edit_file 工具调用结果的差异不符合您的预期时,才在其后立即使用此工具,这表明应用更改的模型不够智能,无法遵循您的指。",
"name": "reapply",
"parameters": {
"properties": {
"target_file": {
"description": "要重新应用次编辑的文件的相对路径。您可以使用工作区中的相对路径或绝对路径。如果提供绝对路径,它将保持不变。",
"description": "要重新应用最后一次编辑的文件的相对路径。您可以使用工作区中的相对路径或绝对路径。如果提供绝对路径,它将按原样保留。",
"type": "string"
}
},
@@ -249,16 +248,16 @@
}
},
{
"description": "搜索网络以获取有关任何主题的实时信息。当您需要训练数据中可能不可用的最新信息需要验证当前事实时,请使用此工具。搜索结果将包括来自网页的相关摘要和 URL。这对于有关时事、技术更新或任何需要最新信息的主题的问题特别有用。",
"description": "在网络上搜索有关任何主题的实时信息。当您需要训练数据中可能不可用的最新信息时,或者当您需要验证当前事实时,请使用此工具。搜索结果将包括来自网页的相关片段和 URL。这对于有关时事、技术更新或任何需要最新信息的主题的问题特别有用。",
"name": "web_search",
"parameters": {
"properties": {
"explanation": {
"description": "关于为何使用此工具以及它如何有助于目标的一句话解释。",
"description": "一句话解释为什么使用此工具以及它如何有助于实现目标。",
"type": "string"
},
"search_term": {
"description": "要在网络上查找的搜索词。要具体并包含相关关键字以获得更好的结果。对于技术查询,如果相关,请包含版本号或日期。",
"description": "要在网络上查找的搜索词。要具体并包含相关关键字以获得更好的结果。对于技术查询,如果相关,请包含版本号或日期。",
"type": "string"
}
},
@@ -269,7 +268,7 @@
}
},
{
"description": "创建将在聊天 UI 中呈现的 Mermaid 图。通过 `content` 提供原始 Mermaid DSL 字符串。\n使用 `<br/>` 进行换行,始终将图表文本/标签用双引号括起来,不要使用自定义颜色,不要使用 `:::`,也不要使用测试版功能。\n图表将预渲染以验证语法 - 如果存在任何 Mermaid 语法错误,它们将在响应中返回,以便您可以修复它们。",
"description": "创建一个将在聊天 UI 中呈现的 Mermaid 图。通过 `content` 提供原始 Mermaid DSL 字符串。\n使用 <br/> 进行换行,始终将图表文本/标签包装在双引号中,不要使用自定义颜色,不要使用 :::不要使用测试版功能。\n图表将预渲染以验证语法 - 如果存在任何 Mermaid 语法错误,它们将在响应中返回,以便您可以修复它们。",
"name": "create_diagram",
"parameters": {
"properties": {
@@ -285,32 +284,32 @@
}
},
{
"description": "使用此工具编辑 jupyter notebook 单元格。**仅**使用此工具编辑 notebook。\n\n此工具支持编辑现有单元格和创建新单元格\n\t- 如果您需要编辑现有单元格,请将 `is_new_cell` 设置为 `false` 并提供 `old_string``new_string`。\n\t\t-- 该工具将在指定单元格中用 `new_string` 替换 `old_string` 的**一次**出现。\n\t- 如果您需要创建新单元格,请将 `is_new_cell` 设置为 `true` 并提供 `new_string`(并保持 `old_string` 为空)。\n\t- **至关重要**的是,您正确设置 `is_new_cell` 标志!\n\t- 此工具**不**支持单元格删除,但您可以通过将空字符串作为 `new_string` 传递来删除单元格的内容。\n\n其他要求\n\t- 单元格索引 0-based。\n\t- `old_string``new_string` 应该是有效的单元格内容,即**不带** notebook 文件在底层使用的任何 JSON 语法。\n\t- `old_string` **必须**唯一标识您要更改的特定实例。这意味着:\n\t\t-- 在更改点**之前**至少包含 3-5 行上下文\n\t\t-- 在更改点**之后**至少包含 3-5 行上下文\n\t- 此工具一次只能更改**一个**实例。如果您需要更改多个实例:\n\t\t-- 为每个实例分别调用此工具\n\t\t-- 每次调用必须使用广泛的上下文唯一标识其特定实例\n\t- 此工具可能会将 markdown 单元格保存为“raw”单元格。不要试更改它,这没关系。我们需要它来正确显示差异。\n\t- 如果您需要创建新的 notebook只需将 `is_new_cell` 设置为 `true` 并`cell_idx` 设置为 `0`。\n\t- **始终**按以下顺序生成参数:`target_notebook`、`cell_idx`、`is_new_cell`、`cell_language`、`old_string`、`new_string`。\n\t- 优先编辑现有单元格而不是创建新单元格!\n",
"description": "使用此工具编辑 jupyter notebook 单元格。使用此工具编辑 notebook。\n\n此工具支持编辑现有单元格和创建新单元格\n\t- 如果您需要编辑现有单元格,请将 'is_new_cell' 设置为 false 并提供 'old_string''new_string'。\n\t\t-- 该工具将在指定单元格中用 'new_string' 替换一次 'old_string'。\n\t- 如果您需要创建新单元格,请将 'is_new_cell' 设置为 true 并提供 'new_string'(并保持 'old_string' 为空)。\n\t- 正确设置 'is_new_cell' 标志至关重要\n\t- 此工具支持单元格删除,但您可以通过将空字符串作为 'new_string' 传递来删除单元格的内容。\n\n其他要求\n\t- 单元格索引 0 开始。\n\t- 'old_string''new_string' 应该是有效的单元格内容,即不包含 notebook 文件在底层使用的任何 JSON 语法。\n\t- old_string 必须唯一标识您要更改的特定实例。这意味着:\n\t\t-- 在更改点之前至少包含 3-5 行上下文\n\t\t-- 在更改点之后至少包含 3-5 行上下文\n\t- 此工具一次只能更改一个实例。如果您需要更改多个实例:\n\t\t-- 为每个实例分别调用此工具\n\t\t-- 每次调用必须使用广泛的上下文唯一标识其特定实例\n\t- 此工具可能会将 markdown 单元格保存为 \"raw\" 单元格。不要试更改它,这没问题。我们需要它来正确显示差异。\n\t- 如果您需要创建新的 notebook只需将 'is_new_cell' 设置为 true将 cell_idx 设置为 0。\n\t- 始终按以下顺序生成参数target_notebookcell_idxis_new_cellcell_languageold_stringnew_string。\n\t- 优先编辑现有单元格而不是创建新单元格!\n",
"name": "edit_notebook",
"parameters": {
"properties": {
"cell_idx": {
"description": "要编辑的单元格的索引(0-based",
"description": "要编辑的单元格的索引(从 0 开始",
"type": "number"
},
"cell_language": {
"description": "要编辑的单元格的语言。应该**严格**是以下之一:'python'、'markdown'、'javascript'、'typescript'、'r'、'sql'、'shell'、'raw' 或 'other'。",
"description": "要编辑的单元格的语言。应严格是以下之一:'python'、'markdown'、'javascript'、'typescript'、'r'、'sql'、'shell'、'raw' 或 'other'。",
"type": "string"
},
"is_new_cell": {
"description": "如果为 true将在指定的单元格索引处创建一个新单元格。如果为 false将编辑指定单元格索引处的单元格。",
"description": "如果为 true将在指定的单元格索引处创建新单元格。如果为 false将编辑指定单元格索引处的单元格。",
"type": "boolean"
},
"new_string": {
"description": "替换 `old_string` 的编辑后的文本或新单元格的内容。",
"description": "用于替换 old_string 的编辑文本或新单元格的内容。",
"type": "string"
},
"old_string": {
"description": "要替换的文本(在单元格中必须是唯一的,并且必须与单元格内容完全匹配,包括所有空格和缩进)。",
"description": "要替换的文本(必须在单元格中是唯一的,并且必须与单元格内容完全匹配,包括所有空格和缩进)。",
"type": "string"
},
"target_notebook": {
"description": "您要编辑的 notebook 文件的路径。您可以使用工作区中的相对路径或绝对路径。如果提供绝对路径,它将保持不变。",
"description": "您要编辑的 notebook 文件的路径。您可以使用工作区中的相对路径或绝对路径。如果提供绝对路径,它将按原样保留。",
"type": "string"
}
},