{"_id":"@43world/llm-logger-openclaw-plugin","_rev":"3-f8b5459efa7f767a60b5aa0fe3c7493e","name":"@43world/llm-logger-openclaw-plugin","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.3":{"name":"@43world/llm-logger-openclaw-plugin","version":"0.0.3","_id":"@43world/llm-logger-openclaw-plugin@0.0.3","maintainers":[{"name":"joglex","email":"jiugea@gmail.com"}],"dist":{"shasum":"a2ccd462be2c994d8a8d8e352c31a55224e9a4ec","tarball":"https://registry.npmjs.org/@43world/llm-logger-openclaw-plugin/-/llm-logger-openclaw-plugin-0.0.3.tgz","fileCount":10,"integrity":"sha512-/MblET4kalFcF7Cn+2w5mLuB4l8tFYlMaK4ijj0HiJbmvpGUlcCNZqjRYoeOS4YLtz/xWNUNJK+RnDTDxIclxA==","signatures":[{"sig":"MEQCIAq+BrX1cky/gLaK4uhUHAatD4SRGm5GUU/2kogLIZE6AiAQR0djMyY4ta5edxltyHn5RNPEKzjgV+Mw7ipDLEmEdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48271},"type":"module","gitHead":"7f0eab5c8622a1488fce05fdaa276026e76a7e69","_npmUser":{"name":"joglex","email":"jiugea@gmail.com"},"openclaw":{"extensions":["./index.ts"]},"_npmVersion":"10.8.0","description":"OpenClaw plugin that logs LLM request payloads and responses to JSONL.","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"peerDependencies":{"openclaw":"*"},"_npmOperationalInternal":{"tmp":"tmp/llm-logger-openclaw-plugin_0.0.3_1774495940054_0.7651761927517908","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@43world/llm-logger-openclaw-plugin","version":"0.0.4","_id":"@43world/llm-logger-openclaw-plugin@0.0.4","maintainers":[{"name":"joglex","email":"jiugea@gmail.com"}],"dist":{"shasum":"c385bae39b8e93bb18648257c67433617df86f44","tarball":"https://registry.npmjs.org/@43world/llm-logger-openclaw-plugin/-/llm-logger-openclaw-plugin-0.0.4.tgz","fileCount":10,"integrity":"sha512-nzU2tQ/8Cud09PN2ZB3oUru4QdkfR6djLC38mf17FrICeCTS/pQzPEeV59clWJ/CyJGSH2tgJs24rew+nxGUdQ==","signatures":[{"sig":"MEQCIGB1ASpfgTkk81/hW/OCdkj7rQxZXwxiA8O2er7pjVy0AiAs8FCWzSkbQAO4/8w/NwIlhEaCbRizIk4IN4pfAPNWZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48472},"type":"module","gitHead":"88d95990622362066a6c61cf01300ec526c7f928","_npmUser":{"name":"joglex","email":"jiugea@gmail.com"},"openclaw":{"extensions":["./index.ts"]},"_npmVersion":"10.8.0","description":"OpenClaw plugin that logs LLM request payloads and responses to JSONL.","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"peerDependencies":{"openclaw":"*"},"_npmOperationalInternal":{"tmp":"tmp/llm-logger-openclaw-plugin_0.0.4_1774496943401_0.9170406211822264","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-03-26T03:32:19.942Z","modified":"2026-03-31T02:38:36.370Z","0.0.3":"2026-03-26T03:32:20.188Z","0.0.4":"2026-03-26T03:49:03.578Z"},"description":"OpenClaw plugin that logs LLM request payloads and responses to JSONL.","maintainers":[{"email":"jiugea@gmail.com","name":"joglex"},{"email":"maxjian87@gmail.com","name":"erguan"}],"readme":"# llm-logger-openclaw-plugin\r\n\r\nOpenClaw 插件。\r\n\r\n启用后会把 OpenClaw 对话链路中的底层 LLM 调用请求参数和响应数据写入 JSONL 日志文件。\r\n\r\n## 功能\r\n\r\n- 记录 provider 请求 payload\r\n- 记录 HTTP 请求与响应\r\n- 记录 OpenAI Responses WebSocket 收发帧\r\n- 记录 OpenClaw 的 `llm_input` / `llm_output` 摘要事件\r\n\r\n## 安装\r\n\r\n直接走npm包安装\r\n```bash\r\nopenclaw plugins install @43world/llm-logger-openclaw-plugin\r\n```\r\n\r\n源码目录安装\r\n```bash\r\nopenclaw plugins install -l /root/projects/llm-logger-openclaw-plugin\r\nopenclaw plugins enable llm-logger-openclaw-plugin\r\n```\r\n\r\n## 配置\r\n\r\n在 OpenClaw 配置中加入：\r\n\r\n```json\r\n{\r\n  \"plugins\": {\r\n    \"entries\": {\r\n      \"llm-logger-openclaw-plugin\": {\r\n        \"enabled\": true,\r\n        \"config\": {\r\n          \"logFile\": \"/tmp/openclaw-llm.jsonl\",\r\n          \"maxBodyBytes\": 262144,\r\n          \"redactAuthorization\": true,\r\n          \"includeHooks\": true,\r\n          \"includeHttp\": true,\r\n          \"includeWebSocket\": true\r\n        }\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n如果不指定 `logFile`，默认按会话和日期写到：\r\n\r\n```text\r\n<OPENCLAW_STATE_DIR>/logs/<session_key>/llm-logger-openclaw-plugin-YYYY-MM-DD.jsonl\r\n```\r\n\r\n其中：\r\n\r\n- `<session_key>` 来自 OpenClaw 会话；若缺失会写到 `_unknown_session_key` 目录\r\n- `YYYY-MM-DD` 为当天日期后缀，用于每日滚动记录\r\n\r\n如果指定了 `logFile`（例如 `/tmp/openclaw-llm.jsonl`），会将其作为基准路径与基准文件名，最终写入：\r\n\r\n```text\r\n/tmp/<session_key>/openclaw-llm-YYYY-MM-DD.jsonl\r\n```\r\n\r\n## 日志格式\r\n\r\n日志为 JSON Lines。\r\n\r\n常见事件类型：\r\n\r\n- `llm_input`\r\n- `provider_request_payload`\r\n- `http_request`\r\n- `http_response`\r\n- `ws_send`\r\n- `ws_message`\r\n- `llm_output`\r\n\r\n## 说明\r\n\r\n- 日志默认会对常见认证字段做脱敏\r\n- 请求/响应 body 默认按 `maxBodyBytes` 截断\r\n- WebSocket 路径按帧记录，不强制拼装成单一完整响应\r\n","readmeFilename":"README.md"}