ReAct (Reason + Act)
Also: ReAct 模式 · Reason and Act · 推理與行動 · thought action observation
The model narrates a thought before each action, proposes the action, receives an observation, and repeats — reasoning and acting interleaved instead of separated.
When you will meet it
Open any agent's execution trace and this is the format you see. Without it you cannot tell model reasoning from results injected by code — and worse, you may take the fluent narration for the real decision process. It is plausible-sounding text, not a log.
An analogy
Like an intern narrating while working: "I'll check A first because B" (thought), actually checks (action), "the result is C" (observation), then decides the next step. The narration keeps you in the loop — but it is a plausible-sounding reason, not necessarily the reason that actually drove the act.
Minimal example
Thought: 用戶要比較兩份合約的違約金條款,我先讀第一份
Action: read_file("contract_a.txt")
Observation: (程式回傳的檔案內容……)
Thought: 第 8 條講到違約金;接著讀第二份來對照
Action: read_file("contract_b.txt")Thought is model-generated text; Observation is a real result injected by code — their trust levels differ completely. An observation can come from a bad source, but a thought is always just a claim.
What people get wrong
- Treating Thought as the model's real internal process. It is generated, after-the-fact plausible narration; the model neither can nor must guarantee that it faithfully records why it acted.
- Assuming the action must follow the stated thought. The next step can be unrelated to the narration, especially in long contexts. Guarding against that takes external checks, not the format.