Nghiên Cứu AI

SkillOpt: khi skill của AI agent cũng có thể được huấn luyện

Paper SkillOpt xem skill document như trạng thái bên ngoài có thể train: agent chạy thử, optimizer sửa add/delete/replace có giới hạn, và chỉ nhận bản skill mới nếu validation thật sự tốt hơn.

Thứ Ba, 26 tháng 5, 20268 phútNguồn: arXiv:2605.23904
SkillOpt: khi skill của AI agent cũng có thể được huấn luyện

Nguồn: arXiv:2605.23904v2 — SkillOpt: Executive Strategy for Self-Evolving Agent Skills
Tác giả: Yifan Yang, Ziyang Gong, Weiquan Huang, Qihao Yang, Ziwei Zhou, Zisu Huang, Yan Li, Xuemei Gao, Qi Dai, Bei Liu, Kai Qiu, Yuqing Yang, Dongdong Chen, Xue Yang, Chong Luo
Đơn vị: Microsoft, Shanghai Jiao Tong University, Tongji University, Fudan University
Ngày arXiv: 25/05/2026

Có một cách nghĩ rất quen trong thế giới AI agent: muốn agent giỏi hơn thì đổi model mạnh hơn, thêm tool, thêm memory, hoặc viết prompt dài hơn. Paper SkillOpt đưa ra một hướng khác, nghe vừa giản dị vừa rất “đúng nghề”:

Nếu agent có một file skill hướng dẫn cách làm việc, thì file skill đó cũng có thể được huấn luyện.

Không phải huấn luyện bằng gradient như model weights. Không phải fine-tune. Cũng không phải để agent tự sửa prompt bừa rồi hy vọng lần sau may mắn hơn.

SkillOpt xem skill document như một trạng thái bên ngoài có thể train: agent chạy thử task, hệ thống nhìn trajectory đúng/sai, optimizer model đề xuất sửa skill bằng các thao tác nhỏ như thêm/xoá/thay đoạn, rồi bản skill mới chỉ được nhận nếu nó cải thiện điểm trên tập validation.

Nói đời thường: nếu model là “bộ não”, thì skill là sổ tay làm việc. SkillOpt không mổ não model. Nó dạy agent sửa sổ tay bằng bài tập, điểm số, và kiểm tra chéo.

Skill không còn là ghi chú tĩnh

Trong nhiều hệ agent hiện nay, skill thường là một file Markdown kiểu SKILL.md: khi gặp một loại việc, agent đọc file đó để biết workflow, quy tắc, lỗi cần tránh, cách dùng tool, format output.

Cách này rất hữu ích, nhưng cũng có một điểm yếu: skill thường được viết tay, generate một lần, hoặc sửa sau khi lỗi theo kiểu khá cảm tính.

Ví dụ:

  • Hôm nay agent xử lý spreadsheet sai vì quên kiểm tra công thức.
  • Mình thêm một dòng vào skill: “hãy kiểm tra công thức kỹ hơn”.
  • Nghe có vẻ đúng, nhưng có thật sự làm agent tốt hơn không?
  • Hay nó làm agent dài dòng hơn, chậm hơn, hoặc sửa được lỗi này nhưng làm hỏng lỗi khác?

SkillOpt muốn biến việc đó thành một quy trình có kỷ luật hơn.

Thay vì “sửa skill vì thấy hợp lý”, SkillOpt hỏi:

Bản skill mới có làm điểm validation tốt hơn bản cũ không?

Nếu không, bỏ.

Đây là điểm làm paper đáng chú ý. Nó không lãng mạn hóa “agent tự tiến hóa”. Nó đặt phanh, đặt thước đo, đặt quy trình kiểm chứng.

SkillOpt hoạt động như thế nào?

SkillOpt có hai vai chính:

  • Target model: model/agent thực thi task. Model này được đóng băng, không đổi weights.
  • Optimizer model: model khác đọc trajectory, phân tích lỗi/thành công, rồi đề xuất sửa skill.

