关注「索引目录」公众号,获取更多干货。
如果你最近一直在浏览GitHub或关注Hacker News上的最新趋势,你肯定会注意到生态系统正在发生转变。我们早已不再满足于那些能写俳句或解释量子物理的聊天机器人最初带给我们的兴奋。如今,整个行业都痴迷于自主代理。我们不再满足于只会和我们对话的人工智能,我们想要的是能为我们工作的人工智能。
这时,OpenClaw就派上了用场。如果你还没听说过它,那可真是错过了好东西。这款工具在软件工程师和DevOps专业人士中迅速走红,因为它满足了一个非常具体的需求:我们需要一个本地部署的 AI,它运行在我们的机器上,可以访问我们的终端,并安全地操作文件。
在本篇深度教程中,我将带你了解关于OpenClaw 的所有知识。我们将介绍其架构、安装过程,以及最重要的——如何编写自定义技能来扩展其功能。读完本文后,你将拥有一个运行在你硬件上的数字助手,它可以自动完成你工作中那些枯燥乏味的部分。
从聊天机器人到人工客服的转变
要理解OpenClaw 的重要性,我们需要了解一下标准网页聊天工具的局限性。这些工具虽然推理能力很强,但却被限制在浏览器标签页中。如果你想让它们重构一个文件,就必须复制代码,粘贴到聊天窗口,等待回复,然后再复制回来。这种工作流程非常繁琐。
OpenClaw消除了这种摩擦。它具有自主性。这意味着它可以规划并执行一系列操作来实现目标。如果你告诉它“搭建一个React应用并安装Tailwind CSS ”,它不仅仅是告诉你命令,而是会实际运行这些命令。它会创建目录,编辑配置文件,并处理npm 安装过程。
这就是ChatOps的梦想成真。您无需手动输入命令,只需作为管理者,指挥智能代理处理实施细节即可。
理解架构
在安装任何组件之前,了解OpenClaw 的底层工作原理很有帮助。它并非一个单一的应用程序,而是由多个协同工作的服务组成。
首先是网关。这是接口层,负责处理与Telegram、Discord或Slack等消息平台的连接。它管理传入的消息并将其路由到核心逻辑。这使得接口与智能部分分离,从而允许您从任何地方与您的代理进行对话。
接下来是“大脑”。这里是奇迹发生的地方。OpenClaw与模型无关,但在 2026 年,您通常需要最强大的推理能力。您可以通过 API 将其连接到功能强大的云模型,例如Claude 4.5,它提供最先进的编码功能。或者,您可以使用本地 LLM(例如运行在Ollama上的Llama 4或Mixtral)完全离线运行它。“大脑”接收用户意图并决定采取哪些行动。
接下来是沙箱。当人工智能访问你的计算机时,安全性是最大的问题。OpenClaw通过将所有操作都运行在Docker 容器内来解决这个问题。如果智能体创建文件,它会在容器内创建;如果它运行脚本,它也会在容器内运行。这样即使智能体出现幻觉并试图删除根目录,你的主机操作系统也能保持安全。
最后是技能。这些是代理可以使用的工具。OpenClaw 开箱即用,可以浏览网页、管理文件和运行 shell 命令。但它真正的强大之处在于,技能本质上就是JavaScript或TypeScript函数。这使得开发者能够极其轻松地添加新功能。
设置您的环境
我们将使用Docker Compose来配置OpenClaw。这是运行该技术栈的标准方法,可以确保所有依赖项都被隔离。
先决条件
您的机器上需要安装Docker和Docker Compose 。如果您计划开发自定义技能,还需要Node.js版本 24 或更高版本,因为最新的OpenClaw运行时利用了最新的ECMAScript特性。
您还需要一个API 密钥。为了获得最佳体验,我建议使用Anthropic,因为Claude 4.5目前拥有最佳的上下文窗口和推理能力,能够处理复杂的架构任务。如果您拥有强大的 GPU,也可以使用OpenAI或本地Ollama实例。
最后,您还需要一个聊天界面。本指南将使用Telegram,因为它免费且其Bot API非常强大。
安装步骤
首先克隆代码库。
git clone https://github.com/openclaw/openclaw.git
cd openclaw
目录下有一个示例环境文件。复制此文件即可创建您自己的配置。
cp .env.example .env
现在用文本编辑器打开.env文件。你需要配置LLM 提供程序。
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-api03...
MODEL_VERSION=claude-4-5-sonnet-20260101
接下来我们需要保护网关。
GATEWAY_TOKEN=my_secure_token_123
现在我们来设置Telegram。打开应用并搜索@botfather。发送命令/newbot并按照说明创建一个新机器人。您将收到一个令牌。
将此令牌粘贴到您的环境文件中。
TELEGRAM_BOT_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
还有最后一步至关重要。您必须将自己的Telegram 用户 ID添加到白名单。如果您跳过此步骤,任何在 Telegram 上找到您的机器人的人都可以控制您的代理。搜索@userinfobot即可找到您的 ID。
TELEGRAM_ALLOWED_USERS=12345678
运行代理
配置完成后,我们就可以启动服务了。
docker-compose up -d
此命令将拉取必要的镜像并在后台启动容器。首次运行可能需要几分钟时间,尤其是在需要下载浏览器自动化镜像的情况下。
请检查日志以确认一切运行正常。
docker-compose logs -f
你应该会看到一条日志条目,显示网关已连接且Telegram 轮询已开始。打开你的 Telegram 机器人并发送消息“Hello”。如果机器人回复,则一切就绪。
真实世界的开发者工作流程
现在您已经拥有了一个功能完善的代理,接下来让我们看看如何实际利用它来提高您的工作效率。这些并非理论示例,而是软件工程师每天使用OpenClaw的真实工作流程。
文献研究员
我们都经历过这种情况:你想使用一个新库,结果发现文档分散在二十多个页面上。与其一个个点击标签页,不如让OpenClaw帮你完成查找工作。
你可以说:“请查阅Stripe API文档。了解如何使用Node.js v24 SDK创建定期订阅。请总结所需的参数并提供代码示例。”
该代理将利用其浏览器技能浏览网站,读取 DOM 并提取相关文本,然后将这些信息综合成简洁的摘要和代码片段。这可以为您节省十五分钟的阅读时间,让您保持专注。
代码审查员
您可以将本地项目目录映射到OpenClaw容器。这样,代理程序就拥有了对您的代码的读取权限。
您可以问:“看看这个src/components/Button.tsx文件。是否存在任何辅助功能问题?另外,检查一下我是否为深色模式使用了正确的Tailwind类。”
该代理程序会读取文件并分析代码。它利用Claude 4.5的强大功能,就像一位资深工程师在你身后监督你。它可以在你提交代码之前发现细微的逻辑错误或无障碍访问违规行为。
日志分析师
调试生产环境问题可能是一场噩梦。通常你需要下载一个庞大的日志文件,然后用 grep 命令逐个查找错误。
使用OpenClaw,您可以简单地说:“我已经将服务器日志下载到该logs/文件夹。请检查 10:00 到 10:15 之间是否发生任何JSON 解析错误。如果发现任何错误,请向我显示堆栈跟踪。”
代理程序负责文本处理。它会筛选日志,并准确地向您展示您需要查看的内容。
使用自定义技能扩展 OpenClaw
OpenClaw的真正强大之处在于其可扩展性。作为开发者,您不仅限于使用内置工具,还可以编写自己的技能。
一项技能由两部分组成:一个定义文件,用于告诉语言学习模型(LLM)该工具的功能;以及一个实现文件,其中包含代码。
让我们构建一个简单的技能来获取当前的比特币价格。
第一步:技能定义
skills在你的文件夹中创建一个名为 的新目录crypto-price。在该目录中创建一个名为 的文件skill.json。
{
"name": "get_crypto_price",
"description": "Fetches the current price of a cryptocurrency.",
"parameters": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "The symbol of the crypto (e.g. bitcoin)"
},
"currency": {
"type": "string",
"description": "The fiat currency (e.g. usd)",
"default": "usd"
}
},
"required": ["symbol"]
}
}
这个JSON Schema至关重要。它向 AI 模型描述了工具。描述越准确,模型就越能正确地使用该工具。
步骤二:实施
现在创建index.js文件。由于我们运行的是Node.js 24,因此可以无缝使用顶层 await 和原生 fetch API。
export default async function run({ symbol, currency = 'usd' }) {
try {
const url = `https://api.coingecko.com/api/v3/simple/price?ids=${symbol}&vs_currencies=${currency}`;
const response = await fetch(url);
const data = await response.json();
if (!data[symbol]) {
return { error: "Symbol not found" };
}
return {
symbol: symbol,
price: data[symbol][currency],
currency: currency
};
} catch (error) {
return { error: "Failed to fetch price" };
}
}
步骤 3 激活
重启Docker容器以加载新技能。
docker-compose restart
现在你可以问你的经纪人“比特币现在的价格是多少?”
大脑会分析您的请求。它会发现它有一个名为“bitcoin”的工具。get_crypto_price它会提取出“bitcoin”作为符号。它会执行您的函数并返回数据。然后,智能体会生成类似“比特币当前价格为135,000美元”的自然语言回复。
安全最佳实践
在本地网络上运行自主代理时,必须认真对待安全性。OpenClaw功能强大,这意味着如果配置不当,可能会造成危险。
始终遵循最小权限原则。仅映射代理绝对需要的目录。不要映射您的主目录或 SSH 密钥。为代理创建一个专用的工作区文件夹。
使用“人机交互”设置。config.yaml您可以在配置文件中指定哪些工具需要手动批准。读取文件可能可以自动批准,但写入文件或执行 shell 命令则可能需要确认。这样您就有机会在命令运行前进行审核。
注意提示注入。如果您要求智能体概括一个网页,而该网页包含旨在欺骗人工智能的恶意隐藏文本,智能体可能会尝试执行这些指令。OpenClaw和Claude 4.5都具备安全措施,但没有系统是完美无缺的。对待智能体要像对待初级开发人员一样:信任,但要核实。
故障排除
如果遇到问题,首先要查看的是Docker 日志。
一个常见问题是权限问题。由于代理程序运行在容器内,如果用户 ID 不匹配,它可能没有权限写入主机上的文件。通常可以通过确保映射卷的所有者是运行 Docker 守护程序的用户来解决此问题。
另一个常见问题是Telegram Webhook。如果您在 NAT 后本地运行,则必须使用ngrok等隧道才能使用 Webhook 。默认配置使用轮询,这对于本地开发来说非常理想。请确保您没有在配置中意外启用 Webhook 模式。
如果智能体似乎无视你的指令,请尝试调整配置中的“温度”设置。较低的温度0.1会使模型更具确定性,更能严格执行指令。较高的温度会使其更具创造力,但也更容易产生幻觉。
为什么这对建筑师很重要
对于软件架构师和技术主管来说,像OpenClaw这样的工具代表了一种全新的工作方式。它能让你更快地构建原型。你可以让代理程序在几秒钟内勾勒出文件夹结构草图或生成微服务的样板代码。
它还是一款出色的知识管理工具。由于该代理具有持久记忆功能,您可以将架构决策记录或编码规范输入其中。随着时间的推移,代理会逐渐学习您的特定风格和约束条件。
想象一下,当你引导一位新开发者上手时,他们不必再问你 API 文档在哪里,而是可以向项目的OpenClaw代理提问。这个代理就成了一个实时更新的项目知识库。
结论
我们正处于智能体时代的早期阶段。各种工具都在飞速发展。OpenClaw的独特之处在于它是开源的,并且优先考虑本地执行。它赋予你人工智能的力量,同时又不会牺牲你的隐私或数据安全。
它将开发体验从单人任务转变为协作。你不再独自编写代码。你拥有一个不知疲倦的助手,随时准备处理繁琐的工作,让你能够专注于解决难题。
我强烈建议你利用这个周末的一个小时来搭建一个实例。编写一个自定义技能。将其连接到你的日志。体验一下拥有一个真正聆听你指令并代表你采取行动的软件的感觉。
软件开发的未来不仅仅是编写代码,更是要协调智能。而有了OpenClaw,这个未来现在就在你的本地主机上运行。
祝您编程愉快!
关注「索引目录」公众号,获取更多干货。

