๐ ์์ด์ ํธ ์ํ ๊ด๋ฆฌ
messages[], ์ธ์ , invocation_state, ๊ณต์ ๋ฉ์ปค๋์ฆ
์์ด์ ํธ ์ํ ๊ด๋ฆฌ
messages[], ์ธ์ , invocation_state, ๊ณต์ ๋ฉ์ปค๋์ฆ
์์ด์ ํธ์ ๊ธฐ์ต๊ณผ ํ๋จ์ ์ค๊ณํ๋ค
์ํ ๊ด๋ฆฌ ๋ฉ์ปค๋์ฆ๊ณผ ์์ด์ ํธ ํ๋กฌํํธ ์ค๊ณ์ ํต์ฌ ์๋ฆฌ
messages[]์ ์ธ์
messages[] ๊ตฌ์กฐ ยท session_id ยท ์ธ๋ฉ๋ชจ๋ฆฌ ํ๊ณ
messages[]์ ์ธ์
๋ํ๊ฐ ๋ชจ๋ธ์ ์ ๋ฌ๋๋ ์ค์ ๊ตฌ์กฐ์ ์ธ๋ฉ๋ชจ๋ฆฌ ํ๊ณ์ ์กฐ๊ฐ
๋ชจ๋ธ์ ๊ธฐ์ตํ์ง ์๋๋ค โ ๋งค๋ฒ ๋ค์ ์ฝ๋๋ค
๋งค ํธ์ถ๋ง๋ค messages[] ์ ์ฒด๊ฐ ๋ชจ๋ธ์ ์ฌ์ ์ก๋ฉ๋๋ค โ session_id๋ก ๋ํ๋ฅผ ๊ฒฉ๋ฆฌํ๊ณ ์ธ๋ฉ๋ชจ๋ฆฌ ํ๊ณ๋ฅผ ํ์ธํฉ๋๋ค.
- messages[] โ user ยท assistant ยท toolUse ยท toolResult ๋์
- session_id โ ์ฌ์ฉ์ร๋ํ ๊ฒฉ๋ฆฌ, ๋ฉํฐ์ ์ ์๋น์ ๊ธฐ๋ณธ
- ์ธ๋ฉ๋ชจ๋ฆฌ ํ๊ณ โ ์ ์ค ยท ํ ํฐ ํญ๋ฐ ยท ์๋์ฐ ์ด๊ณผ ยท ํผ์
- SessionManager โ ์ธ๋ถ ์ ์ฅ์ ์์ํ๋ก ์ ์ค ํด๊ฒฐ
๋ชจ๋ธ์๋ ๊ธฐ์ต์ด ์๊ณ ๋งค ํธ์ถ messages[] ์ ์ฒด๋ฅผ ๋ค์ ์ฝ์ต๋๋ค โ ์ด ๊ตฌ์กฐ๊ฐ ์ํ ๊ด๋ฆฌ ์ ์ฒด์ ์ถ๋ฐ์ ์ ๋๋ค.
messages[]์ ์ค์ฒด
๋ชจ๋ธ์ "๊ธฐ์ต"์ด ์๋๋ผ ๋งค๋ฒ ๋ค์ ์ฝ๋ ๊ฒ โ ๋ค์ ํธ์ถ์ ์ค์ ๋ก ๋๊ฐ๋ ํ์ด๋ก๋
Converse API ์์ฒญ ๋ฐ๋ โ "messages": [ ... ]
{ "role": "user", "content": "๊ทธ๋ผ ์ฐ์ฐ ์ฑ๊ฒจ์ผ ํด?" }
NEW ยท ์ด๋ฒ ํด
toolUseยทtoolResult๊น์ง ๋ชจ๋ messages[]์ ์์ด๊ณ ๋ค์ ํธ์ถ์ ์ ๋ถ ๋ค์ ์ ์ก๋ฉ๋๋ค โ ๋ํ๊ฐ ๊ธธ์๋ก ์ ๋ ฅ ํ ํฐ์ด ์ปค์ง๋ ์ด์ ์ ๋๋ค.
session_id ์ค๊ณ
๋ํ๋ฅผ ๊ตฌ๋ถํ๋ ํค โ ๋ฉํฐ์ ์ ์๋น์ ๊ธฐ๋ณธ
์ฌ์ฉ์๋น 1๊ฐ
user_id
- ๋ํ 1๊ฐ๋ง ์ ์ง
- ๋จ์ํ์ง๋ง ๋ํ ๋ถ๋ฆฌ ๋ถ๊ฐ
์ธ์ โ ๋จ์ ๋ด (1์ฌ์ฉ์ = 1๋ํ)
๋ํ๋ณ ๋ถ๋ฆฌ
user_id-conv_id
- ์ฌ๋ฌ ๋ํ ๋ ๋ฆฝ ์ ์ง
- ChatGPT ๋ฐฉ์ (์ข์ธก ๋ํ ๋ชฉ๋ก)
์ธ์ โ ๋ฉํฐ ๋ํ ์ฑ (๋๋ถ๋ถ์ ํ๋ก๋์ )
์๊ฐ ๊ธฐ๋ฐ
user_id-2026-07-19
- ๋ ์ง๋ณ ์๋ ๋ถ๋ฆฌ
- ์ด์ ๋ ์ง ๋ํ ์๋ ์์นด์ด๋ธ
์ธ์ โ ์ผ์ผ ๋ณด๊ณ , ๋ฐ์ผ๋ฆฌ ์ด์์คํดํธ
๋๋ถ๋ถ์ ํ๋ก๋์ ์ user_id-conv_id ๋ํ๋ณ ๋ถ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค โ ํค ์ค๊ณ๊ฐ ๋ํ ๊ฒฉ๋ฆฌ ์์ค์ ๊ฒฐ์ ํฉ๋๋ค.
์ธ๋ฉ๋ชจ๋ฆฌ ์ํ์ 4๊ฐ์ง ๋ฌธ์
์ํ ๊ด๋ฆฌ ์์ด๋ ํ๋ก๋์ ๋ถ๊ฐ
๊ธฐ์ต ์์ค
ํ๋ก์ธ์ค ์ข ๋ฃ ์ messages[] ์ ์ฒด ์ ์ค โ ์๋ฒ ์ฌ์์, ๋ฐฐํฌ, Lambda ์ฝ๋์คํํธ
ํ ํฐ ํญ๋ฐ
๋ํ๊ฐ ๊ธธ์ด์ง๋ฉด ๋งค ํธ์ถ๋ง๋ค ์๋ง ํ ํฐ ์ ์ก โ ๋น์ฉโ ์ง์ฐโ
์๋์ฐ ์ด๊ณผ
์ปจํ ์คํธ ์๋์ฐ๋ฅผ ๋์ผ๋ฉด API ์๋ฌ โ ์์ด์ ํธ ๋ฉ์ถค
๋ฉํฐ์ ์ ํผ์
session_id ์์ด ์ฌ๋ฌ ์ฌ์ฉ์์ messages[]๊ฐ ์์
๋ค ๋ฌธ์ ๋ชจ๋ ์ํ๋ฅผ ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ์๋ง ๋์ด์ ์๊น๋๋ค โ ๋ค์ ํํธ์ ์ํ ๊ด๋ฆฌ ๊ตฌ์ฑ์์๊ฐ ๊ฐ๊ฐ์ ํด๋ฒ์ ๋๋ค.
์ํ ๊ด๋ฆฌ ๊ตฌ์ฑ์์
Session ยท Conversation ยท Memory ยท Context ยท Snapshots ยท Interrupts
์ํ ๊ด๋ฆฌ ๊ตฌ์ฑ์์
๋ ๋ฆฝ์ ์ธ 6๊ฐ์ง ๊ตฌ์ฑ์์์ ์ํ๋ฅผ ์๋ช ์ผ๋ก ๊ตฌ๋ถํ๋ ๊ด์ ์ ์กฐ๊ฐ
6๊ฐ์ง ๊ตฌ์ฑ์์ ยท ์๋ช 3๊ณ์ธต
SessionยทConversationยทMemoryยทContextยทSnapshotsยทInterrupts๋ฅผ ํ์ํ ๊ฒ๋ง ๊ณจ๋ผ ์กฐํฉํ๊ณ , ์ํ๋ฅผ ์๋ช ์ผ๋ก ๊ตฌ๋ถํฉ๋๋ค.
- 6๊ฐ์ง ๊ตฌ์ฑ์์ โ ๊ฐ๊ฐ ๋ ๋ฆฝ, ์ ํ ์กฐํฉ
- ์๋ช 3๊ณ์ธต โ ํด ยท ์ธ์ ยท ์ธ์ ๋๋จธ
- agent.state โ ์ธ์ ์ ์ง, ๋๊ตฌ ๊ฐ ๊ณต์ ๋ฉ๋ชจ์ฅ
- invocation_state โ 1ํด ์ ํจ, ์ธ๋ถ ์ฃผ์ ๋น๋ฐ
์ด๋ค ์ํ๊ฐ ์ผ๋ง๋ ์ค๋ ์ด์์ผ ํ๋์ง๊ฐ ๋จผ์ ์ ๋๋ค โ ์๋ช ์ด ์ ์ฅ์์ ๊ตฌ์ฑ์์ ์ ํ์ ๊ฒฐ์ ํฉ๋๋ค.
์ํ ๊ด๋ฆฌ 6๊ฐ์ง ๊ตฌ์ฑ์์
๊ฐ ๊ตฌ์ฑ์์๋ ๋ ๋ฆฝ์ โ ํ์ํ ๊ฒ๋ง ์ ํํ์ฌ ์กฐํฉ
SessionManager
messages[]๋ฅผ ์ธ๋ถ ์ ์ฅ์์ ์ ์ฅ/๋ณต์ โ ํ๋ก์ธ์ค ์ฌ์์ ํ ๋ํ ์ด์ด๊ฐ๊ธฐ
ConversationManager
๋ชจ๋ธ ์ ๋ฌ ์ messages[] ์ถ์ โ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ, ์์ฝ ์์ถ
MemoryManager
์ธ์ ๋๋จธ ์ฅ๊ธฐ ๊ธฐ์ต โ ์ฌ์ฉ์ ์ ํธ, ์ด์ ์ธ์ ์์ฝ, ํจํด ํ์ต
Context Management
ํฐ ๋๊ตฌ ๊ฒฐ๊ณผ ์๋ ์คํ๋ก๋ โ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ง ์ปจํ ์คํธ์ ์ ์ง
Snapshots
ํน์ ์์ ์ํ ์บก์ฒ + ๋กค๋ฐฑ โ ์๋ชป๋ ๊ฒฝ๋ก์์ ๋๋๋ฆฌ๊ธฐ
Interrupts
์ํ ์์ ์ ๋ฉ์ถค + ์ฌ์ฉ์ ์น์ธ ํ ์ฌ๊ฐ
์ํ ์๋ช 3๊ณ์ธต
ํด ยท ์ธ์ ยท ์ธ์ ๋๋จธ โ ๊ฐ ์ํ์ ์ ํจ ๋ฒ์
| ๋ฒ์ | ์ ์ง๋๋ ์ํ | ์ ์ฅ์ | ์์ |
|---|---|---|---|
| 1ํด | invocation_state | ๋ฉ๋ชจ๋ฆฌ (๋งค ํธ์ถ ์ฌ์ฃผ์ ) | user_id, api_key, request_id |
| ์ธ์ | messages[] + agent.state | SessionManager (File/S3) | ๋ํ ํ์คํ ๋ฆฌ, ์ธ์ฆ ํ ํฐ |
| ์ธ์ ๋๋จธ | MemoryManager | AgentCore Memory / Knowledge Base | ์ฌ์ฉ์ ์ ํธ, ์ด์ ์ธ์ ์์ฝ |
ํด์ด ๋๋๋ฉด invocation_state๊ฐ, ์ธ์ ์ด ๋๋๋ฉด messages[]๊ฐ ์ฌ๋ผ์ง๋๋ค โ ์ธ์ ๋๋จธ๊น์ง ๋จ๊ธธ ๊ฒ๋ง MemoryManager๋ก ์ฌ๋ฆฝ๋๋ค.
agent.state vs invocation_state
๋ ๋ค ๋ชจ๋ธ์๋ ์ ๋ณด์ด๋ ์กด์ฌ โ ์๋ช ๊ณผ ์ฃผ์ ๋ฐฉํฅ์ ์ฐจ์ด
agent.state
์ธ์ ์ ์ฒด ์ ์ง
- ๋๊ตฌ/ํ ์ด .set() / .get()
- ์ธ์ ๋์ ์ฌ๋ฌ ํด์ ๊ฑธ์ณ ์ ์ง
- SessionManager๊ฐ ํจ๊ป ์์ํ
- ์ฉ๋: ์ธ์ฆ ํ ํฐ, ํธ์ถ ์นด์ดํฐ, ๋๊ตฌ ๊ฐ ๊ณต์ ๋ฐ์ดํฐ
๋๊ตฌ๊ฐ ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ณ , ๋ค๋ฅธ ํด์ ๋ค๋ฅธ ๋๊ตฌ๊ฐ ์ฝ์ด ์ฐ๋ "์์ด์ ํธ ๋ด๋ถ ๋ฉ๋ชจ์ฅ"์ ๋๋ค.
invocation_state
1ํด๋ง ์ ํจ
- ํธ์ถ์(caller)๊ฐ ์ธ๋ถ์์ ์ฃผ์
- agent(prompt, invocation_state={...})
- ์ ์ฅ ์ ๋จ โ ๋งค ํธ์ถ๋ง๋ค ์ฌ์ฃผ์
- ์ฉ๋: API ํค, user_id, ์ญํ (role), ์ธ์ ๋น๋ฐ
ํธ์ถํ ๋๋ง๋ค ์ธ๋ถ์์ ๋ฃ์ด์ฃผ๋ "ํ๋ผ๋ฏธํฐ ๋ดํฌ". ๋๊ตฌ๊ฐ tool_context.invocation_state๋ก ๊บผ๋ ๋๋ค.
๋ชจ๋ธ์ด ๋ณด๋ ๊ฒ vs ๋ชป ๋ณด๋ ๊ฒ
LLM์ ๋ ธ์ถ๋๋ฉด ์ ๋๋ ๋ฏผ๊ฐ ์ ๋ณด๋ invocation_state๋ก
| ์ํ | LLM์ด ๋ด? | ๋๊ตฌ/ํ ์ ๊ทผ? | ์ฉ๋ |
|---|---|---|---|
| messages[] | โ ๋งค๋ฒ ์ ์ฒด ์ ์ก | โ | ๋ํ ๋งฅ๋ฝ ์ ์ง |
| agent.state | โ | โ .get()/.set() | ๋๊ตฌ ๊ฐ ๋ด๋ถ ๋ฐ์ดํฐ |
| invocation_state | โ | โ tool_context | ์ธ๋ถ ์ฃผ์ ๋น๋ฐ/์ค์ |
API ํค, ํ ํฐ ๋ฑ ๋ฏผ๊ฐ ์ ๋ณด๋ฅผ messages[]์ ๋ฃ์ผ๋ฉด ๋ชจ๋ธ์ ๋ ธ์ถ๋ฉ๋๋ค. ๋ฐ๋์ invocation_state๋ฅผ ์ฌ์ฉํ์ธ์.
๋ฉํฐ์์ด์ ํธ ์ํ ๊ณต์
Agents-as-Tools ยท Swarm ยท Graph ยท invocation_state ์ ํ
๋ฉํฐ์์ด์ ํธ ์ํ ๊ณต์
์์ด์ ํธ ์ฌ์ด์์ ๊ฒฐ๊ณผ๊ฐ ํ๋ฅด๋ ํต๋ก์ ํ๋ฅด์ง ์๋ ๊ฒ์ ์กฐ๊ฐ
ํจํด๋ง๋ค ๊ณต์ ํต๋ก๊ฐ ๋ค๋ฅด๋ค
Agents-as-ToolsยทSwarmยทGraph๋ ๊ฒฐ๊ณผ๊ฐ ํ๋ฅด๋ ๋ฐฉํฅ๊ณผ ๋ฐฉ์์ด ๊ฐ๊ฐ ๋ค๋ฅด๊ณ , agent.state๋ ์ด๋์๋ ์ง์ ๊ณต์ ๋์ง ์์ต๋๋ค.
- Agents-as-Tools โ toolResult๋ก ๋ถ๋ชจโ์์ ๋จ๋ฐฉํฅ
- Swarm โ Shared Context๊ฐ ํธ๋์คํ๋ง๋ค ๋์
- Graph โ Output Propagation, DAG ๋ฐฉํฅ ์ ํ
- ๊ณต์ ๋ถ๊ฐ โ agent.state ยท messages[] ์ง์ ์ ๊ทผ ์์
messages[]์ agent.state๋ ์ด๋ค ํจํด์์๋ ๋ณต์ฌ๋์ง ์์ต๋๋ค โ ํจํด์ด ์ ๊ณตํ๋ ํต๋ก๋ก๋ง ๊ฒฐ๊ณผ๊ฐ ํ๋ฆ ๋๋ค.
ํจํด๋ณ ์ํ ๊ณต์
์์ด์ ํธ A์ ๊ฒฐ๊ณผ๋ฅผ ์์ด์ ํธ B๊ฐ ์์์ผ ํ ๋
Agents-as-Tools
- ์์ ์์ด์ ํธ ๊ฒฐ๊ณผ๊ฐ ๋ถ๋ชจ์ toolResult๋ก ์ฝ์
- ๋จ๋ฐฉํฅ โ ๋ถ๋ชจ๋ง ์์ ๊ฒฐ๊ณผ๋ฅผ ๋ด
- ๊ฐ์ฅ ๋จ์ํ ํจํด
Swarm
- ํธ๋์คํ ์ ์ด์ ์์ด์ ํธ์ ์์ ๋งฅ๋ฝ์ด ์๋ ๋์
- Shared Context โ ํธ๋์คํ๋ ๋๋ง๋ค ์์
- messages[]๋ ๋ณต์ฌ ์ ๋จ โ Context๋ง ์ ๋ฌ
Graph
- ์ด์ ๋ ธ๋ ์ถ๋ ฅ์ด ์ฃ์ง๋ฅผ ๋ฐ๋ผ ์ฐ๊ฒฐ ๋ ธ๋์ ์ ๋ ฅ์ผ๋ก ์ ํ
- Output Propagation โ DAG ์์กด์ฑ ๋ฐฉํฅ์ผ๋ก๋ง ํ๋ฆ
- ๋ณ๋ ฌ ๋ ธ๋ ๊ฐ์๋ ๊ณต์ ์ ๋จ
๊ณต์ ์ ๋๋ ๊ฒ
์์ด์ ํธ ๊ฐ ์ง์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ ์ํ
agent.state๋ ํด๋น ์์ด์ ํธ์๋ง ์ ๊ทผ ๊ฐ๋ฅํฉ๋๋ค. ๋ค๋ฅธ ์์ด์ ํธ๊ฐ ์ง์ ์ฝ์ ์ ์์ต๋๋ค. ๊ณต์ ํ๋ ค๋ฉด ๋๊ตฌ ๋ฐํ๊ฐ์ผ๋ก ๊บผ๋ด๊ฑฐ๋, ์ธ๋ถ ์ ์ฅ์(AgentCore Memory, DynamoDB)๋ฅผ ๊ฒฝ์ ํด์ผ ํฉ๋๋ค.
| ์ํ | ์ธ์คํด์ค ๊ฐ ๊ณต์ | ๊ณต์ ๋ฐฉ๋ฒ |
|---|---|---|
| agent.state | โ ์ง์ ์ ๊ทผ ๋ถ๊ฐ | ๋๊ตฌ ๋ฐํ๊ฐ / ์ธ๋ถ ์ ์ฅ์ |
| messages[] | โ ๋ณต์ฌ ์ ๋จ | Shared Context(Swarm) / Output(Graph) |
| invocation_state | โณ ์ ํ ๊ฐ๋ฅ | ์ค์ผ์คํธ๋ ์ดํฐ๊ฐ ์์ ํธ์ถ ์ ๋์ผ dict ์ ๋ฌ |
messages[] ยท SessionManager ยท description ยท ํ๋ ๊ท์น