feat(core): 更新文件操作工具描述为模板格式
- 更新 read_file 工具描述,支持模板变量 - 更新 edit_file 工具描述,支持模板变量 - 更新 write_file 工具描述 - 添加 read-file-tool 常量 (DEFAULT_READ_LINES, MAX_LINE_LENGTH) - 在模板渲染器中注册新常量
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
/**
|
||||
* Read File 工具配置常量
|
||||
*/
|
||||
|
||||
/** 默认读取行数 */
|
||||
export const DEFAULT_READ_LINES = 2000;
|
||||
|
||||
/** 最大行长度(超过会被截断) */
|
||||
export const MAX_LINE_LENGTH = 2000;
|
||||
@@ -26,6 +26,10 @@ import {
|
||||
MAX_TIMEOUT_MS,
|
||||
MAX_OUTPUT_CHARS,
|
||||
} from '../constants/bash-tool.js';
|
||||
import {
|
||||
DEFAULT_READ_LINES,
|
||||
MAX_LINE_LENGTH,
|
||||
} from '../constants/read-file-tool.js';
|
||||
|
||||
/**
|
||||
* 获取嵌套属性值
|
||||
@@ -466,6 +470,12 @@ export function createToolDescriptionContext(
|
||||
EXPLORE_SUBAGENT_TYPE: 'explore',
|
||||
};
|
||||
|
||||
// 添加 read_file 工具相关常量
|
||||
const readFileVars: Record<string, number> = {
|
||||
DEFAULT_READ_LINES,
|
||||
MAX_LINE_LENGTH,
|
||||
};
|
||||
|
||||
// 注册模板函数
|
||||
const functions: TemplateFunctionRegistry = {
|
||||
CUSTOM_TIMEOUT_MS: () => CUSTOM_TIMEOUT_MS,
|
||||
@@ -475,7 +485,7 @@ export function createToolDescriptionContext(
|
||||
|
||||
return {
|
||||
...base,
|
||||
custom: { ...base.custom, ...toolVars, ...subagentVars },
|
||||
custom: { ...base.custom, ...toolVars, ...subagentVars, ...readFileVars },
|
||||
__functions__: functions,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1 +1,9 @@
|
||||
通过字符串替换编辑文件的部分内容。比 write_file 更高效,适合修改文件的一小部分。
|
||||
Performs exact string replacements in files.
|
||||
|
||||
Usage:
|
||||
- You must use your `${READ_TOOL_NAME}` tool at least once in the conversation before editing. This tool will error if you attempt an edit without reading the file.
|
||||
- When editing text from Read tool output, ensure you preserve the exact indentation (tabs/spaces) as it appears AFTER the line number prefix. The line number prefix format is: spaces + line number + tab. Everything after that tab is the actual file content to match. Never include any part of the line number prefix in the old_string or new_string.
|
||||
- ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.
|
||||
- Only use emojis if the user explicitly requests it. Avoid adding emojis to files unless asked.
|
||||
- The edit will FAIL if `old_string` is not unique in the file. Either provide a larger string with more surrounding context to make it unique or use `replace_all` to change every instance of `old_string`.
|
||||
- Use `replace_all` for replacing and renaming strings across the file. This parameter is useful if you want to rename a variable for instance.
|
||||
|
||||
@@ -1 +1,12 @@
|
||||
读取指定文件的内容
|
||||
Reads a file from the local filesystem. You can access any file directly by using this tool.
|
||||
Assume this tool is able to read all files on the machine. If the User provides a path to a file assume that path is valid. It is okay to read a file that does not exist; an error will be returned.
|
||||
|
||||
Usage:
|
||||
- The file_path parameter must be an absolute path, not a relative path
|
||||
- By default, it reads up to ${DEFAULT_READ_LINES} lines starting from the beginning of the file
|
||||
- You can optionally specify a line offset and limit (especially handy for long files), but it's recommended to read the whole file by not providing these parameters
|
||||
- Any lines longer than ${MAX_LINE_LENGTH} characters will be truncated
|
||||
- Results are returned using cat -n format, with line numbers starting at 1
|
||||
- This tool can only read files, not directories. To read a directory, use an ls command via the ${BASH_TOOL_NAME} tool.
|
||||
- You can call multiple tools in a single response. It is always better to speculatively read multiple potentially useful files in parallel.
|
||||
- If you read a file that exists but has empty contents you will receive a system reminder warning in place of file contents.
|
||||
|
||||
@@ -1 +1,8 @@
|
||||
创建新文件或完全覆盖现有文件。如果只需修改文件的一部分,请使用 edit_file。
|
||||
Writes a file to the local filesystem.
|
||||
|
||||
Usage:
|
||||
- This tool will overwrite the existing file if there is one at the provided path.
|
||||
- If this is an existing file, you MUST use the ${READ_TOOL_NAME} tool first to read the file's contents. This tool will fail if you did not read the file first.
|
||||
- ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.
|
||||
- NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.
|
||||
- Only use emojis if the user explicitly requests it. Avoid writing emojis to files unless asked.
|
||||
Reference in New Issue
Block a user