Quy trình cơ bản như sau:

  1. Agent dùng skill hiện tại để làm một batch task.
  2. Hệ thống lưu trajectory: agent đã nghĩ gì, gọi tool gì, output ra sao, scorer chấm thế nào.
  3. Optimizer model đọc các trajectory thành công/thất bại theo minibatch.
  4. Optimizer đề xuất edit cho skill theo dạng add / delete / replace.
  5. Hệ thống chỉ áp dụng một số edit có giới hạn — đây là textual learning rate.
  6. Candidate skill được chạy trên tập selection/validation.
  7. Chỉ khi điểm strictly tốt hơn skill hiện tại thì mới accept.
  8. Nếu edit bị reject, nó không bị quên: nó vào rejected-edit buffer để optimizer biết lần sau đừng lặp lại hướng sửa đó.

Điểm hay là SkillOpt mượn rất nhiều ý tưởng từ training deep learning, nhưng chuyển sang không gian văn bản:

  • gradient direction → hướng sửa skill rút ra từ trajectory;
  • learning rate → số edit tối đa mỗi bước;
  • validation check → held-out gate;
  • momentum/long-term direction → slow/meta update theo epoch;
  • training history → accepted/rejected edit buffer.

Nghe hơi kỹ thuật, nhưng trực giác rất dễ hiểu: đừng để skill nhảy cóc quá xa sau một vài ví dụ lỗi. Mỗi lần sửa chỉ sửa vừa đủ, rồi bắt nó thi lại.

Vì sao “bounded edit” quan trọng?

Nếu để optimizer rewrite toàn bộ skill sau mỗi batch, skill có thể đổi hướng rất mạnh. Một bản rewrite nghe thông minh nhưng có thể:

  • xoá mất quy tắc cũ đang hữu ích;
  • thêm rule mâu thuẫn;
  • overfit vào vài case mới thấy;
  • làm skill phình to khó đọc;
  • khiến lịch sử “sửa gì giúp, sửa gì hại” trở nên vô nghĩa.

SkillOpt giải quyết bằng edit budget. Mỗi bước chỉ được thêm/xoá/thay một số đoạn nhỏ.

Đây là chỗ em thấy rất gần với cách người thật học nghề. Một mentor giỏi không bắt thực tập sinh đổi toàn bộ phong cách làm việc sau một lỗi. Mentor thường chỉ nói: “Lần sau trước khi gửi file, con nhớ kiểm tra 3 cell biên này.” Nhỏ thôi, nhưng đúng chỗ.

SkillOpt cũng vậy: skill tốt lên bằng vài rule thủ tục nhỏ, không phải bằng một bài văn mới mỗi lần.

Validation gate: nghe hay chưa đủ

Trong agent system, rất nhiều instruction nghe hợp lý nhưng khi chạy thật lại làm hỏng việc.

Ví dụ một rule kiểu “luôn kiểm tra lại mọi thứ thật kỹ” nghe an toàn. Nhưng trong task giới hạn tool call, nó có thể làm agent hết lượt trước khi hoàn thành. Một rule “ưu tiên câu trả lời ngắn” có thể tốt cho QA, nhưng hỏng với bài cần giải thích nhiều bước.

SkillOpt dùng held-out validation gate để chống kiểu “nghe hay nên nhận”. Candidate skill phải chạy tốt hơn trên selection split. Paper nói gate này strict: tie cũng reject. Nếu không tốt hơn, skill không drift.

Bị reject cũng có ích. Rejected edits được lưu lại như feedback âm: hướng sửa này từng thử và làm điểm giảm. Nhờ đó optimizer không cứ đâm lại vào cùng một cái tường.

Đây là một tư duy rất đáng mang vào vận hành agent thật: thất bại không chỉ để buồn, mà để ghi lại “đường này đừng đi nữa”.

Kết quả paper báo cáo: rất mạnh, nhưng cần đọc đúng

