blog.dopana

Back

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 đề:

FormatToken usageLLM parseNgười đọc
MarkdownCaoTrung bìnhDễ
JSONCaoTrung bìnhKhó
CSV (Lean Log)Thấp nhấtDễ nhấtCLI + 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-vis
bash

Định Dạng CSV#

Mỗi dòng là một log entry, với các trường:

TrườngBắt buộcMô tả
idUUID, dùng cho cause/effect graph
nameTóm tắt log (ngắn)
tagsTag phân loại, cách dấu phẩy
problemVấn đề / ngữ cảnh
solutionGiải pháp
tradeoffĐánh đổi, pros/cons
spec-decisionsQuyết định kỹ thuật ngoài spec
actionHành động đã làm (code blocks)
filesFile đã sửa
tech-stackCông nghệ dùng
causeNguyên nhân (text)
causeIdsUUID của log nguyên nhân
effectIdsUUID của log kết quả
last-commit-short-shaGit commit (auto)
created-atISO 8601
modelModel 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:58Z
csv

Cá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"
bash

Lệ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.csv
bash

Tấ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" --human
bash

Export#

# 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.jsonl
bash

Visualizer Web#

l-log-vis ./logs/chat.csv
bash

Mở 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>"`
markdown

Sau đó, 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"
text

Khi 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 LogMarkdown LogLLM Lean Log
Token usageCaoCaoThấp nhất
LLM parse đượcTrung bìnhTrung bìnhDễ nhất
Cause/EffectKhôngKhông
Git diffKhôngKhôngTự động
VisualizerTool riêngTool riêngCó sẵn
MCP ServerKhôngKhông
CLI cho agentKhôngKhông

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.

Tài liệu tham khảo#