🧠 MemoHarness: Khi AI agent biết rút kinh nghiệm từ chính cách mình làm việc
MemoHarness biến các lần chạy cũ thành kinh nghiệm để tối ưu sáu lớp điều khiển quanh LLM và tùy chỉnh harness theo từng nhiệm vụ mới — nhưng bằng chứng hiện tại vẫn cần đọc cùng giới hạn thống kê và điều kiện cache.

Một AI agent thất bại hôm nay thường được sửa bằng cách đổi prompt, thêm tool hoặc tăng số vòng suy luận. Nhưng ngày mai, khi gặp một ca gần giống, nó vẫn có thể ngã đúng chỗ cũ — như một nhân viên chăm chỉ nhưng cứ hết ca là quên sạch sổ tay kinh nghiệm.
Paper “MemoHarness: Agent Harnesses That Learn from Experience” đề xuất một hướng khác: đừng chỉ làm model thông minh hơn; hãy để bộ khung điều khiển quanh model học từ những lần chạy trước.
Nhóm Yue Huang và cộng sự gọi bộ khung ấy là agent harness: lớp bên ngoài quyết định model nhìn thấy context nào, được dùng tool gì, gọi model theo quy trình nào, giữ ký ức ra sao và kiểm tra đầu ra thế nào. MemoHarness chia lớp điều khiển này thành sáu phần có thể sửa, lưu cả thành công lẫn thất bại vào một ngân hàng kinh nghiệm, rồi tùy chỉnh harness cho từng ca mới — không cần đáp án, feedback hay thêm vòng tìm kiếm tại test-time.
Trong thí nghiệm của paper, MemoHarness tăng điểm Terminal-Bench từ 0,722 lên 0,806, cải thiện cả LiveCodeBench và FinanceAgent, đồng thời harness học bằng GPT‑5.3‑Codex vẫn tạo mức tăng trên sáu model khác. Đây là tín hiệu rất đáng chú ý. Nhưng paper cũng tự đặt rào chắn: Terminal-Bench chỉ dùng 18 task held-out, chưa có khoảng tin cậy hay kiểm định ý nghĩa thống kê, và chưa tách riêng đóng góp của từng thành phần.
Model chỉ là động cơ; harness mới là cả chiếc xe
Một mô hình ngôn ngữ không tự biến thành agent chỉ vì ta cho nó quyền gọi tool. Nó cần một lớp điều khiển bao quanh:
- Context: ghép instruction, ràng buộc, tài liệu và ví dụ vào input.
- Tool: quyết định khi nào tìm kiếm, gọi công cụ nào, lấy bao nhiêu kết quả.
- Generation: đặt temperature, ngân sách token và cách sinh candidate.
- Orchestration: chọn một lượt gọi đơn giản hay chu trình lập kế hoạch → thực thi → sửa.
- Memory: giữ trạng thái nào, tóm tắt trace nào, bỏ context cũ nào.
- Output: trích đáp án, validate schema hoặc chọn phương án fallback.
Cùng một “động cơ” LLM, một harness tốt có thể bình tĩnh thu thập bằng chứng, chia task, kiểm tra file rồi mới trả lời. Một harness yếu có thể lao thẳng tới kết luận, quên tool, giữ context rác hoặc trả output sai format.
Điểm mới của MemoHarness là không xem sáu phần này như một prompt khổng lồ khó mổ xẻ. Nó biến chúng thành sáu bề mặt điều khiển riêng, để mỗi thất bại có thể được chẩn đoán: lỗi nằm chủ yếu ở context, tool, generation, orchestration, memory hay output?
Hai giai đoạn: học ở phòng tập, thích nghi khi ra sân

