Install
openclaw skills install @thcjp/file-browser-toolopenclaw skills install @thcjp/file-browser-tool核心功能: 本技能提供、格式互转、内容提取时使用、提升工作效率等能力。
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| 深度漏洞扫描与CVE关联 | 不支持 | 支持 |
| 安全基线合规审计 | 不支持 | 支持 |
| 批量资产风险评分 | 不支持 | 支持 |
| 威胁情报实时订阅与告警 | 不支持 | 支持 |
| 零日漏洞检测与防护规则下发 | 不支持 | 支持 |
详细的输入输出格式请参考下方章节说明。
| 场景 | 输入 | 输出 |
|---|---|---|
| 安全检查 | 目标地址与扫描选项 | 漏洞列表与风险评级 |
| 文件操作 | 文件路径与操作参数 | 操作结果与文件元信息 |
| SkillHub工作 | 目标数据与配置参数 | 处理结果与执行状态 |
| 不适用于:需要人工判断的复杂决策场景 |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| content | string | 否 | file-browser-tool处理的内容输入 |
| mode | string | 否 | 处理模式, 可选: json/text/markdown, |
| max_retries | integer | 否 | 单步最大重试次数, 默认: 2 |
| skip_steps | array | 否 | 跳过的步骤编号(用于断点续传), 默认: [] |
{
"success": true,
"data": {
"final_result": {
"tool_result": "tool_result_value",
"tool_metadata": "tool_metadata_value",
"tool_status": "tool_status_value"
},
"execution_log": [
{
"step": 1,
"name": "按流程执行",
"status": "completed",
"duration_ms": 1200,
"output_summary": "按流程执行"
},
{
"step": 2,
"name": "按流程执行",
"status": "completed",
"duration_ms": 3500,
"output_summary": "按流程执行"
},
{
"step": 3,
"name": "按流程执行",
"status": "completed",
"duration_ms": 2100,
"output_summary": "按流程执行"
},
{
"step": 4,
"name": "按流程执行",
"status": "completed",
"duration_ms": 800,
"output_summary": "按流程执行"
}
],
"total_duration_ms": 7600,
"gates_passed": 3,
"gates_total": 3
},
"error": null
}
中间产物模板参考: assets/file-browser-tool_template
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
export API_KEY="${API_KEY:?请设置环境变量}"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
# ...
* To list directory: execute("(请参考skill目录中的脚本文件)", [rel_path]) → JSON {success: bool, data: array of names, error: string}
* To read file: execute("(请参考skill目录中的脚本文件)", [rel_path]) → JSON {success: bool, data: string (text content), error: string}
* Handle errors: For binary/large/non-text files, return error JSON.
A: 请参考使用流程和依赖说明章节,确保运行环境满足要求后调用本技能。
A: 您可以使用文件浏览器工具的搜索功能,通过指定文件名或文件内容的关键字来进行搜索。这通常通过在工具中输入相应的命令或参数来实现,具体命令取决于工具的实现。
A: 是的,文件浏览器工具通常支持读取隐藏文件。隐藏文件在文件系统中可能不会显示,但工具可以通过特定的参数或命令来显示并读取这些文件的内容。
A: 您可以使用文件浏览器工具的元信息查看功能。这通常通过在工具中输入特定的命令或使用特定的参数来实现,以便获取文件的创建时间、修改时间、大小等详细信息。
A: 文件浏览器工具通常能够处理多种文件格式,包括文本文件、图像文件、视频文件等。然而,对于某些特定格式的文件,如二进制文件或加密文件,工具可能需要额外的处理或转换功能。
| 错误场景(续) | 原因 | 处理方式 |
|---|---|---|
| LLM响应超时或无响应 | 网络延迟或模型负载过高 | 请求重试;确认Agent平台LLM服务正常 |
| 输入内容格式不正确 | 用户输入不符合skill预期格式 | 检查输入是否符合skill使用说明中的格式要求,参考示例章节 |
| 执行结果与预期不符 | 指令描述不够明确或上下文不足 | 提供更详细的指令描述,补充必要的上下文信息 |
| 命令执行失败 | 运行环境不满足要求或权限不足 | 确认运行环境符合依赖说明中的要求;检查命令权限设置 |
ls、cat等。rel_path (文件或目录的相对路径)rel_path (文件的相对路径)rel_path (文件或目录的相对路径)文件浏览器工具的技术架构基于Markdown和EXEC()模式,结合了文件系统操作和API调用。核心算法包括:
| 参数名 | 类型 | 取值范围 | 默认值 | 说明 |
|---|---|---|---|---|
| rel_path | string | 无限制 | 无 | 文件的相对路径 |
| mode | string | json/text/markdown | json | 输出数据格式,可选json、text、markdown |
| max_retries | integer | 1-10 | 2 | 最大重试次数 |
| skip_steps | array | 无限制 | [] | 跳过的步骤编号,用于断点续传 |
返回值的数据结构如下:
{
"success": boolean,
"data": {
"final_result": {
"tool_result": string,
"tool_metadata": string,
"tool_status": string
},
"execution_log": [
{
"step": integer,
"name": string,
"status": string,
"duration_ms": integer,
"output_summary": string
}
],
"total_duration_ms": integer,
"gates_passed": integer,
"gates_total": integer
},
"error": string
}
字段含义:
success: 操作是否成功,布尔值。data: 包含最终结果、执行日志、总耗时、通过的门数和总门数。final_result: 工具结果、元数据和状态。execution_log: 执行过程中的步骤记录,包括步骤编号、名称、状态、耗时和输出摘要。total_duration_ms: 操作总耗时,毫秒。gates_passed: 通过的门数。gates_total: 总门数。error: 出错信息,字符串。execute("ls", ["./"])
execute("cat", ["./example.txt"])
execute("cat", ["./example.txt"], {"mode": "markdown"})
Q1: 我尝试读取一个文件,但工具返回了错误信息“文件不存在”
A: 请检查您提供的文件路径是否正确,确保文件确实存在于SkillHub工作区中。文件路径应该是相对于WORKSPACE的相对路径。
Q2: 为什么读取文件时工具返回了“文件编码错误”
A: 文件内容编码必须是UTF-8。如果文件使用了其他编码,请转换为UTF-8后再尝试读取。
Q3: 我在读取一个大型文件时遇到了超时错误
A: 文件读取操作对文件大小有限制,单个文件读取操作限制在100MB以内。如果文件超过这个大小,请尝试将文件分割成更小的部分。
Q4: 为什么目录遍历没有返回任何文件或目录
A: 请检查您提供的路径是否指向一个有效的目录,并且该目录确实包含文件或子目录。如果路径正确,请确认目录权限是否允许读取。
Q5: 我在调用工具时遇到了“网络错误”
A: 请检查您的网络连接是否正常,并且SkillHub工作区能够访问。如果问题仍然存在,请联系系统管理员检查网络配置。
Q6: 如何在读取文件时跳过特定的步骤
A: 您可以使用skip_steps参数来跳过特定的步骤。这个参数接受一个数组,包含您想要跳过的步骤编号。
Q7: 我在读取文件时遇到了“文件访问权限不足”的错误
A: 请确保您有足够的权限来访问文件。如果文件属于系统或其他用户,您可能需要以管理员身份运行工具或请求相应的权限。
密钥管理:file-browser-tool的API密钥用于验证用户的身份和授权访问。密钥应存储在安全的环境中,避免泄露。建议使用环境变量或配置文件存储密钥,并确保这些存储方式不被版本控制系统跟踪。 认证方式:工具使用基于密钥的认证机制。在调用API时,必须在请求头中包含API密钥。这确保了只有拥有正确密钥的用户才能访问受保护的资源。 权限要求:API密钥应具有最小权限原则,仅授予执行特定操作所需的权限。避免使用具有广泛权限的密钥,以减少潜在的安全风险。
数据传输:所有通过API传输的数据都使用HTTPS协议加密,确保数据在传输过程中的安全性。 数据存储:存储在file-browser-tool中的数据(如文件内容)加密存储,防止未授权访问。 数据处理:对处理的数据进行适当的加密和脱敏,确保敏感信息不被泄露。
潜在安全风险:
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 5-10分钟/个 | <5秒/个 | 60-120x |
| 批量文件处理(100个) | 8-16小时 | <5分钟 | 96-192x |
| API调用与响应解析 | 2-3分钟/次 | <1秒/次 | 120-180x |
| 多接口数据聚合 | 15-30分钟 | <10秒 | 90-180x |
| 命令执行与结果收集 | 3-5分钟/次 | <2秒/次 | 90-150x |
| 重复任务批量执行 | 因任务而异 | 线性缩减 | 5-50x |
| 错误排查与修复 | 10-30分钟 | <30秒 | 20-60x |
| 对比维度 | 文件浏览器工具 | 传统手动方式 | 通用脚本工具 |
|---|---|---|---|
| 自动化程度 | 全流程自动 | 完全手动 | 部分自动 |
| 错误处理 | 内置错误恢复 | 依赖人工经验 | 基本try-catch |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | SkillHub工作区只读文件浏览与读取,安全查看。Read-only file | 通用场景 | 通用场景 |
Read-only file browsing and readin