余白

OpenClaw 使用指南

简介

OpenClaw 是一个 AI 驱动的代码编辑工具,作为 VS Code 扩展存在。它通过自然语言对话帮助开发者完成代码编写、解释、优化等任务,支持多种 AI 模型后端。

核心特点

  • VS Code 原生集成:无需离开 IDE 即可使用 AI 功能
  • 多模型支持:支持 OpenAI GPT、Anthropic Claude、Google Gemini 等
  • 对话式交互:通过聊天界面描述需求,AI 生成代码
  • 上下文感知:理解当前项目结构和选中文本
  • 轻量级:相比 Claude Code 更专注于 IDE 内编辑

安装

系统要求

  • VS Code 1.80+
  • Node.js 18+(部分功能需要)
  • 有效的 API 密钥(OpenAI/Claude 等)

安装步骤

方式一:VS Code 扩展市场

  1. 打开 VS Code
  2. 按 Ctrl+Shift+X 打开扩展面板
  3. 搜索 OpenClaw
  4. 点击「安装」

方式二:命令行安装

code --install-extension nickcoutsos.openclaw

验证安装

  1. 安装完成后,VS Code 侧边栏会出现 OpenClaw 图标
  2. 点击图标打开侧边面板
  3. 首次使用会提示配置 API 密钥

配置

获取 API 密钥

OpenAI API Key

  1. 访问 OpenAI Platform
  2. 登录后进入「API Keys」页面
  3. 创建新密钥(sk-…)
  4. 建议设置使用限制避免超额

Anthropic API Key

  1. 访问 Anthropic Console
  2. 注册并登录
  3. 创建 API 密钥

配置 API 密钥

方式一:VS Code 设置

  1. 按 Ctrl+, 打开设置
  2. 搜索「OpenClaw」
  3. 填写 API Key 和默认模型

方式二:settings.json

{
  "openclaw.apiKey": "sk-...",
  "openclaw.model": "gpt-4o",
  "openclaw.temperature": 0.7,
  "openclaw.maxTokens": 4096
}

完整配置项

{
  "openclaw.apiKey": "your-api-key",
  "openclaw.provider": "openai",  // openai | anthropic | google
  "openclaw.model": "gpt-4o",
  "openclaw.temperature": 0.7,
  "openclaw.maxTokens": 4096,
  "openclaw.baseUrl": "https://api.openai.com/v1",  // 自定义端点
  "openclaw.streaming": true,
  "openclaw.autoScroll": true,
  "openclaw.promptPrefix": "You are a helpful coding assistant."
}

多模型切换

OpenClaw 支持在对话中切换模型:

/model gpt-4o
/model claude-3-5-sonnet
/model gemini-pro

基础使用

打开 OpenClaw

  • 快捷键:Ctrl+Shift+P → 输入「OpenClaw」
  • 侧边栏:点击左侧 OpenClaw 图标
  • 快捷键:Ctrl+Shift+A(可自定义)

核心功能

1. 代码生成

输入:写一个 Python 函数,计算斐波那契数列第 n 项

示例:

def fibonacci(n):
    """计算斐波那契数列第 n 项"""
    if n <= 0:
        return 0
    if n == 1:
        return 1
    
    a, b = 0, 1
    for _ in range(2, n + 1):
        a, b = b, a + b
    return b

2. 代码解释

选中代码后输入:

解释这段代码

或使用指令:

/explain

3. 代码优化

优化这个函数的性能
重构这段代码,提高可读性

4. Bug 修复

这个函数报错,找出原因并修复

5. 测试生成

为这个函数生成单元测试

对话操作

操作说明
/new开始新对话
/clear清空当前对话
/model <name>切换模型
/context查看当前上下文
/export导出对话记录
/help显示帮助

常用插件/扩展

OpenClaw 本身是扩展,通过扩展增强功能:

OpenClaw 生态

插件功能用途
OpenClaw Core核心功能必装
OpenClaw Snippets代码片段生成快速生成常用代码
OpenClaw Refactor重构助手代码重构建议
OpenClaw Docs文档生成生成注释和 API 文档

推荐搭配扩展

扩展功能互补性
GitHub Copilot代码补全与 OpenClaw 互补
GitLensGit 历史查看代码来源
Error Lens错误显示快速定位问题
Thunder ClientAPI 测试配合生成 API 代码

扩展配置示例

{
  "openclaw.plugins": {
    "snippets": {
      "enabled": true,
      "languages": ["python", "javascript", "typescript"]
    },
    "refactor": {
      "enabled": true,
      "autoSuggest": true
    }
  }
}

实用案例

案例一:文档写作辅助

场景: 编写技术文档、README、项目说明

操作:

  1. 打开 OpenClaw
  2. 输入需求:
帮我写一个 Python 项目的 README.md,包含:
1. 项目简介
2. 安装方法
3. 使用示例
4. 贡献指南
  1. AI 生成文档内容
  2. 根据项目实际情况修改

提示词模板:

为 {项目名称} 编写 README.md,结构如下:
- 一句话简介
- 功能特性(用 emoji 列表)
- 快速开始
- 详细文档链接
- 许可证

项目信息:
- 语言/框架:{技术栈}
- 主要功能:{功能列表}
- 目标用户:{用户群体}

案例二:快速生成脚本

场景: 日常办公自动化、小工具开发

示例 1:文件处理脚本

需求: 批量重命名文件夹中的文件

写一个 Python 脚本,将当前目录下所有 .jpeg 文件改为 .jpg

生成代码:

import os
import glob

