Install
openclaw skills install correction-logger记录并管理用户纠正、代理错误和改进建议,支持优先级排序、有效性反馈及全文搜索,兼容现有文件格式。
openclaw skills install correction-loggercorrection-logger 是 Self-Improving + Proactive Agent (SIPA) 系统的第一个单功能拆分插件,负责记录用户纠正、代理错误、以及系统自我改进的关键事件。集成 NeverOnce 理念:修正优先级系统、有效性反馈、FTS5全文搜索。插件保持与现有 ~/self‑improving/corrections.md 文件格式完全兼容,同时提供结构化 API 与适配器接口,便于星型架构其他组件调用。
.helped() 反馈记录,动态有效性分数计算check_corrections_for_action() 预检相关修正corrections.md 文件格式完全兼容self‑improving 技能)无需修改corrections.md 超过 1000 行时自动创建归档文件(corrections_YYYY‑MM‑DD.md)MemoryAdapter 基类,提供 log_correction、get_recent_corrections、get_stats、health_check 方法self‑improving# 从 ClawHub 安装(发布后)
clawhub install correction-logger
# 或本地开发模式
cp -r correction-logger /root/.openclaw/workspace/skills/
config/default.yaml:
# 纠正记录配置
corrections_file: "~/self-improving/corrections.md"
max_lines_per_file: 1000
archive_directory: "~/self-improving/archive/"
enable_health_check: true
health_check_interval_seconds: 300
# 适配器配置
adapter:
name: "correction_logger"
version: "0.1.0"
dependencies:
- "self-improving"
from correction_logger import CorrectionLogger
logger = CorrectionLogger()
# 记录纠正
correction_id = logger.log_correction(
user_input="你刚才说的版本号错了",
agent_response="当前版本是 v0.1.0",
corrected_response="应该是 v0.5.0",
context={"skill": "evolution-watcher", "timestamp": "2026-03-18T15:30:00Z"}
)
# 获取最近纠正
recent = logger.get_recent_corrections(limit=10)
# 获取统计
stats = logger.get_stats()
print(f"总纠正数: {stats['total_corrections']}")
# 健康检查
health = logger.health_check()
from integration.adapter.correction_logger_adapter import CorrectionLoggerAdapter
adapter = CorrectionLoggerAdapter()
health = adapter.health_check()
print(health['healthy']) # True/False
# 记录纠正(测试用)
python3 scripts/correction_logger.py log --input "你错了" --response "旧答案" --corrected "新答案"
# 查看最近纠正
python3 scripts/correction_logger.py recent --limit 5
# 运行健康检查
python3 scripts/correction_logger.py health
当 evolution‑watcher 检测到插件升级失败时,自动记录纠正:
def record_upgrade_failure(plugin_name, error_message):
from correction_logger import CorrectionLogger
logger = CorrectionLogger()
logger.log_correction(
user_input=f"升级 {plugin_name} 失败",
agent_response="尝试自动升级插件",
corrected_response="需要手动检查依赖冲突",
context={"plugin": plugin_name, "error": error_message}
)
self‑improving 技能通过适配器调用纠正记录,无需直接操作文件:
# 原代码(直接写入文件)
with open("~/self-improving/corrections.md", "a") as f:
f.write(f"- **{timestamp}** 用户纠正: ...")
# 新代码(通过适配器)
adapter = CorrectionLoggerAdapter()
adapter.log_correction(...)
每行格式:
- **YYYY‑MM‑DD HH:MM:SS** 用户纠正: {用户输入} | 代理回应: {代理回应} | 纠正后: {纠正后内容} [上下文: {JSON}]
示例:
- **2026‑03‑18 15:30:00** 用户纠正: 你刚才说的版本号错了 | 代理回应: 当前版本是 v0.1.0 | 纠正后: 应该是 v0.5.0 [上下文: {"skill": "evolution-watcher"}]
当主文件超过 1000 行时,自动创建:
corrections_2026‑03‑18.md # 包含前1000行
corrections.md # 重置为空,继续写入新记录
| 方法 | 参数 | 返回 | 说明 |
|---|---|---|---|
log_correction | user_input, agent_response, corrected_response, context | str (纠正ID) | 记录新纠正 |
get_recent_corrections | limit=50 | List[dict] | 获取最近纠正 |
get_stats | 无 | dict | 统计信息 |
health_check | 无 | dict | 健康检查结果 |
{
"healthy": true,
"status": "healthy",
"message": "纠正记录服务正常",
"stats": {
"total_corrections": 42,
"last_correction_time": "2026‑03‑18T15:30:00Z",
"file_size_bytes": 12345,
"file_writable": true
},
"plugin": "correction-logger",
"version": "1.0.0",
"timestamp": "2026‑03‑18T15:31:00Z"
}
~/self‑improving/ 目录对当前用户可写corrections.md 格式损坏,插件会自动创建备份并新建文件correction‑logger 条目是否存在/tmp/correction‑logger.logadapter_cli.py health 查看| 错误码 | 描述 | 解决方案 |
|---|---|---|
| E001 | 未知错误 | 检查日志,联系开发者 |
| E002 | 配置错误 | 验证配置文件格式 |
| E003 | 依赖缺失 | 安装所需依赖包 |
DEVELOPMENT.md(待补充)此插件为 SIPA 单功能拆分试点,旨在验证周边插件拆分模式,为后续 rule‑ranker、layer‑manager 等插件奠定基础。