imekaku's blog thinking life about

AI Track - AI改变之旅


25 Feb 2026 - other

AI

现在AI都已经渗透到工作生活的各方面了,然后在工作中也经常和其打交道。我在这里记录一些我使用的AI工具或者方式吧,便于回顾。

AI Tools

Github Copilot

这里应该是之前我使用的最多的AI工具,它能够提供很好的代码补全、问题修复、问题解答等个各方面体验。在 https://github.com/settings/copilot/features 中就能订阅,然后在IDE(最常用的VSCode和IntelliJ IDEA,以及iOS开发过程中的Xcode)里面可以使用;然后也可以了Console终端中使用的方式。

而且价格很便宜,10美元一个月。我使用GitHub copilot来开发iOS项目以及对应的服务项目,用起来很方便。

但是如果遇到一些长的上下文,或者需要理解整个项目的,就不是很方便,在有些时候还不如粘贴去问chatgpt或者deepseek。

Cursor

我最开始尝试用过Cursor,但是看到它是魔改的VSCode,对于”传统派”的我来说,其实有一些芥蒂。感觉一个魔改的软件,能折腾出什么花呢,官方的Copilot以及三方的诸多软件不也挺好?在试用了一段时间之后,发现有不错的地方,但是没有让人很惊艳,然后就卸载了。

不过最近拾起来了。😂

我觉得我常常以自己固有印象和传统想象,来评判一个事物,有时会出现一些偏差。比如Cursor我就觉得看走眼了。Cursor它之所以改成这样并且受欢迎必然是有其原因。(具体的原因,可能之后再补充?)

Warp

一款AI的terminal终端工具,https://www.warp.dev/ ,我使用起来并不是很好用。它经常给一些补全方案,我觉得终端这个场景,因为命令很多而且很相近,如果提示的太多反而是一种干扰。

弃之。

Claude

Claude能够很好的理解项目、执行命令,这个应该就是对话的方式的AI Tools很难比得上的。它能轻松创建一个完整的项目,并且理解、修改项目。

安装Claude:

安装nvm:

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

安装node:

nvm install node

配置环境变量:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

安装Claude Code:

npm install -g @anthropic-ai/claude-code

使用Claude:

启动Claude命令:

claude
# 或者
claude --dangerously-skip-permissions

但是国内使用起来比较麻烦,我是注册了Claude之后,然后替换成了Deepseek的 API Key。

只需要在 .bashrc文件中新增对应的环境变量就行。

export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_API_KEY="sk-xx"  # 将此处替换为你的真实Key
export ANTHROPIC_MODEL="deepseek-chat" # 或使用 "deepseek-reasoner"
export API_TIMEOUT_MS=600000 # 设置超时时间为10分钟,防止长任务中断

Claude常用的一些命令:

  1. Shift + Tab: 切换模式(Plan Mode, accept edits on等)
  2. /ide: 这个是在Cursor中用到,在Cursor中打开终端,进入Claude之后,输入/ide能选择Cursor,使其Claude和Cursor连接
  3. /init: 让Claude理解整个项目

另外还可以使用三方路由器 claude-code-router 来切换deepseek model。

安装:

npm install -g @musistudio/claude-code-router

编辑配置文件 ~/.claude-code-router/config.json:

{
  "Providers": [
    {
      "name": "deepseek",
      "api_base_url": "https://api.deepseek.com/chat/completions",
      "api_key": "sk-",
      "models": ["deepseek-chat", "deepseek-reasoner"]
    },
    {
      "name": "moonshot",
      "api_base_url": "https://api.moonshot.ai/anthropic",
      "api_key": "sk-",
      "models": ["kimi-k2.5"]
    },
    {
      "name": "qwen",
      "api_base_url": "https://dashscope.aliyuncs.com/apps/anthropic",
      "api_key": "sk-",
      "models": [
        "qwen3.5-plus",
        "qwen3-max",
        "qwen3-coder-plus"
      ] 
    }
  ],

  "Router": {
    "default": "deepseek,deepseek-chat",
    "background": "deepseek,deepseek-chat",
    "think": "deepseek,deepseek-reasoner",
    "longContext": "moonshot,kimi-k2.5",
    "webSearch": "moonshot,kimi-k2.5",
    "complexCoding": "qwen,qwen3-coder-plus"
  }
}

