Messaging and ACK - jaeseongs95/agent-governance-suite GitHub Wiki

ํ•œ๊ตญ์–ด | English

๋ฉ”์‹œ์ง•๊ณผ ACK

AGS์˜ ์„ธ์…˜ ํ†ต์‹ ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์›์น™์€ ์ „์†ก, ์ˆ˜์‹ , ์ฒ˜๋ฆฌ ํ™•์ธ, ์—…๋ฌด ๊ฒฐ๊ณผ๋ฅผ ๊ฐ™์€ ๊ฒƒ์œผ๋กœ ์ทจ๊ธ‰ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฉ”์‹œ์ง€ ์ˆ˜๋ช…

๊ฐœ๋…์ ์œผ๋กœ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

prepared
   โ†“
sent / queued
   โ†“
delivered / claimed
   โ†“
ACK
   โ†“
actual task result

๊ตฌํ˜„ ์„ธ๋ถ€ ์ƒํƒœ ์ด๋ฆ„์€ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ์˜๋ฏธ์ƒ ์ด ๊ตฌ๋ถ„์€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ ๋ฐœ๊ธ‰ Message ID

๋ฉ”์‹œ์ง€๋Š” ์‹œ์Šคํ…œ์ด ๋ฐœ๊ธ‰ํ•œ ID๋กœ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

์ „์†ก ๊ฒฐ๊ณผ๊ฐ€ ๋ถˆ๋ช…ํ™•ํ•˜๋‹ค๊ณ  ์ƒˆ ID์˜ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฌด์ž‘์ • ๋‹ค์‹œ ๋ณด๋‚ด๋ฉด ์ค‘๋ณต ์—…๋ฌด๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•˜๋ฉด ๊ฐ™์€ message ID์˜ ์ƒํƒœ๋ฅผ ๋จผ์ € ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ACK์˜ ์˜๋ฏธ

ACK๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌ ๋Œ€์ƒ์œผ๋กœ ํ™•์ธํ–ˆ๋‹ค๋Š” ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค.

ACK๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด์„œ ๋‹ค์Œ์ด ์„ฑ๋ฆฝํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

  • ์š”์ฒญ ์—…๋ฌด๊ฐ€ ๋๋‚ฌ๋‹ค.
  • ๊ฒ€ํ† ๊ฐ€ ํ†ต๊ณผํ–ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ์‹คํ–‰์„ ์Šน์ธํ–ˆ๋‹ค.
  • ๋ณ€๊ฒฝ์ด ์•ˆ์ „ํ•˜๋‹ค.
  • ์ƒ๋Œ€ ์„ธ์…˜์ด ๊ฒฐ๊ณผ๋ฅผ ํšŒ์‹ ํ–ˆ๋‹ค.

์—…๋ฌด ์™„๋ฃŒ๋Š” ๋ณ„๋„์˜ ๊ฒฐ๊ณผ ๋ฉ”์‹œ์ง€์™€ ๊ทผ๊ฑฐ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

Wake์™€ ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์€ ๋‹ค๋ฅด๋‹ค

AGS๋Š” ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ๊ณผ wake ์‹ ํ˜ธ๋ฅผ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”์‹œ์ง€์˜ ์‹ค์ œ ๋‚ด์šฉ๊ณผ ์ „๋‹ฌ ์ƒํƒœ๋Š” ๋กœ์ปฌ ๋ฉ”์‹œ์ง€ ํ์—์„œ ๊ด€๋ฆฌํ•˜๊ณ , Codex queue๋‚˜ Claude Code inbox ๊ฐ™์€ host transport๋Š” โ€œ์ƒˆ ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ๋‹คโ€๋Š” ์‹ ํ˜ธ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฐ€์žฅ์ž๋ฆฌ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ wake ์„ฑ๊ณต๋งŒ์œผ๋กœ ๋ณธ๋ฌธ ์ฒ˜๋ฆฌ ์™„๋ฃŒ๋ฅผ ๋œปํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Session Board๋„ ๋ฉ”์‹œ์ง•์ด ์•„๋‹ˆ๋‹ค

Session Board๋Š” ํ˜„์žฌ ๋‹ด๋‹น์ž๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ pull ๊ธฐ๋ฐ˜ ํ˜„ํ™ฉํŒ์ž…๋‹ˆ๋‹ค.

์ƒ๋Œ€ ์„ธ์…˜์ด ๋ชฉ๋ก์— ๋ณด์ธ๋‹ค๋Š” ์‚ฌ์‹ค๋งŒ์œผ๋กœ ๋ฉ”์‹œ์ง€๊ฐ€ ์ „๋‹ฌ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ํ๋ฆ„์€:

Session Board์—์„œ ๋‹ด๋‹น์ž ํƒ์ƒ‰
            โ†“
PEER message ์ „์†ก
            โ†“
messageId ์ƒํƒœ ์ถ”์ 
            โ†“
ACK
            โ†“
์‹ค์ œ ๊ฒฐ๊ณผ ํšŒ์‹ 

์ž๋™ ๊นจ์šฐ๊ธฐ

์ž๋™ wake ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋Š” ๋‹ค์Œ์— ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

  • ์ˆ˜์‹  host
  • ํ˜„์žฌ ์„ธ์…˜ ์‹คํ–‰ ์ƒํƒœ
  • hook ์ง€์›
  • wake ์„ค์ •
  • relay/presence ์ƒํƒœ
  • ํ˜„์žฌ generation
  • host๋ณ„ transport

์ข…๋ฃŒ๋œ ์„ธ์…˜์„ ๋‹จ์ˆœ idle ์ƒํƒœ์™€ ๋™์ผํ•˜๊ฒŒ ์ทจ๊ธ‰ํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

Peer wait

๋ฉ”์‹œ์ง€๋‚˜ ACK๊ฐ€ ์žˆ๋‹ค๋Š” ์ด์œ ๋งŒ์œผ๋กœ peer ์ž‘์—… ์™„๋ฃŒ๋ฅผ ์ถ”์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

AGS์˜ wait ์ •์ฑ…์€ ์‹ค์ œ๋กœ ๊ด€์ธก ๊ฐ€๋Šฅํ•œ resume ๊ทผ๊ฑฐ๊ฐ€ ์žˆ๋Š”์ง€ ๋ณ„๋„๋กœ ํŒ๋‹จํ•˜๋ฉฐ, ๊ด€์ธก์ด ๋ถˆ๋ช…ํ™•ํ•œ ๊ฒฝ์šฐ ๊ฐ•ํ•œ ๋ณด์žฅ์„ ๋งŒ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์žฌ์‹œ๋„ ์›์น™

  1. ๊ธฐ์กด message ID ์ƒํƒœ๋ฅผ ๋จผ์ € ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ณธ๋ฌธ ์ „๋‹ฌ ์ƒํƒœ์™€ ACK๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
  3. ACK ์ดํ›„ ์‹ค์ œ ๊ฒฐ๊ณผ๊ฐ€ ํ•„์š”ํ•œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  4. ๋ถˆ๋ช…ํ™•ํ•œ ์ „์†ก์„ ์ƒˆ ID๋กœ ๋ฐ˜๋ณตํ•˜๊ธฐ ์ „์— ๊ธฐ์กด ์ „์†ก์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  5. update ๋˜๋Š” broker ์žฌ์‹œ์ž‘ ๋’ค์—๋Š” ๊ตฌ/์‹  ํ”„๋กœ์„ธ์Šค ํ˜ผ์žฌ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์ˆ  ๋ฌธ์„œ