AI Agent 下载守护(仅 Windows)。在执行以下操作时自动激活:下载、安装、git clone、pip install、npm install -g、pnpm add -g、bun install -g、conda install……
下载 Guard v5.4
功能概述
下载 Guard v5.4是一项面向实际任务的技能,主要用于Core Rules. 透明:每一次下载都告诉用户文件去向,如果环境是他的话.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Download Guard v5.4
下载位置透明 · 文件好管理 · 减少 C 盘垃圾 · 路径不可用时宁可阻止也不走 C 盘
Platform: Windows(PowerShell 5.1+)
核心规则
- 透明性:每次下载均明确告知用户文件将存至何处,并同步反馈当前环境健康状态
- 可管理性:日志自动清理;路径变更遵循预设规则,不弹出随机确认提示
- 零垃圾:C 盘防护机制、缓存扫描、日志自动归档
- 无静默回退:若
DOWNLOAD_ROOT不可用,则强制阻断——绝不静默降级至 C: 盘
触发规则
必须触发
curl / wget / Invoke-WebRequest / requests.get / urllib.requestnpm install -g(不包含无-g参数的本地npm install)pnpm add -g(v5.4)bun install -g(v5.4)pip install(不包含处于激活 venv 中的安装——需先检查VIRTUAL_ENV环境变量)uv pip install(v5.4 —— 同样适用 venv 规则)conda install / conda create / conda env updatecargo install(v5.4 —— 默认安装至~/.cargo/bin)go install(v5.4 —— 默认安装至$GOPATH/bin)git clonehuggingface-cli download / modelscope download / ollama pulldocker pullwinget install / choco install / scoop install
不触发
- 编写源码文件(如 .py、.js、.ts、.json、.md 等)
- 读取 / 搜索 / grep 类操作
- 本地
npm install(仅写入当前工作目录下的node_modules) pip install -e .(可编辑安装)- 文件大小 < 1MB(配置文件、临时文件等)
- 位于
EXEMPT_PATHS列表中的路径
执行协议
步骤 0 —— 读取配置 + 校验
$configPath = "$env:USERPROFILE.workbuddyskillsdownload-guardconfig.md"
$content = Get-Content $configPath -Raw -ErrorAction SilentlyContinue
$setupDone = $content -match "SETUP_DONE:s*true"
$downloadRoot = if ($content -match "DOWNLOAD_ROOT:s*(.+)") { $Matches[1].Trim() } else { "" }
若 SETUP_DONE != true 或 DOWNLOAD_ROOT 为空 → 执行首次配置流程。
配置完整性校验(v5.4):读取后立即验证:
DOWNLOAD_ROOT值非空,且以盘符开头(例如D:、F:)SETUP_DONE的值为true或false(不可损坏或非法)- 若配置疑似损坏 → 向用户发出警告,并引导其重新配置
步骤 1 —— 路径类型判定
| 命令 | 类型 | 动作 |
|---|---|---|
| curl / wget / git clone / 模型下载 | C(安全) | 进入步骤 2 |
pip install(非 venv) |
B2 | 检查 site-packages 实际路径 |
pip install --user(v5.4) |
B2+ | 若 site-packages 位于 C: 盘则告警,并建议使用 venv |
npm install -g / pnpm add -g |
B1 | 检查 prefix、PATH 及路径中是否含空格 |
cargo install / go install(v5.4) |
B3 | 检查二进制目录是否已加入 PATH |
| 修改 npm prefix / conda envs | B | 运行 PATH 关联性检查 |
类型 A = 缓存(可安全迁移);类型 B = 安装目录(必须与 PATH 同步);类型 C = 文件存储(安全)。
详细说明见 reference.md
步骤 2 —— 重复文件检查
下载前,检查目标文件是否已在 DOWNLOAD_ROOT 中存在:
$today = Get-Date -Format "yyyy-MM-dd" $existing = Get-ChildItem "$downloadRoot$today" -Recurse -Filter "*$FileNamePart*" -ErrorAction SilentlyContinue
若发现匹配项 → 提示用户:"⚠️ 类似文件已存在:{path}({size})。是否重新下载?[y/N]"
步骤 3 —— 路径可用性 + 尺寸感知 + 空间检查
确定下载子目录(默认结构):
DOWNLOAD_ROOTYYYY-MM-DD{sanitized-task-name}{sanitized-task-name}命名规则:- 采用任务描述或包名,转为小写,空格替换为短横线(-)
- 最长 40 字符,禁止特殊字符
- 若无明确任务名,统一使用
general - 示例:
F:AI-Downloads2026-05-26install-pandas
执行
scripts/check-space.ps1—— 新增以下能力:- 盘符存在性检查(若盘符缺失 → 退出码 2 = BLOCK,不回退至 C:)
- 路径可写性测试(创建并删除临时文件)
- 若下载目录不存在则自动创建
- 任一检查失败 → 立即阻断,并输出清晰错误信息
若已知下载尺寸(模型卡片、包元数据等):
- 对比目标磁盘剩余空间
- 若下载体积 > 剩余空间的 50% → 提示:
"本次下载({X}GB)将占用 {drive}: 盘 {Y}% 可用空间" - 若下载体积 > 剩余空间 → 阻断
向用户输出摘要:
[DOWNLOAD GUARD] 准备下载
文件 : {filename}
大小 : {known size / unknown}
写入至 : {DOWNLOAD_ROOT}{YYYY-MM-DD}{task-name}
目标盘 : {X} GB 可用 [{OK/WARN/BLOCK}]
C 盘 : {X} GB 可用 [{OK/WARN}]
路径可用 : [{OK / DRIVE_MISSING / NOT_WRITABLE}]
继续执行...
| check-space 退出码 | 含义 | 动作 |
|---|---|---|
| 0 | 正常或仅警告 | 继续执行 |
| 1 | 剩余空间不足 | 阻断,建议清理磁盘 |
| 2(v5.4) | 路径不可用 | 阻断 —— 绝不回退至 C: |
步骤 4 —— 下载完成后:校验 + 记录 + 通知
校验下载文件是否落于预期路径:
Test-Path "{expected_path}" (Get-Item "{expected_path}").Length执行
scripts/log-download.ps1(含自动清理逻辑)向用户输出完成摘要:
[DOWNLOAD GUARD] 完成
文件 : {filename} ({size})
位置 : {full path}
已记录 : download-log.md
若校验失败 → 提示:"⚠️ 下载文件未在预期路径找到,请手动核查。"
配置保护机制(v5.4)
当 Agent 向 config.md 写入内容时,必须满足:
- 回读校验:写入后立即重读文件,确认
DOWNLOAD_ROOT与SETUP_DONE字段存在且合法 - 禁止分段写入:必须一次性完整写入整个文件,不得追加或局部更新关键字段
- 变更前备份:修改
DOWNLOAD_ROOT前,须将旧值作为注释保留:# PREVIOUS: DOWNLOAD_ROOT: E:old-path DOWNLOAD_ROOT: F:new-path
- 配置损坏处理:Agent 需主动识别损坏情形(如缺失必填字段、
DOWNLOAD_ROOT为空、SETUP_DONE非 true/false),并提示用户重新配置
首次配置流程(SETUP_DONE: false)
步骤 0 —— 扫描磁盘 + 推荐最优选项
Get-PSDrive -PSProvider FileSystem |
Where-Object { $_.Free -gt 0 } |
Sort-Object Free -Descending |
ForEach-Object {
$tag = if ($_.Name -eq "C") { " [SYSTEM - NOT recommended]" } else { "" }
" {0}: {1} GB free{2}" -f $_.Name, [math]::Round($_.Free/1GB,1), $tag
}
向用户展示结果,并高亮推荐默认选项(最大非 C 盘):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Download Guard · 首次配置 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 磁盘扫描结果: F: 132 GB 可用 ← 推荐(空间最大) E: 97 GB 可用 D: 39 GB 可用 C: 58 GB 可用 [系统盘 - 不推荐] 推荐:F:AI-Downloads 确认?或输入其他路径: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
步骤 1 —— 用户确认,Agent 写入配置
- 标准化输入(仅输入盘符 → 补全为
{letter}:AI-Downloads;输入完整路径 → 原样采用) - 接受前验证路径可写性(v5.4)
- 若目录不存在则自动创建
- 写入 config.md:
SETUP_DONE: false→true,DOWNLOAD_ROOT:→ 用户所选路径 - 回读校验配置是否正确写入(v5.4)
- 执行
scan-tool-cache.ps1 - 若发现 C 盘缓存,提示迁移
步骤 2 —— 输出状态卡片
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Download Guard · 环境就绪
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
下载目录 : {DOWNLOAD_ROOT}
可用空间 : {X} GB [{OK/WARN}]
路径可写 : {YES/NO}
C 盘 : {X} GB [{OK/WARN}]
npm cache : {path} [{OK/WARN}]
pip cache : {path} [{OK/WARN}]
npm prefix : {path} [IN PATH: {YES/NO}]
日志 : ~/.workbuddy/download-log.md
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
如有 [WARN],说"帮我修复"即可。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
透明性规则
单次下载 —— 下载前:通知
单次下载 —— 下载后:校验 + 记录 + 通知
(参见上方“执行协议”中的步骤 2–4)
每日首次触发 —— 环境简报
每日首次触发时,输出环境简报。实现方式:
# 在临时文件中记录上次报告日期
$lastReportFile = "$env:TEMPdownload-guard-last-report.txt"
$today = Get-Date -Format "yyyy-MM-dd"
$lastReport = if (Test-Path $lastReportFile) { Get-Content $lastReportFile -Raw } else { "" }
if ($lastReport -ne $today) {
# 今日首次触发 —— 展示环境简报
Set-Content -Path $lastReportFile -Value $today -Force
# ... 输出简报 ...
}
简报格式:
[DOWNLOAD GUARD] 今日首次 · 环境快报
下载目录 : {DOWNLOAD_ROOT} ({X} GB 可用)
路径可用 : {OK / DRIVE_MISSING / NOT_WRITABLE}
C 盘 : {X} GB 可用 [{OK/WARN}]
工具缓存 : {all OK / N items on C: [WARN]}
日志条数 : {N} 条
若路径不可用 → 立即提示用户更新配置或重连磁盘。
路径询问策略
| 场景 | 动作 |
|---|---|
| 首次配置 | 必须询问 |
| 日常下载 | 不询问,仅通知 |
| 目标磁盘剩余空间 < MIN_FREE_GB | 必须通知 —— 建议切换路径 |
DOWNLOAD_ROOT 所在磁盘缺失(v5.4) |
必须通知 —— 阻断直至修复 |
DOWNLOAD_ROOT 不可写(v5.4) |
必须通知 —— 阻断直至修复 |
| 发现 C 盘缓存 | 必须通知 —— 提供迁移选项 |
| 新磁盘接入 | 可选通知 |
| 用户询问 “下载到哪?” | 响应 —— 显示当前配置 |
规则:仅在环境发生变更时主动提示;日常操作一律仅通知。
规则(v5.4):路径不可用 = 永远阻断,绝不静默回退至 C:。
日志清理规则
| 条件 | 动作 |
|---|---|
日志条目超过 LOG_RETENTION_DAYS 天 |
自动归档 |
归档文件总大小超过 LOG_ARCHIVE_MAX_MB |
删除最旧的归档 |
| 日志文件体积 > 5MB | 触发归档轮转 |
归档命名格式:~/.workbuddy/download-log-archive-{YYYY-MM-DD}.md
设置 LOG_RETENTION_DAYS: 0 可禁用自动清理。
自然语言指令支持
| 用户输入 | 动作 |
|---|---|
| "下载了什么" / "下载日志" / "download log" | 显示最近 20 条日志 |
| "缓存在哪" / "扫描缓存" / "scan cache" | 执行 scan-tool-cache.ps1 |
| "迁移缓存" / "migrate cache" | 执行 migrate-cache.ps1 |
| "磁盘空间" / "disk space" | 执行 check-space.ps1 |
| "刚才下的在哪" / "where's my download" | 显示最新日志条目的完整路径 |
| "下载到哪" / "根目录在哪" | 显示 DOWNLOAD_ROOT 当前值 |
| "npm 用不了" / "command not found" | 检查 npm prefix 是否已加入 PATH |
| "帮我修复" / "fix warnings" | 自动修复所有 [WARN] 项 |
| "修改下载目录" / "change download dir" | 更新 config.md 中的 DOWNLOAD_ROOT |
| "清理日志" / "clean log" | 触发日志归档清理 |
| "检查路径" / "check path"(v5.4) | 验证 DOWNLOAD_ROOT 是否存在、可写、所在磁盘健康 |
| "重置配置" / "reset config"(v5.4) | 设 SETUP_DONE: false,重启首次配置流程 |
| "download guard version" / "下载版本"(v5.4) | 显示当前版本号:5.4.0 |
| "卸载 download guard" / "uninstall download guard" | 显示清理说明(日志文件、归档、配置等) |
详细参考文档
关于路径类型定义、PATH 修复模板、配置参数、脚本说明及已知限制的完整信息,请查阅 reference.md。
热门AI工具
相关专题
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.7万人学习
共6课时 | 54.7万人学习
最新文章