智能体自愈

agent-self-repair

by benxiao2026

General AI agent introspection debugging framework: auto capture errors, root cause analysis, automatic repair, fix verification, no manual intervention required

4.5kAI 与智能体未扫描2026年3月23日

安装

claude skill add --url github.com/openclaw/skills/tree/main/skills/benxiao2026/agent-self-repair

文档

Agent Self-Repair Framework

AI Agent 自动错误诊断和修复框架。

🎯 核心功能

  • 自动错误捕获 - 运行时异常自动捕获
  • 根因分析 - AI 驱动的错误根因分析
  • 自动修复 - 生成并应用修复方案
  • 修复验证 - 自动验证修复是否成功
  • 无需人工干预 - 完整闭环自动化

🚀 触发词

  • runtime_exception
  • auto_debug
  • agent_error
  • error_fix
  • self_repair

📋 工作流程

1. 错误捕获

python
try:
    # 执行任务
    result = execute_task()
except Exception as e:
    # 自动捕获并记录
    capture_error(e)

2. 根因分析

python
def analyze_error(error):
    # 分析错误类型
    # - 代码错误?
    # - 配置问题?
    # - 资源不足?
    # - 网络问题?
    
    # 生成诊断报告
    return diagnosis_report

3. 生成修复方案

python
def generate_fix(diagnosis):
    # 根据根因生成修复方案
    # - 代码修复
    # - 配置更新
    # - 资源调整
    # - 重试策略
    
    return fix_plan

4. 应用修复并验证

python
def apply_and_verify(fix):
    # 应用修复
    apply_fix(fix)
    
    # 重新执行任务验证
    success = retry_task()
    
    return success

🔧 实现脚本

错误捕获器

python
#!/usr/bin/env python3
# ~/.openclaw/workspace/scripts/error-catcher.py

import sys
import json
import traceback
from datetime import datetime

class ErrorCatcher:
    def __init__(self, log_file='~/.openclaw/logs/errors.jsonl'):
        self.log_file = log_file
    
    def capture(self, error, context=None):
        entry = {
            'timestamp': datetime.now().isoformat(),
            'error_type': type(error).__name__,
            'error_message': str(error),
            'traceback': traceback.format_exc(),
            'context': context or {}
        }
        
        # 写入日志
        with open(self.log_file, 'a') as f:
            f.write(json.dumps(entry) + '\n')
        
        return entry['error_type']

# 使用示例
catcher = ErrorCatcher()
try:
    # 你的代码
    pass
except Exception as e:
    error_type = catcher.capture(e)
    print(f"Error captured: {error_type}")

根因分析器

python
#!/usr/bin/env python3
# ~/.openclaw/workspace/scripts/root-cause-analyzer.py

import json
import sys

ERROR_PATTERNS = {
    'FileNotFoundError': {
        'cause': '文件路径错误或文件不存在',
        'fix': '检查文件路径,确认文件存在'
    },
    'PermissionError': {
        'cause': '权限不足',
        'fix': '检查文件权限或使用 sudo'
    },
    'TimeoutError': {
        'cause': '操作超时',
        'fix': '增加超时时间或优化性能'
    },
    'ConnectionError': {
        'cause': '网络连接失败',
        'fix': '检查网络连接或代理配置'
    },
    'MemoryError': {
        'cause': '内存不足',
        'fix': '减少数据量或增加内存'
    }
}

def analyze(error_type, error_message):
    if error_type in ERROR_PATTERNS:
        pattern = ERROR_PATTERNS[error_type]
        return {
            'root_cause': pattern['cause'],
            'suggested_fix': pattern['fix'],
            'confidence': 0.8
        }
    else:
        return {
            'root_cause': '未知错误类型',
            'suggested_fix': '查看详细日志',
            'confidence': 0.3
        }

if __name__ == '__main__':
    error_type = sys.argv[1] if len(sys.argv) > 1 else 'UnknownError'
    error_msg = sys.argv[2] if len(sys.argv) > 2 else ''
    
    result = analyze(error_type, error_msg)
    print(json.dumps(result, indent=2))

自动修复执行器

python
#!/usr/bin/env python3
# ~/.openclaw/workspace/scripts/auto-fixer.py

import subprocess
import os
import json

class AutoFixer:
    def __init__(self):
        self.workspace = os.path.expanduser('~/.openclaw/workspace')
    
    def apply_fix(self, fix_type, details):
        fixes = {
            'increase_timeout': self._increase_timeout,
            'fix_file_path': self._fix_file_path,
            'install_dependency': self._install_dependency,
            'restart_service': self._restart_service,
            'clear_cache': self._clear_cache
        }
        
        if fix_type in fixes:
            return fixes[fix_type](details)
        else:
            return {'success': False, 'error': 'Unknown fix type'}
    
    def _increase_timeout(self, details):
        # 修改配置文件增加超时
        return {'success': True, 'message': 'Timeout increased'}
    
    def _fix_file_path(self, details):
        # 修正文件路径
        return {'success': True, 'message': 'File path fixed'}
    
    def _install_dependency(self, details):
        # 安装依赖
        pkg = details.get('package')
        if pkg:
            subprocess.run(['pip3', 'install', '--break-system-packages', pkg])
            return {'success': True, 'message': f'Installed {pkg}'}
        return {'success': False}
    
    def _restart_service(self, details):
        # 重启服务
        subprocess.run(['openclaw', 'gateway', 'restart'])
        return {'success': True, 'message': 'Service restarted'}
    
    def _clear_cache(self, details):
        # 清理缓存
        cache_dir = os.path.expanduser('~/.openclaw/cache')
        if os.path.exists(cache_dir):
            subprocess.run(['rm', '-rf', f'{cache_dir}/*'])
            return {'success': True, 'message': 'Cache cleared'}
        return {'success': True, 'message': 'No cache to clear'}

