链载Ai

标题: 把 Claude Skills 包起来!Claude Code 很强,但别让它毁了你的本地环境 [打印本页]

作者: 链载Ai    时间: 5 小时前
标题: 把 Claude Skills 包起来!Claude Code 很强,但别让它毁了你的本地环境

Claude Code 可能是人类创造的第一个通用 AI 智能体 (Agent)。真正的突破在于 Claude Code 能够编写精确的代码来对其“思想”采取“行动”。这一突破的关键推动因素是Agent SKILLs[1],即包含指令、参考资料和可执行脚本的可重用包,它们将 Claude 变成了始终如一的强大专家。

社区在 X (Twitter) 上对 Claude SKILLs 反响热烈:

Claude Skills 是我用过的最好的功能。 —@godofprompt[2]

如果你没有为 Claude 配备 Skills,你就错过了它 90% 的能力。 —@boringmarketer[3]

别忽视 Skills。Skills 绝对是驾驭 Claude Code 最有效的方法之一。 —@omarsar0[4]

SKILLs 消除了重复的提示词工程 (prompting),解决了上下文腐烂 (context rot) 问题,并解锁了确定的、配备工具的工作流,感觉就像拥有了一支专家 Agent 团队。

什么是 Claude Agent SKILL?

Claude Agent SKILL 是一个结构化的、可重用的包,存储在你项目的.claude/skills/文件夹中。它结合了以下内容:

以下是一些流行的 SKILLs 示例:

用户经常要求 Claude Code 自己生成新的 SKILLs,然后手动进行微调——这使得迭代速度非常快。

超越提示词:脚本的力量

顶级的 Claude Agent SKILLs 远不止是指令。它们包含了针对那些要求一致性任务的脚本。

例如,一个简单的提示词“从这个 PDF 中提取数据”可能会产生幻觉或遗漏表格。而一个包含使用pypdfPyMuPDF的 Python 脚本的 SKILL 则能保证每次都获得准确、可重复的结果。

其他常见的脚本化 SKILLs 包括:

Claude Code 可以自主执行这些 SKILL 脚本。

依赖项挑战

SKILL 脚本,尤其是 Python 或 JavaScript 脚本,通常需要第三方库和依赖项。Claude Code 很聪明。当它看到ModuleNotFoundError时,它会进行推理,并自行运行pip installnpm install。这对于原型设计来说非常神奇。

但在你的本机环境上,这很快就会产生问题:

Santiago Víquez Jul 6, 2023 我这一代最聪明的大脑都在思考如何安装 Python。

"Chris Albon Jul 5, 2023 在新的 M2 MacBook 上安装 Python 的“正确方法”是什么?我假设不是系统自带的 Python3 对吧?也许是 Homebrew?"

对于严肃的基于 SKILL 的 Agent ,你需要隔离环境。

干净的解决方案:Docker Sandboxes

Docker[5]Sandboxes(Docker Desktop[6]4.50+ 中的实验性功能)正是为像 Claude Code 这样的 Agent 构建的。它允许你运行具有完全自主权的 Claude,同时保持你的宿主机一尘不染。 只需一条命令即可安全启动一切:

docker sandbox run claude

运行该命令时会发生以下情况:

Docker SandBoxes 的官方基础镜像已经安装有常用的软件运行时:

每个工作区一个沙箱:在同一目录中再次运行该命令会恢复现有容器,保留所有已安装的包、临时文件和状态。非常适合在多个会话中演进复杂的 SKILLs。

示例:安全的依赖管理

假设你的 PDF 提取 SKILL 失败并显示: Plaintext

ModuleNotFoundError: No module named'pymupdf'

Claude Code 看到错误并安装:

pip install pymupdf

就是这样了。你不需要做任何事情。该软件包仅存在于沙箱中。你的主机保持未被接触。下一次会话(在同一文件夹中),它已经可用了。

需要时的手动控制

现在,你最好不要完全依赖 Claude 来安装软件,因为这个过程对人类来说很容易遵循,但仅看错误信息可能会让大语言模型(LLM)感到困惑。使用标准的 Docker 命令,你可以简单地登录到容器中并自己手动运行安装步骤。

docker sandbox ls     # 找到你的沙箱 ID
dockerexec-it <id> /bin/bash

安装各种东西,无论是系统包、小众二进制文件还是自定义工具。更改将在不同会话之间持久保存。

随时重新开始

一旦你尝试了许多 SKILLs 并生成了许多具有复杂依赖的项目,容器中的环境可能仍然会变得杂乱。你可以简单地重新开始。

docker sandbox rm <id>

然后重新运行:

docker sandbox run claude

即可获得一个挂载了你代码的干净容器。






欢迎光临 链载Ai (http://www.lianzai.com/) Powered by Discuz! X3.5