correction-logger - 纠正记录插件
概述
INLINECODE0 是 Self-Improving + Proactive Agent (SIPA) 系统的第一个单功能拆分插件,负责记录用户纠正、代理错误、以及系统自我改进的关键事件。集成 NeverOnce 理念:修正优先级系统、有效性反馈、FTS5全文搜索。插件保持与现有 ~/self‑improving/corrections.md 文件格式完全兼容,同时提供结构化 API 与适配器接口,便于星型架构其他组件调用。
功能特性
NeverOnce 增强功能
- - ✅ 修正优先级系统:修正固定优先级10/10,永不衰减,始终优先召回
- ✅ 有效性反馈系统:
.helped() 反馈记录,动态有效性分数计算 - ✅ FTS5全文搜索:SQLite FTS5 全文搜索,BM25 相关性排序
- ✅ 行动前检查:
check_corrections_for_action() 预检相关修正 - ✅ 增强统计报告:优先级分布、有效性分析、学习进度跟踪
- ✅ 向后兼容:保持现有
corrections.md 文件格式完全兼容
兼容性说明
- - 文件格式:继续使用现有 Markdown 格式,新增 SQLite 数据库存储增强元数据
- API 兼容:原有 API 完全兼容,新增增强方法可选使用
- 数据迁移:自动迁移现有修正到增强存储格式
核心功能
- - ✅ 纠正记录:将用户纠正、代理错误、改进建议以标准格式写入文件
- ✅ 记录查询:获取最近 N 条纠正记录(支持过滤、排序)
- ✅ 统计报告:生成纠正数量、时间分布、错误类型统计
- ✅ 健康检查:验证文件可写性、格式有效性、服务可用性
兼容性保证
- - 🔄 文件格式不变:继续使用现有 Markdown 列表格式,确保现有工具(如
self‑improving 技能)无需修改 - 🔄 原子写入:使用文件锁避免多进程/多线程写入冲突
- 🔄 自动归档:当
corrections.md 超过 1000 行时自动创建归档文件(corrections_YYYY‑MM‑DD.md)
适配器接口
- - 🧩 MemoryAdapter 兼容:实现
MemoryAdapter 基类,提供 log_correction、get_recent_corrections、get_stats、health_check 方法 - 🧩 星型架构注册:自动注册到星型架构注册表,依赖关系为 INLINECODE13
安装与配置
安装方法
CODEBLOCK0
配置文件
config/default.yaml:
CODEBLOCK1
使用方法
Python API
CODEBLOCK2
适配器调用
CODEBLOCK3
命令行工具
CODEBLOCK4
集成示例
与 evolution‑watcher 集成
当 evolution‑watcher 检测到插件升级失败时,自动记录纠正:
CODEBLOCK5
与 self‑improving 技能集成
self‑improving 技能通过适配器调用纠正记录,无需直接操作文件:
CODEBLOCK6
文件格式
纠正记录格式
每行格式:
CODEBLOCK7
示例:
CODEBLOCK8
归档文件命名
当主文件超过 1000 行时,自动创建:
CODEBLOCK9
适配器接口规范
必需方法
| 方法 | 参数 | 返回 | 说明 |
|---|
| INLINECODE15 | INLINECODE16 , agent_response, corrected_response, INLINECODE19 | INLINECODE20 (纠正ID) | 记录新纠正 |
| INLINECODE21 |
limit=50 |
List[dict] | 获取最近纠正 |
|
get_stats | 无 |
dict | 统计信息 |
|
health_check | 无 |
dict | 健康检查结果 |
健康检查响应格式
CODEBLOCK10
故障排除
常见问题
- 1. 文件权限错误:确保
~/self‑improving/ 目录对当前用户可写 - 格式损坏:如果
corrections.md 格式损坏,插件会自动创建备份并新建文件 - 适配器注册失败:检查星型架构注册表中
correction‑logger 条目是否存在
日志位置
- - 插件日志: INLINECODE31
- 适配器日志:通过
adapter_cli.py health 查看
错误码
| 错误码 | 描述 | 解决方案 |
|---|
| E001 | 未知错误 | 检查日志,联系开发者 |
| E002 |
配置错误 | 验证配置文件格式 |
| E003 | 依赖缺失 | 安装所需依赖包 |
版本历史
v0.1.0 (2026‑03‑18)
- - 初始版本
- 提供基本纠正记录、查询、统计功能
- 实现 MemoryAdapter 接口
- 保持与现有文件格式兼容
贡献与支持
- - 问题反馈:通过 ClawHub 提交 Issue
- 开发指南:参见
DEVELOPMENT.md(待补充) - 依赖关系:仅依赖 Python 标准库,无外部包要求
此插件为 SIPA 单功能拆分试点,旨在验证周边插件拆分模式,为后续 rule‑ranker、layer‑manager 等插件奠定基础。
correction-logger - 纠正记录插件
概述
correction-logger 是自我改进+主动代理(SIPA)系统的第一个单功能拆分插件,负责记录用户纠正、代理错误以及系统自我改进的关键事件。集成 NeverOnce 理念:修正优先级系统、有效性反馈、FTS5全文搜索。插件保持与现有 ~/self‑improving/corrections.md 文件格式完全兼容,同时提供结构化 API 与适配器接口,便于星型架构其他组件调用。
功能特性
NeverOnce 增强功能
- - ✅ 修正优先级系统:修正固定优先级10/10,永不衰减,始终优先召回
- ✅ 有效性反馈系统:.helped() 反馈记录,动态有效性分数计算
- ✅ FTS5全文搜索:SQLite FTS5 全文搜索,BM25 相关性排序
- ✅ 行动前检查:checkcorrectionsfor_action() 预检相关修正
- ✅ 增强统计报告:优先级分布、有效性分析、学习进度跟踪
- ✅ 向后兼容:保持现有 corrections.md 文件格式完全兼容
兼容性说明
- - 文件格式:继续使用现有 Markdown 格式,新增 SQLite 数据库存储增强元数据
- API 兼容:原有 API 完全兼容,新增增强方法可选使用
- 数据迁移:自动迁移现有修正到增强存储格式
核心功能
- - ✅ 纠正记录:将用户纠正、代理错误、改进建议以标准格式写入文件
- ✅ 记录查询:获取最近 N 条纠正记录(支持过滤、排序)
- ✅ 统计报告:生成纠正数量、时间分布、错误类型统计
- ✅ 健康检查:验证文件可写性、格式有效性、服务可用性
兼容性保证
- - 🔄 文件格式不变:继续使用现有 Markdown 列表格式,确保现有工具(如 self‑improving 技能)无需修改
- 🔄 原子写入:使用文件锁避免多进程/多线程写入冲突
- 🔄 自动归档:当 corrections.md 超过 1000 行时自动创建归档文件(corrections_YYYY‑MM‑DD.md)
适配器接口
- - 🧩 MemoryAdapter 兼容:实现 MemoryAdapter 基类,提供 logcorrection、getrecentcorrections、getstats、health_check 方法
- 🧩 星型架构注册:自动注册到星型架构注册表,依赖关系为 self‑improving
安装与配置
安装方法
bash
从 ClawHub 安装(发布后)
clawhub install correction-logger
或本地开发模式
cp -r correction-logger /root/.openclaw/workspace/skills/
配置文件
config/default.yaml:
yaml
纠正记录配置
corrections_file: ~/self-improving/corrections.md
max
linesper_file: 1000
archive_directory: ~/self-improving/archive/
enable
healthcheck: true
health
checkinterval_seconds: 300
适配器配置
adapter:
name: correction_logger
version: 0.1.0
dependencies:
- self-improving
使用方法
Python API
python
from correction_logger import CorrectionLogger
logger = CorrectionLogger()
记录纠正
correction
id = logger.logcorrection(
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
recentcorrections(limit=10)
获取统计
stats = logger.get_stats()
print(f总纠正数: {stats[total_corrections]})
健康检查
health = logger.health_check()
适配器调用
python
from integration.adapter.correction
loggeradapter import CorrectionLoggerAdapter
adapter = CorrectionLoggerAdapter()
health = adapter.health_check()
print(health[healthy]) # True/False
命令行工具
bash
记录纠正(测试用)
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 集成
当 evolution‑watcher 检测到插件升级失败时,自动记录纠正:
python
def record
upgradefailure(plugin
name, errormessage):
from correction_logger import CorrectionLogger
logger = CorrectionLogger()
logger.log_correction(
user
input=f升级 {pluginname} 失败,
agent_response=尝试自动升级插件,
corrected_response=需要手动检查依赖冲突,
context={plugin: plugin
name, error: errormessage}
)
与 self‑improving 技能集成
self‑improving 技能通过适配器调用纠正记录,无需直接操作文件:
python
原代码(直接写入文件)
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 # 重置为空,继续写入新记录
适配器接口规范
必需方法
| 方法 | 参数 | 返回 | 说明 |
|---|
| logcorrection | userinput, agentresponse, correctedresponse, context | str (纠正ID) | 记录新纠正 |
| getrecentcorrections |
limit=50 | List[dict] | 获取最近纠正 |
| get_stats | 无 | dict | 统计信息 |
| health_check | 无 | dict | 健康检查结果 |
健康检查响应格式
json
{
healthy: true,
status: healthy,
message: 纠正记录服务正常,
stats: {
total_corrections: 42,
last
correctiontime: 2026‑03‑18T15:30:00Z,
file
sizebytes: 12345,
file_writable: true
},
plugin: correction-logger,
version: 1.0.0,
timestamp: 2026‑03‑18T15:31:00Z
}
故障排除
常见问题
- 1. 文件权限错误:确保 ~/self‑improving/ 目录对当前用户可写
- 格式损坏:如果 corrections.md 格式损坏,插件会自动创建备份并新建文件
- 适配器注册失败:检查星型架构注册表中 correction‑logger 条目是否存在
日志位置
- - 插件日志:/tmp/correction‑logger.log
- 适配器日志:通过 adapter_cli.py health 查看
错误码
| 错误码 | 描述 | 解决方案 |
|---|
| E001 | 未知错误 | 检查日志,联系开发者 |
| E002 |
配置错误 | 验证配置文件格式 |
| E003 | 依赖缺失 | 安装所需依赖包 |
版本历史
v0.1.0 (2026‑03‑18)
- - 初始版本
- 提供基本纠正记录、查询、统计功能
- 实现 MemoryAdapter 接口
- 保持与现有文件格式兼容
贡献与支持