电脑越用越卡?我用 AI SKILL 让 Claude Code 自动生成 PowerShell 清理脚本
1. 电脑越用越卡的真实原因Windows 启动项与后台服务堆积刚装完的 Windows 开机十秒进桌面用上一年半载开机转圈能去泡杯咖啡。很多人第一反应是「内存不够了」「该换固态了」但打开任务管理器一看CPU 和内存占用都不高磁盘也没满——那卡在哪卡在后台。你装 Adobe 的时候它顺手塞了一个AdobeARMservice更新检查服务装联想驱动管理它给你留了三个常驻服务和两个计划任务卸载某个下载器之后服务列表里那个条目还在只是变成了「已停止」注册表启动项也照样躺着。这些东西单个拎出来都只吃几十 MB 内存、零点几的 CPU但架不住数量多。一台用了两年的办公本跑着 50 多个自动启动服务、十几个计划任务、七八个开机启动项是常态。这就是「越用越卡」的物理来源不是硬件老化是软件垃圾在后台持续抢占调度资源。开机时它们一起抢 I/O你感觉开机慢日常使用时它们定时触发你感觉鼠标偶尔顿一下、风扇突然转起来。想手动清理打开services.msc你会看到SysMain、DiagTrack、WMPNetworkSvc、WerSvc这一串名字。哪个能关、哪个关了会蓝屏、哪个是系统关键服务没有明确答案。网上搜到的「Win10 必关服务列表」大多是三年前抄来抄去里面有些服务在新版本里已经改名或合并照着关轻则功能异常重则进不去系统。所以大多数人的选择是忍着或者重装。我试过用 AI 来干这件事。不是让 AI 直接改系统而是让 AI 先诊断、再给出逐条判断、最后生成一份你能看懂、能审查、能回滚的 PowerShell 脚本。执行权在你手里AI 只负责把「信息量大、需要逐条判断」的脏活干了。下面这套流程就是围绕 Claude Code 和 Cursor 这两个入口把自然语言清理需求变成可审查脚本的完整做法。核心检索词先明确这是一套用 AI SKILL 驱动 Claude Code 生成 PowerShell 清理脚本的方案适合已经在用 Claude Code、Cursor 或 VS Code Copilot 的 Windows 用户也适合想找一个「比让 AI 写贪吃蛇实用」的入门场景的人。它不是一个安装包没有界面本质是一套提示词框架加脚本模板装进你的 AI 编程工具里AI 就学会了怎么诊断和清理 Windows。2. TaoToken 前置准备给 Claude Code 配好可用的模型入口Claude Code 本身是一个命令行 AI 编程工具它需要连到一个模型服务才能工作。如果你直接用官方渠道网络和账号门槛先不说光是 API Key 的获取和额度管理就够折腾一阵。这里我用 TaoToken 作为模型接入层它提供兼容 OpenAI 和 Anthropic 协议的 API 入口Claude Code 和 Cursor 都能直接对接。先说清楚它是什么TaoToken 是一个模型 API 聚合服务官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 。你注册后在控制台生成一个 Key就能在 Claude Code、Cursor、Cline 这些工具里调用模型。对于本篇场景它的价值在于你不需要为「清理 Windows」这一个任务单独去搞一套复杂的模型接入用同一个 Key 就能在多个工具里切换。前置准备分三步。第一步拿到 API Key。打开 https://taotoken.net/api-keys 登录后创建一个新 Key复制保存。这个 Key 后面要填进 Claude Code 的配置里也会填进 Cursor 的模型设置里。注意 Key 只显示一次丢了就重新生成。第二步确认你要用的模型 ID。TaoToken 控制台里会列出可用模型Claude Code 场景下通常选 Claude 系列模型比如claude-sonnet-4-20250514这类 ID。具体以你控制台里显示的为准不要照抄网上的旧 ID模型版本更新很快。第三步把 Claude Code 的接入配置写好。Claude Code 读取的是环境变量或配置文件最直接的方式是在项目目录或用户目录下配置。如果你用的是 Claude Code 的 Anthropic 兼容模式需要设置ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY两个环境变量。Base URL 填https://taotoken.net/apiKey 填你刚才生成的那串。这里有个容易踩的坑Claude Code 对 Base URL 的路径拼接比较敏感有些版本会自动在末尾加/v1有些不会。如果你配完请求报 404先把 Base URL 改成带/v1的完整路径试一次再改回不带/v1的试一次二选一必有一个通。这个排查思路后面第 5 节还会展开。如果你更习惯在 Cursor 里操作那更简单打开 Cursor 设置找到 Models 面板把 OpenAI 兼容的 Base URL 填https://taotoken.net/apiAPI Key 填你的 Key然后在模型列表里手动添加你要用的模型 ID。Cursor 支持自定义模型端点填完点 Verify 能通就行。配好之后你就有了一条稳定的模型调用链路。接下来才是本篇的重点怎么让 Claude Code 理解「清理 Windows」这件事并生成一份靠谱的 PowerShell 脚本。3. 可复制配置SKILL 目录结构、提示词模板与 settings 片段这一节是整篇的核心给你可以直接复制粘贴的配置。先说 SKILL 的目录结构再说提示词模板最后给 Claude Code 的 settings 片段和一份清理脚本示例。3.1 SKILL 目录结构所谓 AI SKILL本质是一个文件夹里面放提示词、参考文档和脚本模板AI 工具读取这个文件夹后就知道「遇到 Windows 清理任务该怎么做」。推荐结构如下win-sweep/ ├── SKILL.md # 主提示词定义角色、流程、判断框架 ├── reference/ │ ├── services.md # 服务判断参考哪些可关、哪些必留 │ ├── tasks.md # 计划任务判断参考 │ └── rollback.md # 回滚操作说明 └── scripts/ ├── diagnose.ps1 # 诊断脚本只读收集现状 ├── apply.ps1 # 执行脚本按确认清单修改 └── rollback.ps1 # 回滚脚本从备份恢复SKILL.md是入口AI 读它来理解任务。reference/放判断依据避免 AI 凭空发挥。scripts/放可执行脚本AI 生成修改方案后调用这些脚本落地。这个结构的好处是诊断和执行分离执行和回滚分离每一步都可审查。3.2 提示词模板SKILL.md的内容直接决定 AI 的输出质量。下面这份模板你可以直接用重点是「判断框架」而不是「服务名单」# Windows 清理 SKILL ## 角色 你是一个 Windows 系统维护助手。你的任务是根据诊断结果 逐条判断哪些服务、计划任务、启动项可以安全调整 并生成可审查的 PowerShell 脚本。 ## 流程 1. 先运行 diagnose.ps1收集当前服务、计划任务、启动项清单 2. 对每一项给出判断保留 / 改为 Manual / 禁用并说明理由 3. 输出修改清单等待用户确认 4. 用户确认后运行 apply.ps1 执行 5. 任何修改前先导出备份支持 rollback.ps1 回滚 ## 判断框架 - 系统关键服务如 RpcSs、DcomLaunch绝对不动 - 第三方软件的服务优先改为 Manual不直接 Disabled - 遥测类服务 计划任务 启动项三层一起处理只关服务无效 - 不认识的服查数字签名和依赖关系签名非微软且无其他服务依赖可改 Manual - 高危操作改注册表启动项前必须导出备份 ## 输出格式 每条修改用表格列出名称 | 当前状态 | 建议状态 | 理由 | 风险等级这份模板的关键在于它不给 AI 一张固定的「可关服务列表」而是给一套判断逻辑。因为每台电脑装的东西不一样有人要 Hyper-V有人用蓝牙硬编码名单要么太保守没效果要么太激进出事故。给框架AI 面对任何一台机器都能做出合理判断。3.3 Claude Code settings 片段Claude Code 的配置可以用 JSON 写。在项目根目录建.claude/settings.json内容如下{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的Key填这里, ANTHROPIC_MODEL: claude-sonnet-4-20250514 }, permissions: { allow: [ Bash(powershell:*), Read, Write ] } }三件套齐了Base URL、Key、Model ID。permissions里放开 PowerShell 执行权限否则 Claude Code 没法跑诊断脚本。注意 Key 不要提交到 Git.claude/settings.json加进.gitignore。如果你用 Cursor对应的配置在 Cursor Settings 的 Models 面板Base URL 和 Key 同上Model ID 手动添加。Cursor 里调用时直接在 Chat 里你的 SKILL 文件夹然后说「帮我诊断这台电脑的启动项」。3.4 清理脚本示例下面是一份可复制的诊断脚本diagnose.ps1只读不改任何东西# diagnose.ps1 - 只读诊断收集服务/任务/启动项现状 $report () # 1. 自动启动服务 $services Get-Service | Where-Object { $_.StartType -eq Automatic } foreach ($s in $services) { $wmi Get-CimInstance Win32_Service -Filter Name$($s.Name) $report [PSCustomObject]{ 类型 服务 名称 $s.Name 显示名 $s.DisplayName 状态 $s.Status 启动 $s.StartType 路径 $wmi.PathName } } # 2. 计划任务排除微软自带 $tasks Get-ScheduledTask | Where-Object { $_.TaskPath -notlike \Microsoft\* } foreach ($t in $tasks) { $report [PSCustomObject]{ 类型 计划任务 名称 $t.TaskName 显示名 $t.TaskPath 状态 $t.State 启动 - 路径 - } } # 3. 注册表启动项 $runKeys ( HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run ) foreach ($key in $runKeys) { if (Test-Path $key) { $props Get-ItemProperty $key $props.PSObject.Properties | Where-Object { $_.Name -notlike PS* } | ForEach-Object { $report [PSCustomObject]{ 类型 启动项 名称 $_.Name 显示名 $key 状态 Enabled 启动 - 路径 $_.Value } } } } $report | Export-Csv -Path $PSScriptRoot\diagnose-report.csv -NoTypeInformation -Encoding UTF8 Write-Host 诊断完成共 $($report.Count) 项已导出 diagnose-report.csv跑完你会得到一个 CSV里面是这台机器所有自动启动服务、非微软计划任务、注册表启动项。把这个 CSV 喂给 Claude Code它就能按 SKILL 里的判断框架逐条给建议。执行脚本apply.ps1的核心逻辑是读一份你确认过的清单逐条改改之前先备份。这里不展开完整代码重点是你拿到 AI 生成的修改清单后先人工过一遍把不想改的编号删掉再让脚本执行。回滚脚本rollback.ps1从备份键恢复服务改回原启动类型。4. 验证请求与成功结果在 Cursor 中调用并逐条核对配置写完得验证它真的能跑通。这一节给你完整的验证步骤和预期结果。4.1 验证模型连通性先在 Claude Code 里发一条最简单的请求确认模型链路是通的。在项目目录下打开终端运行claude -p 回复 OK 两个字母即可如果返回OK说明 Base URL、Key、Model ID 三件套都对了。如果报错先看错误类型401 是 Key 问题404 是 Base URL 路径问题超时是网络问题。这三种后面第 5 节详细说。4.2 在 Cursor 中调用 SKILL打开 Cursor新建一个 Chat把win-sweep文件夹拖进上下文或者用win-sweep/SKILL.md引用。然后输入先运行 scripts/diagnose.ps1把结果读进来 按 SKILL.md 的判断框架给我一份修改建议清单。Cursor 会调用终端跑诊断脚本然后把 CSV 读进来分析。预期输出是一张表格类似名称当前状态建议状态理由风险AdobeARMserviceAutoManualAdobe 更新检查非必需低DiagTrackAutoDisabled遥测服务需配合计划任务处理低SysMainAuto保留影响磁盘预读机械盘建议留中拿到这张表你逐条看。不想改的直接告诉 AI「第 3 条保留」它会重新生成确认清单。4.3 执行并核对结果确认清单后让 AI 生成apply.ps1的调用命令或者直接让它执行。执行完用下面这条命令核对Get-Service | Where-Object { $_.StartType -eq Automatic } | Measure-Object对比执行前的数量。比如执行前 47 个自动服务执行后降到 39 个说明 8 个改成了 Manual。再抽查一个Get-Service AdobeARMservice | Select-Object Name, StartType, Status预期看到StartType从Automatic变成ManualStatus仍是Stopped或Running改启动类型不会立即停服务重启后生效。计划任务和启动项的核对类似。计划任务用Get-ScheduledTask -TaskName xxx看 State启动项用Get-ItemProperty看对应键值是否还在。如果哪一项没改成功把报错贴回给 AI它会调整脚本重试。4.4 回滚验证改完不满意跑回滚.\scripts\rollback.ps1 -BackupFile .\backup\services-backup.json回滚后重新核对服务数量应该回到执行前的值。这一步建议在虚拟机或非主力机上先演练一遍确认回滚链路可靠再上真机。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth配置和调用过程中最容易撞上四类报错。逐个说清楚原因和解法。5.1 401 Unauthorized报错长这样Error: 401 Unauthorized - invalid api key原因基本只有一个Key 不对。可能是复制时带了空格可能是 Key 已过期或被删也可能是你把 Key 填到了错误的字段。排查顺序先检查.claude/settings.json里ANTHROPIC_API_KEY的值前后有没有多余空格或换行再去 TaoToken 控制台确认这个 Key 还在、额度没用完最后确认你填的是 API Key 而不是别的什么 token。如果都正常还报 401重新生成一个 Key 换上。5.2 local proxy failed报错长这样Error: local proxy failed to start: listen tcp 127.0.0.1:xxxxx: bind: address already in use这是 Claude Code 本地代理端口被占用。常见原因是上一次 Claude Code 进程没退干净或者别的工具占了同一个端口。解法先taskkill /F /IM claude.exe清掉残留进程再重启 Claude Code。如果还不行检查系统里有没有其他代理类软件占着端口换个端口配置。5.3 reading choices 相关报错报错长这样Error: reading choices: unexpected end of JSON input这是模型返回的响应格式不对通常是 Base URL 路径拼接错了请求打到了错误的端点返回了一个非预期的响应体。排查确认 Base URL 是https://taotoken.net/api如果报这个错试着改成https://taotoken.net/api/v1再试。两个路径必有一个返回标准格式。另外确认 Model ID 拼写正确ID 错了有些服务会返回 HTML 错误页而不是 JSON。5.4 OAuth 相关报错报错长这样Error: OAuth token expired, please re-authenticate如果你用的是 Claude Code 的 OAuth 登录模式而不是 API Key 模式会撞上这个。解法很简单切到 API Key 模式。在.claude/settings.json里确保ANTHROPIC_API_KEY有值并且没有残留的 OAuth 凭证文件。Claude Code 优先读环境变量里的 Key把 Key 配好OAuth 那条路就不走了。5.5 三件套自查清单遇到任何连接类报错先按这张表自查检查项正确值常见错误Base URLhttps://taotoken.net/api多了/少了 /v1或写成首页地址API Keysk- 开头的一串带空格、过期、填错字段Model ID控制台显示的完整 ID照抄网上旧 ID、拼写错误三件套任何一个错都会表现为连接失败。按顺序排查别跳步。6. 把清理流程固化成可复用 SKILL 的长期做法跑通一次之后真正有价值的是把这套流程固化下来下次换台机器直接复用。第一把win-sweep文件夹放进你的 dotfiles 仓库或者云盘同步目录换电脑时直接拉下来。SKILL.md 里的判断框架可以随经验积累持续补充比如你发现某个服务改了会出问题就在 reference 里记一笔AI 下次就会避开。第二诊断报告留档。每次跑完diagnose.ps1把 CSV 按日期存一份。半年后对比两份报告能清楚看到哪些软件在偷偷加服务、哪些清理是有效的。这比凭感觉「好像快了点」靠谱得多。第三执行前永远先备份。apply.ps1里强制导出备份这一步不能省。我踩过的坑是早期图快跳过备份结果改错一个服务导致蓝牙失灵只能手动一个个查回来。有了备份一条命令回滚心态完全不一样。第四把常用操作写成 Claude Code 的自定义命令。比如在.claude/commands/下建sweep.md内容就是「运行 diagnose.ps1按 SKILL 框架给建议」以后在 Claude Code 里输入/sweep就能触发整套流程。Cursor 里也可以用类似的方式做快捷指令。如果你还没配好模型入口先去 https://taotoken.net/api-keys 拿 Key接入文档在 https://taotoken.net/doc 有详细说明。想先试试模型对话效果可以打开 https://taotoken.net/chat 直接聊两句确认链路通了再往 Claude Code 里配。长期做编码和 Agent 类任务的话Coding Plan 页面 https://taotoken.net/coding-plan 有对应的方案说明。最后说一个实际经验清理 Windows 这件事AI 给的建议永远要过一遍你的脑子。它不知道你这台机器是不是用来跑虚拟机的、是不是连着特定外设、是不是有公司装的监控软件。判断框架能帮它避开明显的坑但最终拍板的是你。把 AI 当助手而不是当决策者这套流程才用得长久。