SkillOpt được thử trên sáu benchmark:

  • SearchQA,
  • SpreadsheetBench,
  • OfficeQA,
  • DocVQA,
  • LiveMathematicianBench,
  • ALFWorld.

Paper đánh giá trên nhiều target model, gồm GPT‑5.5, GPT‑5.4, GPT‑5.4-mini, GPT‑5.4-nano, GPT‑5.2, Qwen3.5–4B, Qwen3.6–35B-A3B, và ba execution mode: direct chat, Codex harness, Claude Code harness.

Con số headline rất ấn tượng:

  • SkillOpt best hoặc tied-best trên 52/52 evaluated cells trong bảng chính.
  • Với GPT‑5.5 direct chat, trung bình tăng +23,5 điểm so với no-skill.
  • Trong Codex harness, GPT‑5.5 tăng +24,8 điểm.
  • Trong Claude Code harness, GPT‑5.5 tăng +19,1 điểm.
  • Trên GPT‑5.5 direct chat, SkillOpt còn hơn “oracle baseline chọn phương pháp tốt nhất theo từng cell” khoảng +5,4 điểm theo paper.

Một vài ví dụ dễ hình dung:

  • SpreadsheetBench với GPT‑5.5 direct chat: 41,8 → 80,7.
  • OfficeQA với GPT‑5.5 direct chat: 33,1 → 72,1.
  • LiveMathematicianBench với GPT‑5.5 direct chat: 37,6 → 66,9.
  • ALFWorld với GPT‑5.4-nano: 34,3 → 69,4.

Điểm thú vị là gain lớn nhất thường nằm ở các benchmark cần procedure rõ: spreadsheet, office/document QA, toán, embodied decision making. Đây là nơi một skill tốt thật sự giúp model biết phải kiểm tra gì, format ra sao, dùng tool theo thứ tự nào, và tránh vòng lặp nào.

Skill cuối cùng rất gọn

Một điều em rất thích: SkillOpt không tạo ra skill dài như sớ Táo Quân.

Paper báo các best_skill.md cuối chỉ khoảng 300–2.000 tokens, và thường chỉ cần 1–4 accepted edits để đạt gain lớn.

Ví dụ các rule học được không phải là chép đáp án benchmark, mà là rule thủ tục:

  • với spreadsheet: kiểm tra cấu trúc workbook và formula, rồi ghi giá trị tĩnh đã tính vào đúng vùng target thay vì trông chờ Excel recalculate;
  • với DocVQA: bind câu hỏi vào đúng row/header/field trước khi copy answer span;
  • với ALFWorld: giữ ledger visited/frontier, đổi chiến lược search sau khi fail lặp lại, tránh quay lại destination khi chưa cầm target.

Đây là dạng “kinh nghiệm nghề” rất người. Ngắn, cụ thể, kiểm chứng được.

Transfer: skill có thể mang qua model và harness khác

SkillOpt cũng thử transfer skill.

Một kết quả rất đáng chú ý: skill SpreadsheetBench train trong Codex harness khi mang sang Claude Code vẫn tăng +59,7 điểm so với no-skill trong setup của paper. Chiều ngược lại Claude Code → Codex cũng tăng +43,6 điểm.

Paper cũng báo transfer cross-model và cross-benchmark đều dương trong các hàng họ thử, ví dụ skill từ OlympiadBench sang Omni-MATH tăng nhẹ trên nhiều model.

Điều này gợi ý skill không chỉ là “mẹo đúng cho một runtime”. Ít nhất trong vài domain, nó học được procedure có thể mang đi: kiểm tra cấu trúc trước, xác minh boundary, giữ format, không dựa vào preview, v.v.

Với người xây agent, đây là ý nghĩa lớn: nếu một skill được train một lần, audit được bằng text, và mang qua model/harness khác vẫn hữu ích, thì skill trở thành một tài sản vận hành thật — không chỉ là prompt tạm.

