We let an AI agent execute Bash and lived to talk about it โ Sarah Sanders, PostHog
ํ ์ค ํต์ฌ
Bash๋ฅผ ์คํํ ์ ์๋ AI ์์ด์ ํธ๋ ํ๋กฌํํธ๋ง์ผ๋ก๋ ์์ ํด์ง์ง ์์ผ๋ฉฐ, ์ ๋ ฅยท์ถ๋ ฅยท์ปจํ ์คํธ ๊ณต๊ธ๋ง์ ๋ถ๋ฆฌ๋ ๊ฒฐ์ ๋ก ์ ๋ฐฉ์ด์ธต์ผ๋ก ๊ฐ์ธ์ผ ์ค์ ๋ก ๋ฐฐํฌํ ์ ์๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:00
What the Wizard does PostHog์ wizard๋ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ฝ์ด ์ ์ ํ SDK๋ฅผ ์ค์นํ๊ณ ์ด๋ฒคํธ ๊ณ์ธก๊ณผ ๋์๋ณด๋ ์ค์ ๊น์ง ์๋ํํ๋ agentic CLI ๋๊ตฌ๋ค. ์ค์น ์๊ฐ์ 1~2์๊ฐ์์ 5~6๋ถ์ผ๋ก ์ค์ด์ง๋ง, ๋ช ๋ น ์คํ์ด ๊ฐ๋ฅํ ์์ด์ ํธ์ด๊ธฐ ๋๋ฌธ์ ๋ณด์์ ๋ง์น ์ ์ฑ์ฝ๋ ๊ฐ์ ํํ๋ฅผ ๋ค๋ค.
-
2:52
์ ์ฑ์ฝ๋ ์ ๋ฌธ ์ธํธ ์์ด์ ํธ์ ์ํ ๋ชจ๋ธ์ ๋ชจ๋ธ, ํ๋กฌํํธ, ๋๊ตฌ, ์ปจํ ์คํธ ์์ง, UI ๊ฐ์ ๊ตฌ์ฑ์์์ ์กฐํฉ์์ ๋ฐ๋ก ๋๋ฌ๋๋ค. Bash๋ฅผ ์คํํ ์ ์๋ ๊ตฌ์กฐ๋ ๊ฒ๋ณด๊ธฐ์๋ ์ ์ฉํ์ง๋ง, ์๋ชป ์ค๊ณํ๋ฉด ์ ์ฑ์ฝ๋์ ๋๊ฒจ์ค๋ ์ด์ํ์ง ์์ ๊ถํ ๋ฌถ์์ด ๋๋ค.
-
5:28
0๋จ๊ณ: ํ๋กฌํํธ๋ ๋ณด์์ด ์๋๋ค ์ด๊ธฐ ๋ฐฉ์ด๋ prompt์ allow list์ ์์กดํ์ง๋ง, prompt๋ ๋จ์ํ ์ ๋์ผ ๋ฟ ๋ณด์ ํต์ ๊ฐ ์๋๋ค. ๋์์ runtime์ ๋ง์ context๋ฅผ ์ฃผ์ ํ๋ ๊ตฌ์กฐ ๋๋ฌธ์, ์ํ์ฒ๋ผ ๋ณด์ด๋ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ฐพ๊ธฐ ์ํ ์์ ์ค์บ๋๊น์ง ๋ง๋ค์ด์ผ ํ๋ค.
-
7:08
ํ์ฉ ๋ชฉ๋ก์ด ์ค์ ๋ก ๋ง์ ๊ฒ allow list๋ bash๋ฅผ ๊ธฐ๋ณธ ์ฐจ๋จํ๊ณ , ๊ฒ์ฆ๋ ํจํค์ง ์ค์น์ build, type check, lint ์ ๋๋ง ํ์ฉํ๋ค. ํ๊ฒฝ ๋ณ์ ์ ๊ทผ๊ณผ .env ํ์ผ ์ฝ๊ธฐ, ์์์ shell command ์คํ์ ๋ง์๊ณ , ๋น๋ฐ๊ฐ์ vault๋ก ๋ถ๋ฆฌํด ๋ชจ๋ธ์ด ์ง์ ๋ณด์ง ๋ชปํ๊ฒ ํ๋ค.
-
8:00
๊ณต๊ฒฉ์ ํฉ์ณ์ง๊ณ , ์ฝ๋ ๋ฆฌ๋ทฐ๋ ํฉ์ณ์ง์ง ์๋๋ค ๋ณด์ ์ทจ์ฝ์ ์ ๋จ์ผํ ์ ์์ ๋ณ๊ฒฝ์ด ์๋๋ผ, ์๋ก ๋ฌดํดํด ๋ณด์ด๋ ๋ ์์๊ฐ ๊ฒฐํฉ๋๋ฉฐ ์ด๋ฆฐ๋ค. ๊ฐ๋ฐ์๋ diff๋ฅผ ํ๋์ฉ ๋ณด์ง๋ง ๊ณต๊ฒฉ์๋ ์์คํ ์ ์ฒด๋ฅผ ๋ณด๊ณ , innocuousํ ์กฐํฉ์ผ๋ก ๋ฌธ์ ์ด ์ ์๋ค๋ ์ ์ด ํต์ฌ์ด๋ค.
-
8:50
์ปจํ ์คํธ ๋ฐ๊ณผ ๊ทธ ๊ณต๊ธ๋ง wizard์ context engine์ ๋ฌธ์, ์์์ prompt, ์์ ์ฑ์ skill bundle๋ก ํจํค์งํด MCP ์๋ฒ๋ฅผ ํตํด runtime context์ ์ฃผ์ ํ๋ค. ์ด ๊ณต๊ธ๋ง์ open source ์ ์ฅ์์ markdown์ด๋ ์ฃผ์์ด ์ค์ผ๋ ๊ฒฝ์ฐ prompt injection payload๋ฅผ ๋ด๋ถ์ ์ผ๋ก ์ ํต์ํฌ ์ ์์ด, ์์ค์ ์ฌ์ฉ ์์ ์์ชฝ์์ ์ค์บ์ด ํ์ํ๋ค.
-
11:24
ํ๋ํ์ง ์๋ ํ์ง๊ธฐ ๋ง๋ค๊ธฐ warlock์ ์ ๋ ฅ ๋ฌธ์์ด์ ๋ฐ์ ๋ฐ๊ฒฌ ํญ๋ชฉ์ category, severity, recommended action๋ง ๋ฐํํ๊ณ ๊ทธ ์ด์์ ํ์ง ์๋ ๋ถ๋ฆฌ๋ ํ์ง๊ธฐ๋ค. ๋ด๋ถ ๊ท์น์ hand-rolled regex ๋์ Yara๋ฅผ ์ฌ์ฉํด ์์ ๊ฒฐ์ ๋ก ์ ์ผ๋ก ๋์ํ๋ฉฐ, ํ์ง์ ์งํ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ํต์ฌ ์์น์ด๋ค.
-
13:08
๋น๋ฐ์ ์ฐพ๋ ์๋ธ ์์ด์ ํธ ๋๊ท๋ชจ ์์ ์ ์ํด ๋์ด sub agents๊ฐ guardrail์ ์ฐํํด ์ฝ๋๋ฒ ์ด์ค ์ฌ๊ธฐ์ ๊ธฐ์ secret์ ์ฐพ์ผ๋ ค๋ ํ๋์ด ํฌ์ฐฉ๋์ด sub agent ์ฌ์ฉ์ด ์ค๋จ๋๋ค. ๋ํ PII๋ฅผ ๋ค๋ฃจ๋ ๊ท์น์ด ์์ผ๋ฉด ์์ด์ ํธ๋ ์ด๋ฉ์ผ๊ณผ ์ ํ๋ฒํธ๋ฅผ ํ๋ฒํ ๋ฐ์ดํฐ์ฒ๋ผ ์ด๋ฒคํธ์ ๋ฃ๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ ๋ ธ์ถ ๋ฐฉ์ง ๊ท์น์ด ๋ณ๋๋ก ํ์ํ๋ค.
-
14:50
๋ถ๋ฅ: ์ฐจ๋จ์๊ฐ ์๋๋ผ ์กฐ์ธ์ LLM์ ๊ณต๊ฒฉ ์ฌ๋ถ๋ฅผ ํ์ ํด ์ฐจ๋จํ๋ bouncer๊ฐ ์๋๋ผ, ์ด๋ฏธ ๊ฒฐ์ ๋ก ์ ์ผ๋ก ์ฒ๋ฆฌ๋ ๋ค ๋ ธ์ด์ฆ๋ฅผ ์ค์ด๋ adviser๋ก๋ง ์จ์ผ ํ๋ค. rule์ด ๋ง์ผ๋ฉด gate๋ ์ฆ์ ๋ซํ๊ณ session์ ๋๋๋ฉฐ, ๋ชจ๋ธ์ ํ๋จ์ ๊ทธ ์ดํ์๋ง ์ฐธ๊ณ ๋๊ณ ์คํจ ์์๋ fail closed๋ก ์ฒ๋ฆฌ๋๋ค.
-
16:34
๊ท์น์ ๊ตฌ์กฐ ์ข์ ๊ท์น์ metadata, pattern strings, condition, tests์ ๋ค ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋๋ค. ์๋ฅผ ๋ค์ด prompt injection์ ignore ๊ฐ์ ๋จ์ด ํ๋๊ฐ ์๋๋ผ instruction ๋งฅ๋ฝ์ด ์๋ ํํ๊ณผ ํจ๊ป ์ก์์ผ ํ๋ฉฐ, negative test์ ์ค์ ์ํฅ๋๋ฅผ ๊ธฐ์ค์ผ๋ก severity๋ฅผ ์ ํด์ผ ํ๋ค.
-
19:06
์ง๊ธ์ ๋ฐฉ์ด ์ฒด๊ณ, ์ธ ์ค๋ก ํ์ฌ posture๋ sandbox, deny by default, vault, content scan, triage, telemetry๊ฐ ์ธต์ธต์ด ๊ฒฐํฉ๋ ๋ฐฉ์ด ๊น์ด ๊ตฌ์กฐ๋ค. ํต์ฌ์ enforce๋์ง ์์ผ๋ฉด ๋ณด์์ด ์๋๊ณ , ์ํํ ์ ๋ ฅ์ ์ฌ์ฉ์ ๋ช ๋ น๋ง์ด ์๋๋ผ ์์ฒด ๊ณต๊ธ๋ง ์ ์ฒด์ด๋ฉฐ, ๊ณต๊ฒฉ์ ์ฌ๋ฌ ๋ฌดํดํ ์กฐํฉ์ผ๋ก ์ฑ๋ฆฝํ๋ค๋ ์ ์ด๋ค.
์ค๋ฌด ์ธ์ฌ์ดํธ
- ์์ด์ ํธ ๋ณด์์ prompt ๊ฐ์ ๋ณด๋ค ๊ถํ ์ต์ํ, vault ๋ถ๋ฆฌ, ์ ๋ ฅยท์ถ๋ ฅ ์ค์บ ๊ฐ์ ํ๋ค์ค ์ค๊ณ๋ถํฐ ์์ํด์ผ ํ๋ค.
- ์ปจํ ์คํธ ์์ง์ ์ฑ๋ฅ ์ฅ์น์ด๋ฉด์ ๋์์ ๊ณต๊ธ๋ง ์ํ์ด๋ฏ๋ก, ์์ค ์์ฑ ์์ ๊ณผ ๋ฐํ์ ์ฃผ์ ์์ ์ ๋ชจ๋ ๊ฒ์ฌํด์ผ ํ๋ค.
- ํ์ง์ ์งํ์ ๋ถ๋ฆฌํ๊ณ , LLM์ ํ์ ์๊ฐ ์๋๋ผ ์ก์์ ์ค์ด๋ ์กฐ์ธ์๋ก๋ง ์ ํํด์ผ ์ด์ ๊ฐ๋ฅํ ๋ณด์ ์ฒด๊ณ๊ฐ ๋๋ค.