通过路由器启动:

ccr code

然后就可以在对话中使用

/model kimi-k2.5
/model qwen3-coder-plus

这样的命令来动态切换模型了。

Claude 在开发过程中,经常会遇到,(吐槽:现在上下文还是太小了一些),这个时候可以用 /compact 来压缩之前的上下文:

{
    "error": {
        "message": "This model's maximum context length is 131072 tokens. 
        However, you requested 131606 tokens 
        (99606 in the messages, 32000 in the completion). 
        Please reduce the length of the messages or completion.",
        "type": "invalid_request_error",
        "param": null,
        "code": "invalid_request_error"
    }
}

OpenClaw

相比ClawCode更多的是工具调用,“应该是” 能够更方便的操控你的电脑。

curl -fsSL https://openclaw.ai/install.sh | bash

启动向导配置:

openclaw onboard

其他常用命令:

openclaw models status # 查看相应模型的状态
openclaw config # 进行配置

进行telegram的配置

  1. 在telegram中搜索BotFather,这个是被Telegram认证的,所以会有蓝色角标
  2. 在BotFather对话中输入 /newbot 安装其对话创建机器人,最终创建 _bot 结尾的机器人
  3. 根据其返回的token对openclaw进行配置,输入 openclaw config 然后安装流程进行配置,输入在 2 步骤中的token
  4. 和 _bot 机器人任意对话,或者直接打开 t.me/你的机器人名字_bot 这个时候会有显示 Pairing Code,在电脑终端输入
    openclaw pairing approve telegram CODE
    
  5. 如果终端显示如下,即表示配对成功,可以进行相关测试是否正常工作
    Approved telegram sender YOUR TELEGRAM USERID
    

telegram测试

安装skills

技能名称 它能做什么?(核心用途) 安装命令
ClawHub 这是OpenClaw官方的”应用商店”。安装后,你可以用它来搜索、安装、更新和管理所有其他技能,是玩转技能生态的起点。 npx clawhub@latest install
agent-browser 浏览器自动化。让AI像人一样打开网页、抓取数据、模拟点击,比如自动登录后台截图、定时获取热搜榜等。 npx clawhub@latest install agent-browser
file-manager 文件管理。实现文件的创建、读取、修改、备份等全流程操作。比如让AI帮你整理文件夹、批量重命名文件。 npx clawhub@latest install file-manager
system-command 系统命令。通过自然语言执行系统命令,对于不熟悉命令行的开发者来说非常友好。例如,你可以直接说”查看当前CPU占用率”,它会帮你执行并返回结果。 npx clawhub@latest install system-command
gmail-manager / GOG 邮件与谷歌服务管理。自动收发Gmail邮件、整理收件箱,甚至操作Google日历和Drive。GOG(Google+Outlook+Gmail)则是一个更强大的集成方案。 npx clawhub@latest install gmail-managernpx clawhub@latest install gog
n8n-workflow-automation 跨应用工作流自动化。连接n8n这个开源自动化工具,让OpenClaw能调用数百个应用(如Notion, Trello, Slack)的API,实现复杂业务流程自动化。 npx clawhub@latest install n8n-workflow-automation
github GitHub管理。直接在对话中操作GitHub仓库,比如创建仓库、提交代码、合并分支、查看Issue等。 npx clawhub@latest install github
debug-pro 代码调试。把你的代码和报错信息丢给它,它能帮你分析错误原因并给出修改建议,是程序员的好帮手。 npx clawhub@latest install debug-pro
tavily-search 实时联网搜索。Tavily是专为AI优化的搜索引擎,能返回无广告、结构化的搜索结果,非常适合用来查最新论文、新闻、价格等,弥补了大模型知识滞后的短板。 npx clawhub@latest install tavily-search
obsidian 笔记库读写。对于使用Obsidian的用户来说,这个技能可以直接读写你的知识库,将聊天记录、搜索结果自动整理成双向链接的Markdown笔记。 npx clawhub@latest install obsidian
summarize 智能总结。一键浓缩长文、邮件、会议录音或PDF,提炼要点和行动项,提升信息处理效率。 npx clawhub@latest install summarize
mcp-adapter MCP协议适配器。这是一个非常酷的插件,它可以让OpenClaw调用任何遵循Model Context Protocol(模型上下文协议)的服务器工具,极大地扩展了技能的生态边界。 openclaw plugins install mcp-adapter

