๐Ÿ“บ ์˜์ƒ ์š”์•ฝ ์•„์นด์ด๋ธŒ
โ† ๋ชฉ๋ก

Building an ACP-Compatible Agent Live โ€” Bennet Fenner, Zed

AI Engineer ยท 2026-07-08 21:00 ยท 18:19

ํ•œ ์ค„ ํ•ต์‹ฌ

Zed๋Š” ACP(Agent Client Protocol)๋ฅผ ํ†ตํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๋ฅผ ํ•˜๋‚˜์˜ ํŽธ์ง‘๊ธฐ์—์„œ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ผ์ด๋ธŒ ์ฝ”๋”ฉ์œผ๋กœ ๋ณด์—ฌ์ฃผ๋ฉฐ, ์„ธ์…˜ยท์ŠคํŠธ๋ฆฌ๋ฐยทํˆด ํ˜ธ์ถœยทํŒŒ์ผ ์‹œ์Šคํ…œยทํ„ฐ๋ฏธ๋„๊นŒ์ง€ ๋‹จ๊ณ„์ ์œผ๋กœ ๋ถ™์—ฌ ์‹ค์ œ ๋™์ž‘ํ•˜๋Š” ์—์ด์ „ํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.

์‹œ๊ฐ„๋ณ„ ์š”์•ฝ

  1. 0:14
    ํ•ต์‹ฌ ๋ชฉํ‘œ๋Š” Claude code, Codex, Gemini CLI์ฒ˜๋Ÿผ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์—์ด์ „ํŠธ๋ฅผ Zed์—์„œ ๋™์ผํ•œ ๊ฒฝํ—˜์œผ๋กœ ์“ฐ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ACP๋ผ๋Š” JSON-RPC ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ์„ ๋„์ž…ํ•ด ์—์ด์ „ํŠธ์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ํ†ต์‹ ํ•˜๋„๋ก ์„ค๊ณ„ํ•œ๋‹ค.
  2. 2:01
    ๊ธฐ๋ณธ ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๋Š” ํŒŒ์ผ ์ฝ๊ธฐ์™€ ๊ธฐ์กด ํŒŒ์ผ ์ˆ˜์ •์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ๋„๊ตฌ๋งŒ ๊ฐ€์ง„ ๋งค์šฐ ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ๋‹ค. ๋ชจ๋ธ API๋Š” ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ๋Œ€ํ™” ์ด๋ ฅ๊ณผ ํˆด ํ˜ธ์ถœ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ๋ถ™์—ฌ ๋ณด๋‚ด๋Š” ์—์ด์ „ํŠธ ๋ฃจํ”„๊ฐ€ ๋™์ž‘์˜ ์ค‘์‹ฌ์ด ๋œ๋‹ค.
  3. 4:00
    ACP ํ˜ธํ™˜์„ ์œ„ํ•ด์„œ๋Š” initialize, session ์ƒ์„ฑ, prompt ์ฒ˜๋ฆฌ, cancellation ๊ฐ™์€ ์ตœ์†Œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค. ์„ธ์…˜๋งˆ๋‹ค ID๋ฅผ ๋งŒ๋“ค๊ณ  ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฌถ์–ด ๊ด€๋ฆฌํ•˜๋ฉด, ํด๋ผ์ด์–ธํŠธ๋Š” ๊ฐ™์€ ๋Œ€ํ™” ํ๋ฆ„ ์•ˆ์—์„œ ์—์ด์ „ํŠธ๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.
  4. 8:00
    ๋ชจ๋ธ์˜ ์ŠคํŠธ๋ฆฌ๋ฐ ์ถœ๋ ฅ์€ session update๋กœ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌํ•ด์•ผ UI์—์„œ ํ† ํฐ ๋‹จ์œ„๋กœ ๋ณด์ธ๋‹ค. ํŒŒ์ผ ์ฝ๊ธฐ ๊ฐ™์€ ํˆด๋„ ์‹œ์ž‘ ์‹œ์ ์—๋Š” in progress ์ƒํƒœ๋ฅผ, ์ข…๋ฃŒ ์‹œ์ ์—๋Š” ๊ฒฐ๊ณผ์™€ ์™„๋ฃŒ ์ƒํƒœ๋ฅผ ๋”ฐ๋กœ ๋ณด๋‚ด์•ผ ํŽธ์ง‘๊ธฐ ์•ˆ์—์„œ ์ž‘์—… ์ง„ํ–‰์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ‘œํ˜„๋œ๋‹ค.
  5. 12:00
    ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋กœ์ปฌ fs.readFile๋กœ ์ง์ ‘ ์ฝ๋Š” ๋Œ€์‹  ACP๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ capability๋ฅผ ํ†ตํ•ด ํ”„๋ก์‹œํ•˜๋ฉด, ๋ฒ„ํผ์˜ ๋ฏธ์ €์žฅ ๋ณ€๊ฒฝ๋ถ„๊นŒ์ง€ ์—์ด์ „ํŠธ๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ดํ›„์—๋Š” ํ„ฐ๋ฏธ๋„ capability๊นŒ์ง€ ์ถ”๊ฐ€ํ•ด ์—์ด์ „ํŠธ๊ฐ€ ์Šค์Šค๋กœ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ์ˆ˜์ค€์œผ๋กœ ํ™•์žฅํ•œ๋‹ค.

์‹ค๋ฌด ์ธ์‚ฌ์ดํŠธ

  • ์—์ด์ „ํŠธ ์—ฐ๋™์€ ๋ชจ๋ธ ์ž์ฒด๋ณด๋‹ค ์„ธ์…˜, ์ŠคํŠธ๋ฆฌ๋ฐ, ํˆด ์ƒํƒœ, ํŒŒ์ผยทํ„ฐ๋ฏธ๋„ ๊ถŒํ•œ์„ ํ‘œ์ค€ํ™”ํ•˜๋Š” ํ•˜๋„ค์Šค ์„ค๊ณ„๊ฐ€ ์„ฑํŒจ๋ฅผ ์ขŒ์šฐํ•œ๋‹ค.
  • ํŽธ์ง‘๊ธฐ ๋‚ด ์—์ด์ „ํŠธ ๊ฒฝํ—˜์„ ์ข‹๊ฒŒ ํ•˜๋ ค๋ฉด ์ตœ์ข… ๊ฒฐ๊ณผ๋ณด๋‹ค ์ค‘๊ฐ„ ์ง„ํ–‰ ์ƒํƒœ๋ฅผ ์„ธ๋ฐ€ํ•˜๊ฒŒ ๋…ธ์ถœํ•ด์•ผ ํ•˜๋ฉฐ, ํŠนํžˆ tool call์˜ in progress/complete ์ด๋ฒคํŠธ ๋ถ„๋ฆฌ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.
  • ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ง์ ‘ ๋‹ค๋ฃจ๊ธฐ๋ณด๋‹ค ํด๋ผ์ด์–ธํŠธ capability๋ฅผ ํ†ตํ•ด ํ”„๋ก์‹œํ•˜๋ฉด ๋ฏธ์ €์žฅ ๋ฒ„ํผ๊นŒ์ง€ ์ผ๊ด€๋˜๊ฒŒ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์–ด ์‹ค์ œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ๋” ์ž˜ ๋งž๋Š”๋‹ค.