Building an ACP-Compatible Agent Live โ Bennet Fenner, Zed
ํ ์ค ํต์ฌ
Zed๋ ACP(Agent Client Protocol)๋ฅผ ํตํด ์๋ก ๋ค๋ฅธ ์ฝ๋ฉ ์์ด์ ํธ๋ฅผ ํ๋์ ํธ์ง๊ธฐ์์ ํ์ค ์ธํฐํ์ด์ค๋ก ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ผ์ด๋ธ ์ฝ๋ฉ์ผ๋ก ๋ณด์ฌ์ฃผ๋ฉฐ, ์ธ์ ยท์คํธ๋ฆฌ๋ฐยทํด ํธ์ถยทํ์ผ ์์คํ ยทํฐ๋ฏธ๋๊น์ง ๋จ๊ณ์ ์ผ๋ก ๋ถ์ฌ ์ค์ ๋์ํ๋ ์์ด์ ํธ๋ฅผ ๋ง๋ ๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:14
ํต์ฌ ๋ชฉํ๋ Claude code, Codex, Gemini CLI์ฒ๋ผ ๊ฐ๊ธฐ ๋ค๋ฅธ ์์ด์ ํธ๋ฅผ Zed์์ ๋์ผํ ๊ฒฝํ์ผ๋ก ์ฐ๊ฒ ๋ง๋๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ํด ACP๋ผ๋ JSON-RPC ๊ธฐ๋ฐ ํ๋กํ ์ฝ์ ๋์ ํด ์์ด์ ํธ์ ํด๋ผ์ด์ธํธ๊ฐ ํ์ค ์ธํฐํ์ด์ค๋ก ํต์ ํ๋๋ก ์ค๊ณํ๋ค.
-
2:01
๊ธฐ๋ณธ ์ฝ๋ฉ ์์ด์ ํธ๋ ํ์ผ ์ฝ๊ธฐ์ ๊ธฐ์กด ํ์ผ ์์ ์ด๋ผ๋ ๋ ๊ฐ์ง ๋๊ตฌ๋ง ๊ฐ์ง ๋งค์ฐ ๋จ์ํ ๊ตฌ์กฐ๋ค. ๋ชจ๋ธ API๋ ์ํ๋ฅผ ์ ์ฅํ์ง ์์ผ๋ฏ๋ก, ๋ํ ์ด๋ ฅ๊ณผ ํด ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๋ถ์ฌ ๋ณด๋ด๋ ์์ด์ ํธ ๋ฃจํ๊ฐ ๋์์ ์ค์ฌ์ด ๋๋ค.
-
4:00
ACP ํธํ์ ์ํด์๋ initialize, session ์์ฑ, prompt ์ฒ๋ฆฌ, cancellation ๊ฐ์ ์ต์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ฉด ๋๋ค. ์ธ์ ๋ง๋ค ID๋ฅผ ๋ง๋ค๊ณ ์์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ฌถ์ด ๊ด๋ฆฌํ๋ฉด, ํด๋ผ์ด์ธํธ๋ ๊ฐ์ ๋ํ ํ๋ฆ ์์์ ์์ด์ ํธ๋ฅผ ์์ ์ ์ผ๋ก ํธ์ถํ ์ ์๋ค.
-
8:00
๋ชจ๋ธ์ ์คํธ๋ฆฌ๋ฐ ์ถ๋ ฅ์ session update๋ก ํด๋ผ์ด์ธํธ์ ์ ๋ฌํด์ผ UI์์ ํ ํฐ ๋จ์๋ก ๋ณด์ธ๋ค. ํ์ผ ์ฝ๊ธฐ ๊ฐ์ ํด๋ ์์ ์์ ์๋ in progress ์ํ๋ฅผ, ์ข ๋ฃ ์์ ์๋ ๊ฒฐ๊ณผ์ ์๋ฃ ์ํ๋ฅผ ๋ฐ๋ก ๋ณด๋ด์ผ ํธ์ง๊ธฐ ์์์ ์์ ์งํ์ด ์์ฐ์ค๋ฝ๊ฒ ํํ๋๋ค.
-
12:00
ํ์ผ ์์คํ ์ ๋ก์ปฌ fs.readFile๋ก ์ง์ ์ฝ๋ ๋์ ACP๊ฐ ์ ๊ณตํ๋ ํ์ผ ์์คํ capability๋ฅผ ํตํด ํ๋ก์ํ๋ฉด, ๋ฒํผ์ ๋ฏธ์ ์ฅ ๋ณ๊ฒฝ๋ถ๊น์ง ์์ด์ ํธ๊ฐ ๋ณผ ์ ์๋ค. ์ดํ์๋ ํฐ๋ฏธ๋ capability๊น์ง ์ถ๊ฐํด ์์ด์ ํธ๊ฐ ์ค์ค๋ก ๋ช ๋ น์ ์คํํ๋ ์์ค์ผ๋ก ํ์ฅํ๋ค.
์ค๋ฌด ์ธ์ฌ์ดํธ
- ์์ด์ ํธ ์ฐ๋์ ๋ชจ๋ธ ์์ฒด๋ณด๋ค ์ธ์ , ์คํธ๋ฆฌ๋ฐ, ํด ์ํ, ํ์ผยทํฐ๋ฏธ๋ ๊ถํ์ ํ์คํํ๋ ํ๋ค์ค ์ค๊ณ๊ฐ ์ฑํจ๋ฅผ ์ข์ฐํ๋ค.
- ํธ์ง๊ธฐ ๋ด ์์ด์ ํธ ๊ฒฝํ์ ์ข๊ฒ ํ๋ ค๋ฉด ์ต์ข ๊ฒฐ๊ณผ๋ณด๋ค ์ค๊ฐ ์งํ ์ํ๋ฅผ ์ธ๋ฐํ๊ฒ ๋ ธ์ถํด์ผ ํ๋ฉฐ, ํนํ tool call์ in progress/complete ์ด๋ฒคํธ ๋ถ๋ฆฌ๊ฐ ์ค์ํ๋ค.
- ๋ก์ปฌ ํ์ผ ์์คํ ์ ์ง์ ๋ค๋ฃจ๊ธฐ๋ณด๋ค ํด๋ผ์ด์ธํธ capability๋ฅผ ํตํด ํ๋ก์ํ๋ฉด ๋ฏธ์ ์ฅ ๋ฒํผ๊น์ง ์ผ๊ด๋๊ฒ ๋ฐ์ํ ์ ์์ด ์ค์ ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ๋ ์ ๋ง๋๋ค.