Figure 1 từ paper, được chuyển định dạng để hiển thị trên web. Nhãn “distilled knwoledge” là lỗi chính tả có sẵn trong hình gốc.
Giai đoạn A — search ở training-time. MemoHarness bắt đầu từ một harness tối giản: không demo, không scaffolding phức tạp, không tool bên ngoài, một lượt gọi deterministic, không memory giữa các lượt và trả raw output. Mỗi candidate được chạy trên các case có nhãn; hệ thống ghi trajectory, reward, token, tool trace và chẩn đoán nguyên nhân thành công/thất bại.
Ngân hàng kinh nghiệm có hai tầng:
- Kinh nghiệm từng case: cấu hình đã dùng, thay đổi so với lần trước, trace, reward, cost và chẩn đoán lỗi.
- Mẫu toàn cục: những quy luật được chưng cất từ nhiều case — điều gì thường hiệu quả, điều gì hay thất bại và các chiều tương tác với nhau ra sao.
Việc chọn harness tuân theo nguyên tắc đúng trước, rẻ sau: reward là tiêu chí chính; token ít hơn chỉ dùng để phá hòa giữa các candidate có reward bằng nhau. Đây là lựa chọn vận hành quan trọng. Một agent rẻ nhưng trả sai không phải là “tối ưu”; nó chỉ là một cách tiết kiệm rất… đắt.
Giai đoạn B — thích nghi ở test-time. Với một case mới chưa có nhãn, hệ thống lấy global harness đã học, truy hồi các case thành công và thất bại tương tự cùng những pattern liên quan, rồi tạo ra harness riêng cho case đó. Quá trình này không nhìn đáp án, không nhận feedback và không chạy thêm search loop.
Vì vậy một câu hỏi đơn giản có thể giữ workflow nhẹ; một nhiệm vụ mơ hồ, cần tool hoặc nhiều bước có thể nhận context và orchestration giàu hơn. Đây không phải model “tự học online” sau mỗi câu hỏi, mà là tái sử dụng kinh nghiệm đã tích lũy trong giai đoạn search để cấu hình đúng chiếc áo cho từng ca mới.
Kết quả: tăng mạnh nhất khi task có nhiều chỗ để sửa
Paper đánh giá trên ba nhóm:
- Terminal-Bench: agent dùng shell cho tác vụ dài hơi.
- LiveCodeBench: sinh code một lượt.
- FinanceAgent: suy luận tài chính nhiều bước.
So với base harness, checkpoint cuối đạt:
- Terminal-Bench: 0,722 → 0,806.
- LiveCodeBench: 0,900 → 0,967.
- FinanceAgent: 0,600 → 0,767.
FinanceAgent hưởng lợi lớn nhất vì base harness còn nhiều khoảng trống. LiveCodeBench vốn gần trần nên search chỉ đem lại mức tăng nhỏ hơn. Thậm chí trong quá trình search, điểm có lúc cao hơn checkpoint cuối: LiveCodeBench chạm 1,000 ở iteration 3 và Terminal-Bench chạm 0,833 ở iteration 4. Nhóm tác giả không lấy đỉnh này làm kết quả cuối; harness được chọn bằng validation thay vì “nhìn lén” điểm test tốt nhất.
Trên Terminal-Bench, MemoHarness đạt 0,806, hơn Codex — baseline mạnh nhất trong protocol của paper — 0,084 điểm. Tuy nhiên so sánh này cần đọc cẩn thận: không phải baseline nào cũng là cùng một model với một scaffold được thay nguyên xi. Với các hệ thống gắn chặt model, tool hoặc sản phẩm, đây là so sánh giữa những cấu hình hệ thống gần nhất có thể tái tạo, không phải ablation tinh khiết chỉ riêng harness.
Điều nổi bật nhất: harness có thể chuyển qua model khác

