프롬프트가 TextField에 있으면 너의 게 아니야
프롬프트는 소프트웨어야. input, output, regression, dependency (모델 버전, schema 버전), lifecycle 다 있어. database row나 Notion 페이지에 있는 configuration string으로 다루거나 — 더 나쁘게 — 코드 안 inline literal로 두면 가장 기본적인 엔지니어링 hygiene을 못 해. diff, review, rollback 다 없어져.
최소 versioning 모양
- 프롬프트는 source control (git)에, 자기 파일에, diff 가능한 확장자 (.md, .prompt)로.
- 각 프롬프트는 파일명이나 frontmatter에 version 박혀 있어 (
v3.md,summarize@5.prompt). - 각 프롬프트는 어느 모델에 맞춰 튜닝됐는지 명시 — 코드랑 언어 버전처럼 coupled야.
- 각 프롬프트는 sibling eval suite가 있어서 merge gate.
- production은 versioned key로 프롬프트 read하지, UI string으로 안 read해.
이게 보이는 것보다 훨씬 중요한 이유
versioning 없는 프롬프트 변경은 invisible해. 지원 티켓이 "AI가 점점 나빠진다"고 비난하는데 진짜 원인은 이틀 전 누군가의 tweak이고 — 아무도 못 찾아. versioning이 prompt engineering을 engineering으로 만드는 거야.
감사합니다. 요즘 모델은 동적으로 자원을 조절하는 부분이 있어서 더욱 어려운 부분이 있을 것 같네요. ^^