Bạn có bao nhiêu session chat với AI agent? Và bạn có thể quay lại session tuần trước để biết tại sao mình chọn giải pháp đó không?
Vấn đề: AI agent chat thì dài, lưu thì tốn token, xem lại thì khó. JSON log nặng, Markdown log thì LLM đọc lãng phí. Còn ghi vào đầu thì… quên.
LLM Lean Log giải quyết: một format log dạng CSV siêu gọn, tối ưu cho LLM đọc, có CLI để agent tự ghi, có visualizer cho người xem.
LLM Lean Log Là Gì?#
LLM Lean Log (tác giả: loclv ↗ — cùng tác giả Agent MD) là một hệ thống log cho LLM, gồm:
- Định dạng CSV — tối ưu token nhất cho dữ liệu dạng bảng
- CLI tool (
l-log) — agent tự ghi/đọc log, output JSON - Cause & Effect tracking — log nối với nhau qua UUID
- Git diff tự động — mỗi log kèm diff của lần thay đổi đó
- Visualizer — web app React xem log đẹp
- MCP Server — tích hợp vào agent memory
Vấn Đề: Logging Cho LLM#
Các format logging hiện tại đều có vấn đề:
| Format | Token usage | LLM parse | Người đọc |
|---|---|---|---|
| Markdown | Cao | Trung bình | Dễ |
| JSON | Cao | Trung bình | Khó |
| CSV (Lean Log) | Thấp nhất | Dễ nhất | CLI + Visualizer |
CSV là format bảng thuần tuý — không có dấu ngoặc, không có định dạng thừa. Với dữ liệu log có cấu trúc, CSV tiết kiệm token hơn JSON và Markdown rất nhiều.
Ngoài ra, log thông thường thiếu thông tin ngữ cảnh:
- Log level WARNING là cho system, nhưng LLM cần biết vấn đề là gì
- Log không có thông tin cause & effect — tại sao lại thay đổi này?
- Không có link tới file code hay commit
Cài Đặt#
# Node version (l-log)
bun add -g llm-lean-log-cli
# Bun version (bl-log)
bun add -g bl-log
# Visualizer
bun add -g l-log-visbashĐịnh Dạng CSV#
Mỗi dòng là một log entry, với các trường:
| Trường | Bắt buộc | Mô tả |
|---|---|---|
id | ✅ | UUID, dùng cho cause/effect graph |
name | ✅ | Tóm tắt log (ngắn) |
tags | ❌ | Tag phân loại, cách dấu phẩy |
problem | ✅ | Vấn đề / ngữ cảnh |
solution | ❌ | Giải pháp |
tradeoff | ❌ | Đánh đổi, pros/cons |
spec-decisions | ❌ | Quyết định kỹ thuật ngoài spec |
action | ❌ | Hành động đã làm (code blocks) |
files | ❌ | File đã sửa |
tech-stack | ❌ | Công nghệ dùng |
cause | ❌ | Nguyên nhân (text) |
causeIds | ❌ | UUID của log nguyên nhân |
effectIds | ❌ | UUID của log kết quả |
last-commit-short-sha | ❌ | Git commit (auto) |
created-at | ✅ | ISO 8601 |
model | ❌ | Model AI dùng |
Ví dụ một dòng CSV:
id,name,tags,problem,solution,files,created-at,auth-error-001,API Auth Error,"error,api,auth",JWT expire not handled,Added token refresh logic,"auth.ts, auth.routes.ts",2026-01-13T14:52:58ZcsvCách Dùng CLI#
Cho Agent: Ghi Log#
l-log add ./logs/chat.csv "Fix bug" \
--tags=bug,fix \
--problem="Users can't login - JWT expired" \
--solution="Added token refresh with retry" \
--tradeoff="More network calls, better UX" \
--files="src/auth.ts, src/routes.ts" \
--tech-stack="express, jwt"bashLệnh này tự động:
- Tạo UUID
- Ghi git diff ra file
.diff - Ghi timestamp
- Validate các trường
Cho Agent: Đọc Log#
# Xem log cuối (tiết kiệm nhất)
l-log view ./logs/chat.csv --last
# Xem tất cả
l-log list ./logs/chat.csv
# Tìm kiếm
l-log search ./logs/chat.csv "Database"
# Lọc theo tag
l-log tags ./logs/chat.csv error api
# Xem stats
l-log stats ./logs/chat.csvbashTất cả output đều là CSV — LLM đọc trực tiếp, không cần parse thêm.
Cho Người: Xem Đẹp#
# Thêm --human để xem dạng bảng có màu
l-log list ./logs/chat.csv --human
l-log view ./logs/chat.csv 0 --human
l-log search ./logs/chat.csv "query" --humanbashExport#
# Export ra Markdown (kiểu Obsidian vault)
l-log export md ./logs/chat.csv --vault=./my-vault
# Export ra JSONL
l-log export jsonl ./logs/chat.csv --out=logs.jsonlbashVisualizer Web#
l-log-vis ./logs/chat.csvbashMở web app React với:
- Bảng log đẹp, có màu
- Search & filter
- Code highlighting
- Directed Graph (cause → effect)
Tích Hợp Vào AI Agent Workflow#
Thêm rule vào .agents/rules/common.md:
---
trigger: always_on
---
Whenever you finish a task, log your work using:
`l-log add ./logs/chat.csv "<Task>" --tags="<tags>" --problem="<problem>" --solution="<solution>" --files="<files>" --created-by-agent="<agent>"`markdownSau đó, mỗi khi agent hoàn thành task, nó tự ghi log. Lần sau agent có thể đọc log để biết chuyện gì đã xảy ra.
Cause & Effect Tracking#
Điểm mạnh nhất của LLM Lean Log: log nối với nhau bằng UUID.
Log A: "Thêm JWT auth"
↓ cause
Log B: "Fix lỗi JWT expire"
↓ cause
Log C: "Thêm refresh token rotation"textKhi LLM đọc, nó thấy causeIds: "uuid-A" trong Log B và biết ngay context. Đây là một Directed Graph của quyết định — không chỉ là list log đơn thuần.
So Sánh#
| Tiêu chí | JSON Log | Markdown Log | LLM Lean Log |
|---|---|---|---|
| Token usage | Cao | Cao | Thấp nhất |
| LLM parse được | Trung bình | Trung bình | Dễ nhất |
| Cause/Effect | Không | Không | Có |
| Git diff | Không | Không | Tự động |
| Visualizer | Tool riêng | Tool riêng | Có sẵn |
| MCP Server | Không | Không | Có |
| CLI cho agent | Không | Không | Có |
Kết Luận#
LLM Lean Log giải quyết một vấn đề thực tế: AI agent cần ghi nhớ, nhưng ghi nhớ bằng chat log thô thì tốn token và khó tra cứu.
Với CSV làm format, CLI để agent tự động ghi/đọc, cause/effect tracking để nối các quyết định, và visualizer cho người xem — đây là công cụ đáng có trong stack AI agent của bạn.
Cùng tác giả: Agent MD ↗ — CLI viết markdown thân thiện với AI.