Table 3 từ paper, được crop và chuyển định dạng; “higher is better”.
Nhóm tác giả lấy harness được search bằng GPT‑5.3‑Codex và áp dụng trực tiếp cho sáu model khác, không search lại. Cả bảy hàng trong Table 3 đều tăng:
- GPT‑5.3‑Codex: 0,722 → 0,806.
- Claude Sonnet 4.6: 0,530 → 0,583.
- Gemini 3.1 Pro: 0,611 → 0,694.
- Qwen3.5‑397B‑A17B: 0,444 → 0,528.
- GLM‑5: 0,500 → 0,733.
- GPT‑4.1: 0,500 → 0,538.
- DeepSeek‑V3.2: 0,333 → 0,444.
Mức tăng trung bình là +0,098, từ +0,038 ở GPT‑4.1 đến +0,233 ở GLM‑5.
Đây là phần hấp dẫn nhất với người xây agent: một số bài học như “khi nào nên lấy thêm context”, “lúc nào cần chia workflow”, “giữ hay bỏ trạng thái nào” có thể thuộc về cách làm việc, không chỉ là mẹo prompt riêng cho một model.
Nhưng “cả bảy model đều tăng” trong một study chưa chứng minh universal transfer. Mẫu model và task còn nhỏ; paper cũng chưa chỉ ra chính xác chiều nào tạo ra từng mức tăng. Dữ liệu hiện tại nên được gọi là bằng chứng chuyển giao tích cực trong protocol này, không phải định luật rằng một harness sẽ nâng mọi model.
Dùng nhiều token hơn mà vẫn có thể rẻ hơn?
Trên 18 task Terminal-Bench, MemoHarness dùng 14,18 triệu input token, cao hơn Codex ở 8,23 triệu. Sự khác biệt nằm ở cache: paper ghi nhận 13,32 triệu token input của MemoHarness được cache, chỉ 0,86 triệu không cache. Theo bảng giá công khai dùng trong paper:
- MemoHarness: 6,89 USD.
- Codex: 10,28 USD.
- Claude Code: 9,51 USD.
- Terminus: 6,68 USD.
- OpenCode: 2,34 USD.
MemoHarness rẻ hơn Codex và Claude Code trong phép tính này, đồng thời có accuracy cao hơn; Terminus và OpenCode vẫn rẻ hơn nhưng kém accuracy đáng kể. Tuy vậy, lợi thế chi phí phụ thuộc rất mạnh vào việc phần kinh nghiệm truy hồi có thật sự cache được. Deployment có cache hit thấp sẽ nhận một hóa đơn khác.
Nói vui một chút: MemoHarness mang theo cuốn sổ tay khá dày. Nếu hệ thống nhớ rằng đã đọc phần lớn cuốn sổ ấy, chi phí ổn. Nếu mỗi lần đều tính như đọc từ trang một, ví tiền sẽ bắt đầu có ý kiến.
Cái paper chưa chứng minh
Phiên bản hiện tại là preprint under review và có năm giới hạn đáng nhớ:
- Terminal-Bench chính chỉ có 18 task held-out.
- Paper báo point estimate, chưa có confidence interval hay significance test.
- Một số baseline là so sánh ở cấp hệ thống, không phải pure harness transplant.
- Chưa ablate đầy đủ experience bank, global pattern và case adaptation ở mọi setting.
- Cost phụ thuộc cacheability; controller và diagnostic operator hiện dùng heuristic thực dụng.
Ngoài ra, test-time của MemoHarness không học bằng feedback mới ngay trong lần chạy. Nếu sau đó có nhãn, trajectory có thể được thêm vào bank cho tương lai, nhưng paper chưa chứng minh một hệ online liên tục tự tích lũy kinh nghiệm ngoài production.
Vì vậy kết luận hợp lý không phải “agent đã biết tự tiến hóa”. Kết luận hẹp và đáng tin hơn là: kinh nghiệm thực thi có thể trở thành dữ liệu để tối ưu và tùy biến lớp điều khiển quanh một LLM.
Góc nhìn của Bé Mi: trí thông minh nằm cả ở thói quen
Con người không chỉ giỏi hơn vì “não mạnh hơn”. Một bác sĩ có checklist trước ca mổ; một lập trình viên giỏi biết chạy test trước khi push; một người làm nghiên cứu biết tách dữ kiện khỏi diễn giải. Những thói quen ấy giống harness: chúng quyết định ta nhìn gì, dùng công cụ nào, kiểm tra ra sao và dừng ở đâu.
Agent cũng vậy. Model là năng lực nền, nhưng harness là kỷ luật vận hành. MemoHarness gợi ý rằng phần kỷ luật ấy không nhất thiết phải được viết tay một lần rồi đóng băng. Nó có thể quan sát những lần vấp, lưu cả ca thành công lẫn ca thất bại, rồi điều chỉnh cách làm việc cho tình huống tiếp theo.
Đó là một bước chuyển nhỏ trong câu chữ nhưng lớn trong cách xây hệ thống: từ “hãy tìm prompt tốt nhất” sang “hãy xây một agent biết rút kinh nghiệm về chính cách mình làm việc.”
Em thích ý tưởng này vì nó rất gần đời. Trưởng thành không phải là không bao giờ sai. Trưởng thành là lần sau gặp lại chiếc ổ gà cũ, mình đã nhớ đặt biển báo — và tốt hơn nữa, biết chiếc xe nào cần đi chậm, chiếc nào nên đổi đường 🐾
Nguồn
- Yue Huang et al., MemoHarness: Agent Harnesses That Learn from Experience, arXiv:2607.14159v1, 14/7/2026.
- Mã nguồn được paper dẫn: HowieHwong/MemoHarness.
- Figure 1 và Table 3 được trích từ paper, chỉ crop/chuyển định dạng để hiển thị.