def rename_jpeg_to_jpg(directory="."):
    """将 .jpeg 文件重命名为 .jpg"""
    pattern = os.path.join(directory, "*.jpeg")
    files = glob.glob(pattern)
    
    renamed_count = 0
    for filepath in files:
        old_name = filepath
        new_name = filepath.replace(".jpeg", ".jpg")
        
        if not os.path.exists(new_name):
            os.rename(old_name, new_name)
            renamed_count += 1
            print(f"重命名: {old_name} -> {new_name}")
    
    print(f"\n完成!共重命名 {renamed_count} 个文件")

if __name__ == "__main__":
    rename_jpeg_to_jpg()

示例 2:数据处理脚本

需求: 解析 CSV 并生成统计报告

写一个 Python 脚本,读取 data.csv,计算每列的平均值和最大值,输出为报告

生成代码:

import csv
from collections import defaultdict

def analyze_csv(filepath):
    """分析 CSV 文件并生成统计报告"""
    with open(filepath, 'r', encoding='utf-8') as f:
        reader = csv.DictReader(f)
        data = defaultdict(list)
        
        for row in reader:
            for key, value in row.items():
                try:
                    data[key].append(float(value))
                except (ValueError, TypeError):
                    pass  # 跳过非数值列
    
    # 生成报告
    report = []
    report.append("=" * 50)
    report.append("CSV 统计分析报告")
    report.append("=" * 50)
    
    for column, values in data.items():
        if values:
            avg = sum(values) / len(values)
            max_val = max(values)
            min_val = min(values)
            
            report.append(f"\n列: {column}")
            report.append(f"  记录数: {len(values)}")
            report.append(f"  平均值: {avg:.2f}")
            report.append(f"  最大值: {max_val:.2f}")
            report.append(f"  最小值: {min_val:.2f}")
    
    report_text = "\n".join(report)
    print(report_text)
    
    # 保存报告
    with open("report.txt", "w", encoding="utf-8") as f:
        f.write(report_text)

if __name__ == "__main__":
    import sys
    if len(sys.argv) > 1:
        analyze_csv(sys.argv[1])
    else:
        print("用法: python analyze.py <csv文件路径>")

案例三:代码审查

场景: 检查代码质量、发现潜在问题

操作:

  1. 打开待审查的代码文件
  2. 全选或选中关键代码
  3. 在 OpenClaw 输入:
审查这段代码,检查:
1. 潜在的 Bug
2. 性能问题
3. 安全风险
4. 代码风格

提示词模板:

作为代码审查专家,审查以下代码:

1. 正确性 - 逻辑错误、边界情况
2. 安全性 - 注入风险、敏感数据处理
3. 性能 - 时间/空间复杂度
4. 可维护性 - 代码结构、命名规范
5. 最佳实践 - 是否符合语言特性

提供具体的改进建议。

案例四:学习新技术

场景: 快速了解新框架/库的使用

示例:学习 Pandas DataFrame

用简单的例子解释 Pandas DataFrame 的基本操作:
1. 创建 DataFrame
2. 筛选数据
3. 聚合统计

生成内容:

import pandas as pd

# 1. 创建 DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35],
    'score': [85, 92, 78]
}
df = pd.DataFrame(data)

# 2. 筛选数据
df[df['age'] > 25]  # 年龄大于25的记录
df[df['name'].str.startswith('A')]  # 名字以A开头的记录

# 3. 聚合统计
df['score'].mean()  # 平均分
df.groupby('age').count()  # 按年龄分组计数

案例五:正则表达式生成

场景: 需要匹配特定模式的文本

输入:

写一个正则表达式,匹配:
1. 邮箱地址
2. 手机号(中国大陆,1开头11位)
3. URL

生成:

import re

# 邮箱地址
email_pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'

# 中国大陆手机号
phone_pattern = r'^1[3-9]\d{9}$'

# URL
url_pattern = r'^https?://[\w\-.]+(:\d+)?(/[\w\-./?%&=]*)?$'

# 测试
test_email = "user@example.com"
test_phone = "13812345678"
test_url = "https://example.com/path"

print(f"邮箱: {bool(re.match(email_pattern, test_email))}")
print(f"手机: {bool(re.match(phone_pattern, test_phone))}")
print(f"URL: {bool(re.match(url_pattern, test_url))}")

案例六:SQL 查询生成

场景: 生成复杂的数据库查询

输入:

写一个 SQL 查询,统计每个月的订单数量和总金额,
筛选状态为"已完成"的订单,按月份排序

生成:

SELECT 
    DATE_FORMAT(order_date, '%Y-%m') AS month,
    COUNT(*) AS order_count,
    SUM(total_amount) AS total_revenue
FROM orders
WHERE status = '已完成'
GROUP BY DATE_FORMAT(order_date, '%Y-%m')
ORDER BY month;

与 Claude Code 对比

特性OpenClawClaude Code
运行环境VS Code 内终端
交互方式图形界面命令行对话
文件编辑集成编辑器独立编辑
扩展性依赖 VS Code 生态Commands/Skills/Agents
记忆系统有限强大
多文件任务一般强大
学习曲线低中

选择建议:

  • VS Code 重度用户 → OpenClaw
  • 需要复杂任务处理 → Claude Code
  • 两者可同时安装互补使用

快捷键参考

功能快捷键
打开 OpenClawCtrl+Shift+A
新建对话Ctrl+Shift+N
发送消息Enter
多行输入Shift+Enter
清除对话Ctrl+L

常见问题

Q: API 密钥如何保护?

建议:

  • 使用环境变量而非硬编码
  • 不将密钥提交到 Git
  • 定期更换密钥
# 设置环境变量
export OPENAI_API_KEY="sk-..."

Q: 请求超时怎么办?

{
  "openclaw.timeout": 120,
  "openclaw.retries": 3
}

Q: 如何查看使用量?

访问各平台的用量统计: