智能体自愈
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
安装
claude skill add --url github.com/openclaw/skills/tree/main/skills/benxiao2026/agent-self-repair文档
Agent Self-Repair Framework
AI Agent 自动错误诊断和修复框架。
🎯 核心功能
- ✅ 自动错误捕获 - 运行时异常自动捕获
- ✅ 根因分析 - AI 驱动的错误根因分析
- ✅ 自动修复 - 生成并应用修复方案
- ✅ 修复验证 - 自动验证修复是否成功
- ✅ 无需人工干预 - 完整闭环自动化
🚀 触发词
runtime_exceptionauto_debugagent_errorerror_fixself_repair
📋 工作流程
1. 错误捕获
try:
# 执行任务
result = execute_task()
except Exception as e:
# 自动捕获并记录
capture_error(e)
2. 根因分析
def analyze_error(error):
# 分析错误类型
# - 代码错误?
# - 配置问题?
# - 资源不足?
# - 网络问题?
# 生成诊断报告
return diagnosis_report
3. 生成修复方案
def generate_fix(diagnosis):
# 根据根因生成修复方案
# - 代码修复
# - 配置更新
# - 资源调整
# - 重试策略
return fix_plan
4. 应用修复并验证
def apply_and_verify(fix):
# 应用修复
apply_fix(fix)
# 重新执行任务验证
success = retry_task()
return success
🔧 实现脚本
错误捕获器
#!/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}")
根因分析器
#!/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))
自动修复执行器
#!/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:
{
"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: 自动重试
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: 错误诊断
# 运行诊断
~/.openclaw/workspace/scripts/error-catcher.py --diagnose
# 查看最近的错误
cat ~/.openclaw/logs/errors.jsonl | tail -5
示例 3: 自动修复
# 应用建议的修复
echo '{"type": "increase_timeout", "details": {"new_timeout": 60}}' | \
~/.openclaw/workspace/scripts/auto-fixer.py
⚠️ 注意事项
- 备份优先 - 修复前自动备份相关文件
- 安全范围 - 仅修复工作目录内的文件
- 权限限制 - 不执行需要 sudo 的操作
- 日志记录 - 所有修复操作都有日志
- 可回滚 - 修复失败可回滚到备份
🛠️ 故障排查
查看错误日志
cat ~/.openclaw/logs/errors.jsonl | jq .
查看修复历史
cat ~/.openclaw/logs/fixes.log
禁用自动修复
# 编辑 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
面向接入 Claude API、Anthropic SDK 或 Agent SDK 的开发场景,自动识别项目语言并给出对应示例与默认配置,快速搭建 LLM 应用。
✎ 想把Claude能力接进应用或智能体,用claude-api上手快、兼容Anthropic与Agent SDK,集成路径清晰又省心
RAG架构师
by alirezarezvani
聚焦生产级RAG系统设计与优化,覆盖文档切块、检索链路、索引构建、召回评估等关键环节,适合搭建可扩展、高准确率的知识库问答与检索增强应用。
✎ 面向RAG落地,把知识库、向量检索和生成链路系统串联起来,做架构设计时更清晰,也更少踩坑。
多智能体架构
by alirezarezvani
聚焦多智能体系统架构设计,梳理 Supervisor、Swarm、分层和 Pipeline 等模式,覆盖角色定义、通信协作与性能评估,适合规划稳健可扩展的 AI agent 编排方案。
✎ 帮你系统解决多智能体应用的架构设计与协同编排难题,适合构建复杂 AI 工作流,成熟度高、社区认可也很亮眼。
相关 MCP 服务
知识图谱记忆
编辑精选by Anthropic
Memory 是一个基于本地知识图谱的持久化记忆系统,让 AI 记住长期上下文。
✎ 帮 AI 和智能体补上“记不住”的短板,用本地知识图谱沉淀长期上下文,连续对话更聪明,数据也更可控。
顺序思维
编辑精选by Anthropic
Sequential Thinking 是让 AI 通过动态思维链解决复杂问题的参考服务器。
✎ 这个服务器展示了如何让 Claude 像人类一样逐步推理,适合开发者学习 MCP 的思维链实现。但注意它只是个参考示例,别指望直接用在生产环境里。
by deusdata
持久化的代码库知识图谱,可跨会话保留上下文,在 session 重启或上下文压缩后仍能继续使用。
✎ 专治 AI 编程助手“会话失忆”,把代码库沉淀为持久知识图谱,重启或压缩上下文后也能无缝续上开发状态。