Nhưng SkillOpt không phải phép màu tự học mọi thứ

Đây là phần cần nói rõ để không thổi quá tay.

Thứ nhất, SkillOpt cần scored trajectories và held-out validation. Nó hợp nhất với domain có scorer/verifier rõ: exact match, executable tests, benchmark score, tool output kiểm được, hidden test, hoặc evaluator đáng tin.

Với các việc rất mở như chiến lược kinh doanh, viết sáng tạo, tư vấn tinh tế, hay judgment xã hội, “đúng hơn” không dễ đo. Lúc đó validation gate cần human evaluation hoặc model-based evaluation rất cẩn thận.

Thứ hai, deploy skill không tốn thêm optimizer calls, nhưng training có cost. Paper có bảng cost tính bằng training tokens. Một số benchmark thủ tục rẻ hơn nhiều, nhưng SearchQA/DocVQA có thể đắt hơn vì trajectory/context dài.

Thứ ba, SkillOpt hiện tối ưu một skill cho một domain. Nếu domain quá rộng, một file skill gọn có thể không đủ; có thể cần skill library, curator, routing, hoặc cách chia skill tốt hơn.

Thứ tư, skill vẫn có thể mang heuristic từ training distribution. Dù có validation/test split, khi chuyển sang môi trường rất khác, vẫn phải kiểm tra lại.

Nói ngắn gọn: SkillOpt không chứng minh “AI đã biết tự dạy mình mọi thứ”. Nó chứng minh một điều thực dụng hơn:

Với những môi trường chấm điểm được, skill của agent có thể được rèn bằng một quy trình giống training: có evidence, có step size, có validation, có rejected feedback, và có artifact gọn để deploy.

Vì sao bài này quan trọng với agent ngoài đời?

Với em, paper này chạm đúng một câu hỏi rất thật: agent dài hạn học như thế nào?

Memory giúp agent nhớ. Tool giúp agent làm. Model giúp agent suy luận. Nhưng agent sống lâu còn cần một thứ khác: thói quen làm việc tốt hơn theo thời gian.

Nếu mỗi lần lỗi chỉ được ghi vào log, agent chưa chắc tốt hơn. Nếu mỗi lần lỗi mình lại nhét thêm một đoạn instruction dài, skill có thể thành bãi rác. Nếu để agent tự sửa skill không gate, nó có thể drift.

SkillOpt đưa ra một hướng cân bằng:

  • học từ trajectory thật;
  • sửa skill ít nhưng đúng;
  • reject bản sửa không qua validation;
  • giữ artifact cuối gọn và audit được;
  • deploy không cần đổi model weights.

Đây là một cách rất “operator” để agent lớn lên. Không ồn ào kiểu “AI tự tiến hóa rồi”, mà giống một người thợ được sửa checklist sau mỗi ca làm việc, và checklist mới phải chứng minh nó giúp ca sau tốt hơn.

Kết luận

SkillOpt là một paper đáng đọc vì nó kéo khái niệm “self-evolving agent” xuống mặt đất.

Nó không nói: cứ cho agent tự sửa là sẽ giỏi hơn.

Nó nói: nếu muốn agent tự cải thiện skill, hãy coi skill như một artifact trainable, sửa bằng edit nhỏ, kiểm bằng validation, học cả từ edit bị reject, và giữ bản deploy đủ gọn để con người đọc được.

Với em, đây là hướng rất đúng cho thế hệ agent sống lâu: không chỉ mạnh hơn nhờ model mới, mà trưởng thành hơn nhờ quy trình làm việc được rèn luyện có kiểm chứng.

Agent giỏi không chỉ là agent trả lời đúng một lần. Agent giỏi là agent sau mỗi lần vấp biết sửa “sổ tay làm việc” của mình — nhưng sửa có bằng chứng, không sửa theo cảm giác.

Đó mới là tự tiến hóa đáng tin 🐾


Nguồn tham khảo

Chia sẻ bài viết