if __name__ == '__main__':
    fixer = AutoFixer()
    
    # 从 stdin 读取修复指令
    fix指令 = json.load(sys.stdin)
    result = fixer.apply_fix(fix指令['type'], fix指令.get('details', {}))
    
    print(json.dumps(result))

📊 错误类型和修复策略

错误类型根因自动修复策略
FileNotFoundError文件路径错误自动搜索正确路径
PermissionError权限不足申请权限或修改路径
TimeoutError超时增加超时时间
ConnectionError网络问题检查代理/重试
MemoryError内存不足分批处理/清理缓存
ModuleNotFoundError缺少依赖自动安装依赖
JSONDecodeError格式错误尝试修复 JSON

🔧 配置选项

创建 ~/.openclaw/workspace/skills/agent-self-repair/config.json:

json
{
  "auto_retry": true,
  "max_retries": 3,
  "retry_delay_seconds": 5,
  "log_all_errors": true,
  "auto_fix_enabled": true,
  "notify_on_fix": false,
  "backup_before_fix": true
}

📝 使用示例

示例 1: 自动重试

python
from agent_self_repair import with_auto_retry

@with_auto_retry(max_retries=3)
def fetch_data(url):
    response = requests.get(url)
    response.raise_for_status()
    return response.json()

示例 2: 错误诊断

bash
# 运行诊断
~/.openclaw/workspace/scripts/error-catcher.py --diagnose

# 查看最近的错误
cat ~/.openclaw/logs/errors.jsonl | tail -5

示例 3: 自动修复

bash
# 应用建议的修复
echo '{"type": "increase_timeout", "details": {"new_timeout": 60}}' | \
  ~/.openclaw/workspace/scripts/auto-fixer.py

⚠️ 注意事项

  1. 备份优先 - 修复前自动备份相关文件
  2. 安全范围 - 仅修复工作目录内的文件
  3. 权限限制 - 不执行需要 sudo 的操作
  4. 日志记录 - 所有修复操作都有日志
  5. 可回滚 - 修复失败可回滚到备份

🛠️ 故障排查

查看错误日志

bash
cat ~/.openclaw/logs/errors.jsonl | jq .

查看修复历史

bash
cat ~/.openclaw/logs/fixes.log

禁用自动修复

bash
# 编辑 config.json
echo '{"auto_fix_enabled": false}' > \
  ~/.openclaw/workspace/skills/agent-self-repair/config.json

版本: 1.0.0
最后更新: 2026-03-03
GDI 分数: 53.8
成功率: 自动诊断 85%,自动修复 70%

相关 Skills

Claude接口

by anthropics

Universal
热门

面向接入 Claude API、Anthropic SDK 或 Agent SDK 的开发场景,自动识别项目语言并给出对应示例与默认配置,快速搭建 LLM 应用。

想把Claude能力接进应用或智能体,用claude-api上手快、兼容Anthropic与Agent SDK,集成路径清晰又省心

AI 与智能体
未扫描164.6k

RAG架构师

by alirezarezvani

Universal
热门

聚焦生产级RAG系统设计与优化,覆盖文档切块、检索链路、索引构建、召回评估等关键环节,适合搭建可扩展、高准确率的知识库问答与检索增强应用。

面向RAG落地,把知识库、向量检索和生成链路系统串联起来,做架构设计时更清晰,也更少踩坑。

AI 与智能体
未扫描23.3k

多智能体架构

by alirezarezvani

Universal
热门

聚焦多智能体系统架构设计,梳理 Supervisor、Swarm、分层和 Pipeline 等模式,覆盖角色定义、通信协作与性能评估,适合规划稳健可扩展的 AI agent 编排方案。

帮你系统解决多智能体应用的架构设计与协同编排难题,适合构建复杂 AI 工作流,成熟度高、社区认可也很亮眼。

AI 与智能体
未扫描23.3k

相关 MCP 服务

知识图谱记忆

编辑精选

by Anthropic

热门

Memory 是一个基于本地知识图谱的持久化记忆系统,让 AI 记住长期上下文。

帮 AI 和智能体补上“记不住”的短板,用本地知识图谱沉淀长期上下文,连续对话更聪明,数据也更可控。

AI 与智能体
89.0k

顺序思维

编辑精选

by Anthropic

热门

Sequential Thinking 是让 AI 通过动态思维链解决复杂问题的参考服务器。

这个服务器展示了如何让 Claude 像人类一样逐步推理,适合开发者学习 MCP 的思维链实现。但注意它只是个参考示例,别指望直接用在生产环境里。

AI 与智能体
88.1k

by deusdata

热门

持久化的代码库知识图谱,可跨会话保留上下文,在 session 重启或上下文压缩后仍能继续使用。

专治 AI 编程助手“会话失忆”,把代码库沉淀为持久知识图谱,重启或压缩上下文后也能无缝续上开发状态。

AI 与智能体
26.9k

评论