安装完成之后,重启openclaw:

openclaw gateway restart

skills用例

agent-browser

抓取网页内容,并进行分析

agent-browser

agent-browser

使用telegram获取日文新闻内容:

agent-browser

自定义skill

自定义一个运算符 @!(随意起的一个运算符,举例为:2@!5 = 2*5+2!)。

在skills目录创建对应的文件夹:

lee@old-mac-mini:~/.openclaw/workspace/skills$ tree at-bang-factorial/
at-bang-factorial/
├── SKILL.md
└── scripts
    └── at_bang.py

2 directories, 2 files

SKILL.md文件如下:

---
name: at-bang-factorial
description: 执行 @! 特殊运算:计算 a @! b = a * b + a!(a乘以b加上a的阶乘)。
            Use when: 用户需要进行 @! 运算,或询问形如 "2@!5" 的计算结果。
---

# @! 运算器

执行特殊的 `@!` 运算。

## 运算规则

```
a @! b = a × b + a!
```

即:a 乘以 b,再加上 a 的阶乘。

## 示例

- `2 @! 5` = 2×5 + 2! = 10 + 2 = **12**
- `3 @! 4` = 3×4 + 3! = 12 + 6 = **18**
- `5 @! 2` = 5×2 + 5! = 10 + 120 = **130**

## 使用方法

运行脚本并传入两个数字:

```bash
python scripts/at_bang.py <a> <b>
```

例如:
```bash
python scripts/at_bang.py 2 5
```

输出会显示完整的计算步骤。

## 限制

- 第一个数字 a 必须是非负整数(阶乘只定义在非负整数上)
- 数字过大可能导致阶乘结果溢出

执行文件内容如下:

#!/usr/bin/env python3
"""
@! 运算器
计算规则: a @! b = a * b + a!
例如: 2 @! 5 = 2*5 + 2! = 10 + 2 = 12
"""
import sys
import math

def at_bang_factorial(a, b):
    """计算 a @! b = a * b + a!"""
    product = a * b
    factorial = math.factorial(int(a))
    return product + factorial

def main():
    if len(sys.argv) != 3:
        print("用法: python at_bang.py <数字a> <数字b>")
        print("计算: a @! b = a * b + a!")
        sys.exit(1)
    
    try:
        a = float(sys.argv[1])
        b = float(sys.argv[2])
        
        # 检查a是否为非负整数(阶乘要求)
        if a < 0 or not a.is_integer():
            print(f"错误: 第一个数字 {a} 必须是非负整数(阶乘只定义在非负整数上)")
            sys.exit(1)
        
        result = at_bang_factorial(a, b)
        
        # 显示计算过程
        factorial_val = math.factorial(int(a))
        print(f"{int(a)} @! {b} = {int(a)} × {b} + {int(a)}!")
        print(f"       = {int(a * b)} + {factorial_val}")
        print(f"       = {result}")
        
    except ValueError:
        print("错误: 请输入有效的数字")
        sys.exit(1)
    except OverflowError:
        print("错误: 数字太大,阶乘结果溢出")
        sys.exit(1)

if __name__ == "__main__":
    main()

打包skill:

python3 ~/.nvm/versions/node/v25.7.0/lib/node_modules/openclaw/skills/skill-creator/scripts/package_skill.py skills/at-bang-factorial

验证打包结果:

ls -lh ~/.openclaw/workspace/at-bang-factorial.skill
file ~/.openclaw/workspace/at-bang-factorial.skill

安装打包好的skill:

npx clawhub install ./at-bang-factorial.skill

或者手动解压:

unzip at-bang-factorial.skill -d ~/.openclaw/workspace/skills/

Local AI

我最近使用Claude在deepseek,kimi,阿里云千问上都花了不少钱了,消耗太快。尝试着用本地AI来执行一些任务。

ollama + claude

我家里是这样的设备架构:

我在卧室使用的是Mac Mini M4搭配显示器,我在客厅分别放置了我以前使用的Mac Mini Intel,以及一台Windows电脑。我平常使用 M4 Mac Mini连接另外两台电脑,使用的是 parsecWindows APP ,这样电脑风扇的声音就不会吵到我。玩游戏之类的延迟和画质也能接受。

home-computer

1. 配置 ollama

(如果之后不用Mac连接ollama的话,这一步其实并不是很重要)

在Windows电脑中添加两个环境变量:

变量名: OLLAMA_HOST,变量值: 0.0.0.0 (这表示监听所有网络接口)
变量名: OLLAMA_ORIGINS,变量值: * (这有助于处理来自不同源的Web请求,防患未然)

重启OLLAMA,使其环境变量生效;

配置Windows防火墙 (Ollama的默认端口):

New-NetFirewallRule -DisplayName "Ollama LAN Access" -Direction Inbound -Protocol TCP -LocalPort 11434 -Action Allow -Profile Any

通过IPCONFIG获取得到windows局域网的IP地址(这里我是有设置Windows的局域网IP地址固定的)。

curl http://10.196.1.82:11434

# 输出结果
Ollama is running

这也就算ollama配置ok了。

2. 桥接 ollama

Claude Desktop 使用的是 Anthropic 的 API 格式,而 Ollama 使用的是 OpenAI 兼容格式。

所以需要使用一个桥接工具来让 Claude Desktop 能够调用 Ollama

桥接有多种方式了:

使用LiteLLM Proxy又可以放在Mac端或者Windows端,这里我选择放在Windows端。

2.1 Windows上安装 liteLLM:

# 确保有 Python 3.8+
python --version

# 安装 LiteLLM
pip install litellm
pip install litellm[proxy]

2.2 创建一个litellm配置文件:

model_list:
  - model_name: claude-3-5-sonnet-20241022
    litellm_params:
      model: ollama/gemma3:4b
      api_base: http://localhost:11434
      custom_llm_provider: ollama
      api_version: "2023-06-01"
      
  - model_name: deepseek-reasoner
    litellm_params:
      model: ollama/deepseek-r1:14b
      api_base: http://localhost:11434
      custom_llm_provider: ollama
      api_version: "2023-06-01"

litellm_settings:
  drop_params: true
  request_timeout: 600
  modify_params: true

2.3 启动litellm:

将这个配置文件放在其中一个目录里面,然后进入这个目录执行命令:

litellm --config config.yaml --host 0.0.0.0 --port 3456

这个时候终端会有成功的内容输出。

2.4 开放Windows 3456端口的防火墙:

# 以管理员运行 PowerShell
New-NetFirewallRule -DisplayName "LiteLLM-Proxy" -Direction Inbound -LocalPort 3456 -Protocol TCP -Action Allow

网络拓扑图如下:

┌─────────────────┐         ┌──────────────────────────────┐
│   Mac (Claude)  │────────▶│  Windows (10.196.1.81)       │
│                 │  :3456  │  ┌──────────────────────┐    │
│ ANTHROPIC_BASE_ │────────▶│  │  LiteLLM Proxy       │    │
│ URL=http://10.  │         │  │  :3456               │    │
│ 196.1.81:3456   │         │  └──────────┬───────────┘    │
│                 │         │             │                │
│                 │         │  ┌──────────▼───────────┐    │
│                 │         │  │  Ollama (:11434)     │    │
│                 │         │  │  - gemma3:4b         │    │
│                 │         │  │  - qwen2.5-coder:14b │    │
│                 │         │  │  - deepseek-r1:14b   │    │
│                 │         │  └──────────────────────┘    │
└─────────────────┘         └──────────────────────────────┘

3. 配置 Claude

这一步就和配置Claude 使用其他三方的model差不多了。在配置文件中添加:

export ANTHROPIC_BASE_URL="http://10.196.1.81:3456"
export ANTHROPIC_API_KEY="dummy_key_for_ollama"
export API_TIMEOUT_MS=600000

Mac端进行测试:

curl http://10.196.1.81:3456/v1/models
curl http://10.196.1.81:3456/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-3-5-sonnet-20241022",
    "messages": [{"role": "user", "content": "Hello"}]
  }'