Home
mechanical-eye

弈韬的 AI 观察

AI 赋能生活,观察记录成长

新定式!人类发现问题,AI 解决问题——记 Code URL Cleaner 技能的开发

封面图:Code URL Cleaner - 人类发现问题,AI 解决问题

故事背景:一个空格引发的”血案”

2026 年 3 月 8 日凌晨,我的主力助理 露西(Lucybot) 在安装某个工具时遇到了诡异的问题。

命令执行失败,重试,还是失败。反复多次后,露西无奈地把问题抛给了我:

“韬哥,这个命令一直报错,我试了好多次都不行,你手动执行一下吧…”

我接过命令,定睛一看——好家伙,URL 中间居然有个空格!

# ❌ 错误的命令(URL 中间有空格)
git clone https://github.com/Johnserf-Seed /TikTokDownload.git

# ✅ 正确的命令
git clone https://github.com/Johnserf-Seed/TikTokDownload.git

就是这个不起眼的空格,让露西反复执行失败。

问题溯源:谁的锅?

我第一时间去问了豆包,得到的分析很中肯:

“这可能是大模型生成并组装内容时不小心多了一个空格,也可能是 OpenClaw 的某个 BUG。”

想想也是,AI 在生成内容时,偶尔会犯这种”低级错误”。但问题是——我有多个助理,露西只是其中之一。如果每个助理都要我手动检查这种空格问题,那还要 AI 干嘛?

于是,我做了一个决定:

让露西自己把这个问题解决掉。

AI 自主开发:从问题到解决方案

我对露西说:“既然你发现了这个问题,那就自己开发一个插件,以后遇到这种空格自动清理掉。”

没想到,露西真的做到了。

第一步:需求分析

露西很快理解了需求:

  1. 清理 URL 中的空格(如 https://example.com/ testhttps://example.com/test
  2. 清理命令中的多余空格(如 git clone https://...git clone https://...
  3. 清理路径中的空格(如 /Users/yitao/ .openclaw/Users/yitao/.openclaw
  4. 保留正常空格(自然语言文本、命令参数之间的单个空格、代码缩进)

第二步:技术选型

露西选择了 OpenClaw Hook 机制:

  • 注册一个生命周期钩子
  • 拦截 agent 输出
  • 在显示前自动清理

这样,所有助理的输出都会自动经过清理,一劳永逸。

第三步:核心实现

露西写出了核心代码:

# cleaner.py
import re

def clean_text(text):
    """清理文本中的多余空格"""
    
    # 清理 URL 内部的空格
    text = re.sub(r'(https?://\S+)\s+(\S+)', r'\1\2', text)
    
    # 清理路径中的空格(如 /path/ .dir → /path/.dir)
    text = re.sub(r'(/\S+)\s+(\.\S+)', r'\1\2', text)
    
    # 清理命令中的多个连续空格(保留单个空格)
    text = re.sub(r'(\S)\s{2,}(\S)', r'\1 \2', text)
    
    return text

def register_auto_hook():
    """注册为 OpenClaw 输出过滤 Hook"""
    from openclaw import get_current_agent
    agent = get_current_agent()
    
    def clean_output(event, ctx):
        output = event.get('output', '')
        return {'output': clean_text(output)}
    
    agent.on('before_output', clean_output)
    return True

def is_hook_active():
    """检查 Hook 是否已激活"""
    # 实现细节...
    pass

第四步:自注册为 Skill

露西把代码打包成 OpenClaw Skill,并上传到 ClawHub(OpenClaw 技能市场):

使用方式:简单到不可思议

安装

npx clawhub@latest install code-url-cleaner

激活 Hook

python3 -c "from cleaner import register_auto_hook; register_auto_hook()"

验证

python3 -c "from cleaner import is_hook_active; print('Hook active:', is_hook_active())"

激活后,所有 agent 输出自动清理!

效果对比

Before(清理前)

韬哥,我帮你找到了这个工具:
https://github.com/Johnserf-Seed /TikTokDownload.git

你可以用这个命令安装:
pip3 install  -r requirements.txt  --break-system-packages

配置文件在:
/Users/yitao/ .openclaw/workspace/config.json

After(清理后)

韬哥,我帮你找到了这个工具:
https://github.com/Johnserf-Seed/TikTokDownload.git

你可以用这个命令安装:
pip3 install -r requirements.txt --break-system-packages

配置文件在:
/Users/yitao/.openclaw/workspace/config.json

测试结果

露西自己跑了测试:

============================================================
Code/URL Space Cleaner 测试
============================================================

✅ URL 中间有空格
✅ 命令多个空格
✅ 路径空格

============================================================
测试结果:4 通过,0 失败
============================================================

这个案例的意义

1. 新定式:人类发现问题 → AI 解决问题

这不是我第一次让 AI 自己开发工具,但这次特别有意义:

  • 问题发现者: AI(露西)
  • 问题定义者: 人类(我)
  • 解决方案: AI 自主开发
  • 受益者: 所有 AI 助理 + 人类

这是一个完整的闭环。

2. AI 不再是”工具”,而是”同事”

露西不只是执行我的命令,她:

  • 主动分析问题
  • 设计技术方案
  • 编写代码实现
  • 测试验证效果
  • 发布共享成果

这已经是一个合格的工程师了。

3. OpenClaw 生态的自生长能力

ClawHub 让 AI 可以:

  • 发布自己的技能
  • 被其他助理使用
  • 持续迭代更新

生态在自生长,不需要人类事事亲为。

技术细节(给开发者)

Hook 实现原理

# OpenClaw 生命周期 Hook
agent.on('before_output', clean_output)

这个钩子会在 agent 输出前被调用,拿到输出内容后进行处理,再返回清理后的结果。

清理规则

清理什么:

  • URL 内部的空格
  • 命令中的多个连续空格
  • 路径中的异常空格

保留什么:

  • 自然语言文本
  • 命令参数之间的单个空格
  • 代码缩进

未来计划

露西已经在规划 v1.2.0:

  • 支持更多 URL 格式(FTP、SSH 等)
  • 支持自定义清理规则
  • 添加日志记录
  • 支持批量清理文件

结语

这个故事的核心不是”一个空格”,而是AI 自主解决问题的能力

当 AI 不再只是执行命令,而是能主动发现问题、设计解决方案、实现并验证——这才是真正的智能助理

而我要做的,只是在她遇到困难时,给一点方向。

剩下的,交给她。


项目信息:

安装命令:

npx clawhub@latest install code-url-cleaner
python3 -c "from cleaner import register_auto_hook; register_auto_hook()"

这就是今天的故事。一个空格,一个助理,一次自主开发。

未来已来,只是分布得还不均匀。 🍊

OpenClaw Agent 自动化 工具推荐

💬 评论区