Mục lục
Trả lời ngắn: Think → Act → Observe là microcycle của một AI agent. Think tóm tắt điều còn thiếu và chọn bước kế tiếp; Act gọi một tool được phép; Observe nhận dữ liệu hoặc lỗi từ môi trường. Kết quả cập nhật state, rồi hệ kiểm tra nên tiếp tục, đổi hướng, hỏi người hay dừng.
Đọc xong, bạn sẽ hiểu:
- Ba nhịp bàn giao cho nhau dữ liệu gì.
- Vì sao action và observation phải đủ nhỏ, đủ kiểm chứng.
- Cách đọc một loop ba vòng từ câu hỏi tới bằng chứng.
- Cách tự điền Loop Log bằng dữ liệu giả.
Lưu ý giáo dục: Think ở đây là action rationale/state summary ngắn, không phải yêu cầu công khai private chain-of-thought. Ví dụ chỉ dùng thẻ giả và tool giấy. Hệ thật phải có quyền tối thiểu, schema, approval, budget, bảo mật và người chịu trách nhiệm.
1. Think → Act → Observe là gì?
a. Ba nhịp của một vòng agent
Hãy hình dung bạn tìm một workshop cuối tuần dưới 500k. Bạn không thể trả lời chỉ bằng đoán; cũng không nên mở mọi trang một cách ngẫu nhiên. Bạn cần chọn điều chưa biết, thực hiện một bước tra cứu rồi đọc kết quả trước khi quyết định tiếp.
Think tóm tắt state hiện tại, khoảng trống quan trọng và action kế tiếp. Act thực thi một tool action được phép. Observe nhận result hoặc lỗi từ môi trường. State là bản ghi điều đã biết, chưa biết, evidence, tiến độ và budget.
Hình 1 — Think chọn bước, Act tạo sự kiện, Observe đưa kết quả trở lại state; vòng mới chỉ có lý do khi bất định giảm.
b. Khác gì với ReAct?
ReAct Framework #32 là mẫu rộng hơn về việc xen kẽ reasoning và acting. Think → Act → Observe là kính phóng đại cho một vòng: mỗi nhịp nhận gì, trả gì và được xem là đạt khi nào.
Công trình ReAct mô tả reasoning trace xen kẽ task-specific action; action tương tác với nguồn ngoài để lấy observation. Yao et al. — ReAct paper
c. Vòng chỉ tiến khi state đổi
Nếu agent tìm cùng một query bốn lần và nhận cùng kết quả, nó có hoạt động nhưng không tiến triển. Observation tốt phải xác nhận, bác bỏ hoặc bổ sung một điều; nếu không, hệ nên đổi action, hỏi người hoặc dừng.
2. Ba nhịp phải bàn giao gì cho nhau?
a. Think bàn giao một quyết định nhỏ
Think không cần viết bài luận. Output tối thiểu gồm: state before, một unknown ưu tiên, action đề xuất và lý do ngắn vì sao action có thể giảm unknown.
Ví dụ: “Đã có lịch nhưng thiếu giá; đọc T2 để lấy giá và phiên bản.” Câu này đủ để audit bước kế tiếp mà không phơi độc thoại nội bộ. “Tôi sẽ suy nghĩ kỹ hơn” không tạo action cụ thể.
b. Act bàn giao một sự kiện kiểm được
Act phải tuân theo tool contract: tool name, input schema, quyền, timeout và error types. Action granularity là kích thước một hành động. Action càng lớn càng khó biết bước nào gây lỗi.
READ_ID("T2") dễ kiểm hơn “hãy tìm, so sánh, đăng ký và thanh toán workshop tốt nhất”. Tra cứu có thể tự động; đăng ký hoặc thanh toán cần action riêng, authorization và approval tương xứng.
c. Observe bàn giao dữ liệu, không viết truyện
Kết quả quan sát giữ đủ dấu vết: nguồn A, phiên bản 3, lúc 10:30, trạng thái lỗi truy cập. Quy ước các trường bắt buộc này gọi là evidence contract. Nếu công cụ trả ACCESS_DENIED, nghĩa là bị từ chối truy cập, agent phải giữ đúng loại lỗi; không được đổi thành “không có workshop”.
State delta là phần state thay đổi sau observation. Ví dụ: price(T2)=450k, evidence=T2-v4, unknown=day. Nếu không có state delta, action có thể là no-op — bước không tạo thông tin hoặc thay đổi hữu ích.
Hình 2 — Mỗi nhịp nên có output nhỏ, rõ và kiểm được; state không đổi là tín hiệu cần dừng lặp.
d. Hợp đồng bàn giao tối thiểu
| Nhịp | Input | Output | Gate |
|---|---|---|---|
| Think | State + goal | Unknown + action summary | Action có giảm bất định? |
| Act | Tool + input | Result hoặc typed error | Đúng quyền/schema? |
| Observe | Raw output | Evidence + state delta | Nguồn và lỗi rõ? |
| Stop | State mới | Continue/complete/escalate | Success/budget đạt? |
Anthropic mô tả agent thường dùng tool theo environmental feedback trong loop và nhấn mạnh ground truth từ môi trường để đánh giá tiến độ. Anthropic — Building effective agents
3. Ví dụ ba vòng: từ câu hỏi đến bằng chứng
a. Goal và dữ liệu giả
Goal: “Tìm một workshop cho người mới, học Chủ nhật, giá không quá 500k; câu trả lời có evidence ID.” Hệ chỉ dùng bốn thẻ:
- T1: khóa nâng cao, thứ Bảy, 400k.
- T2: khóa nhập môn, Chủ nhật, giá chưa ghi.
- T3: khóa nhập môn, thứ Hai, 300k.
- T4: trang khuyến mãi nói “cuối tuần”, không ghi trình độ.
Tool giấy gồm SEARCH_CARD(query), READ_ID(id) và ASK_HUMAN(question). Budget ba vòng, không đăng ký hay thanh toán.
b. Vòng 1 — tìm candidate
State before: chưa biết thẻ nào học Chủ nhật. Think: tìm “Chủ nhật”. Act: SEARCH_CARD("Chủ nhật"). Observe: trả T2; T4 chỉ nói “cuối tuần”. State delta: candidate=T2; unresolved=T4. Stop: continue vì thiếu giá T2.
Action này tốt vì có một câu hỏi rõ. Observation không tự biến “cuối tuần” thành Chủ nhật.
c. Vòng 2 — kiểm giá và phiên bản
Trong bộ dữ liệu giả, mỗi giá hoặc lịch đều phải có trường valid_until. Lệnh READ_ID("T2") trả cả nội dung T2 và trạng thái hiệu lực, nên vòng sau có dữ liệu để kiểm độ mới.
Think: T2 phù hợp lịch/trình độ nhưng thiếu giá; đọc nguồn gốc. Act: READ_ID("T2"). Observe: T2-v4 ghi 450k, nhập môn, Chủ nhật. State delta: T2 đủ ba tiêu chí; evidence=T2-v4. Stop: có thể complete, nhưng policy yêu cầu kiểm thông tin stale.
d. Vòng 3 — kiểm hiệu lực rồi dừng
Think: xác minh T2-v4 còn hiệu lực. Act: đọc trường trạng thái do READ_ID("T2") trả về. Observe: active đến 31/08. State delta: valid_until=31/08. Stop: complete.
Câu trả lời: “Workshop T2 phù hợp: nhập môn, học Chủ nhật, giá 450k; nguồn T2-v4, hiệu lực đến 31/08.” Agent không chọn T4 vì thiếu evidence. Nếu status tool timeout, outcome đúng là retry trong budget hoặc báo chưa xác minh, không phải tự tuyên bố active.
e. Nếu observation làm kế hoạch đổi hướng
Giả sử vòng 2 trả giá 650k. State phải loại T2 và vòng 3 có thể READ_ID("T4") hoặc ASK_HUMAN xem “cuối tuần” là ngày nào. Feedback tạo đường đi mới; đó là lý do loop tồn tại.
4. Lỗi phổ biến và điều kiện dừng
Loop lặp có thể cộng dồn lỗi thành rủi ro lớn.
a. Think mơ hồ hoặc quá dài
“Hãy làm tốt nhất” không chỉ ra unknown. Một think summary tốt trả ba câu: biết gì, thiếu gì, bước nào giảm thiếu hụt? Nếu phần giải thích dài hơn dữ liệu cần quyết định, hãy nén thành action summary.
b. Act quá lớn, lặp hoặc vượt quyền
Tool spam xảy ra khi agent gọi tool chỉ để “thử thêm”. Duplicate detector phát hiện cùng tool + input hoặc action tương đương lặp lại mà state không đổi. Action có side effect cần idempotency, hạn mức và approval; prompt không tự cấp quyền.
c. Observe trộn dữ liệu với suy diễn
Bad observation: “T2 chắc chắn tốt nhất.” Good observation: “T2-v4: 450k, Chủ nhật, nhập môn.” Việc “tốt nhất” còn phụ thuộc tiêu chí khác. Hãy tách raw evidence, interpretation và confidence.
d. Stop check bị bỏ quên
Stop check quyết định complete, continue, escalate, blocked hoặc budget stop. OpenAI mô tả run thường là loop vận hành đến exit condition; điều kiện có thể dựa trên structured output, lỗi, tool call hoặc số turn tối đa. OpenAI — A practical guide to building agents
Checklist tối thiểu:
- Success rule đã có evidence chưa?
- Action mới có khác action vừa thất bại không?
- Typed error có cho retry không?
- Budget step/time/cost còn không?
- Có cần quyền hoặc quyết định của con người không?
5. Bài tập 20 phút: điền Loop Log
a. Chuẩn bị
Viết T1–T4 lên bốn thẻ hoặc file text. Dùng đúng ba tool giấy trong mục 3. Goal vẫn là workshop nhập môn Chủ nhật dưới 500k; tối đa ba vòng.
b. Mỗi vòng ghi tám trường
Ghi State Before, Think Summary, Tool + Input, Observation, State Delta, Evidence, Budget và Stop Check. Không ghi secret, dữ liệu cá nhân hoặc private reasoning dài.
Hình 3 — Loop Log giữ phần cần để debug, đánh giá tiến độ và giải thích lý do dừng.
c. Mẫu đối chiếu: vòng đầu
| Trường | Mẫu |
|---|---|
| State Before | Chưa biết lịch và giá |
| Think Summary | Tìm thẻ có “Chủ nhật” |
| Tool + Input | SEARCH_CARD("Chủ nhật") |
| Observation | T2 khớp; T4 chỉ nói cuối tuần |
| State Delta | candidate=T2; unresolved=T4 |
| Evidence | T2, T4 |
| Budget | Đã dùng 1/3 vòng |
| Stop Check | Continue; cần kiểm giá |
d. Tự chấm
- Think có đúng một unknown ưu tiên không?
- Act có đủ nhỏ và trong quyền không?
- Observe có source ID hoặc typed error không?
- State delta có thật sự thay đổi không?
- Stop check có thể hỏi người hoặc dừng không?
Thử đổi T2 thành 650k và chạy lại vòng cuối. Nếu đường đi không đổi dù evidence đổi, logic update state đang sai.
6. Tổng kết: observation phải làm state thay đổi
a. Năm ý chính
- Think chọn một unknown và action kế tiếp dựa trên state hiện tại.
- Act là một sự kiện đủ nhỏ, đúng schema, quyền và approval.
- Observe giữ dữ liệu hoặc typed error, không biến suy diễn thành sự thật.
- State delta cho biết loop có tiến triển; không đổi state thì action có thể là no-op.
- Stop check và budget quan trọng ngang với khả năng tiếp tục hành động.
b. Câu hỏi tự kiểm tra
- Think summary tốt cần chứa gì?
- Vì sao action lớn khó debug?
ACCESS_DENIEDnên cập nhật state thế nào?- Khi nào loop phải dừng dù chưa có câu trả lời?
c. Gợi ý đáp án
Xem gợi ý câu 1
State hiện tại, unknown ưu tiên, action kế tiếp và lý do ngắn vì sao action giảm bất định. → Xem mục 2.Xem gợi ý câu 2
Nó gộp nhiều side effect và điểm lỗi, khiến hệ khó biết bước nào thành công, thất bại hoặc cần retry. → Xem mục 2.Xem gợi ý câu 3
Ghi đúng typed error về quyền và chuyển sang xin quyền/escalate; không kết luận dữ liệu không tồn tại. → Xem mục 2 và 4.Xem gợi ý câu 4
Khi hết budget, action lặp không đổi state, vượt quyền, gặp lỗi permanent hoặc cần quyết định của con người. → Xem mục 4.d. Thuật ngữ cần nhớ
| Thuật ngữ | Giải thích ngắn |
|---|---|
| Think | Tóm tắt state và chọn bước kế tiếp. |
| Act | Thực thi một tool action được phép. |
| Observe | Nhận kết quả hoặc lỗi từ môi trường. |
| State | Điều đã biết, chưa biết, evidence và budget. |
| State delta | Phần state đổi sau observation. |
| Action granularity | Kích thước một action có thể kiểm soát. |
| Evidence contract | Trường nguồn, phiên bản và lỗi cần giữ. |
| No-op | Action không tạo thay đổi hữu ích. |
| Duplicate detector | Kiểm soát phát hiện action lặp. |
| Stop check | Quy tắc continue, complete, escalate hoặc stop. |
e. Nguồn tham khảo
- Yao et al. — ReAct: Synergizing Reasoning and Acting in Language Models
- Anthropic — Building effective agents
- OpenAI — A practical guide to building agents
f. Học tiếp gì?
Xem lại ReAct Framework #32 nếu chưa rõ bức tranh toàn loop. Học tiếp Planning Agent #34 để tạo, cập nhật và kiểm soát kế hoạch nhiều bước khi observation làm đường đi thay đổi.
Nhắc lại giáo dục: Loop tốt không phải loop chạy nhiều. Nó dùng action được phép để lấy evidence, cập nhật state trung thực và dừng đúng lúc.
Bài tiếp theo