컨텐츠로 건너뛰기

철학

*Khala는 정확함을 약속하지 않는다. Khala가 약속하는 것은 **보정(calibration)*이다. 시스템이 근거가 허락하는 것보다 더 확신에 차 들리지 않게 한다.

그 연결

이 생태계에 이름을 준 설정에서 칼라(Khala)는 한 종족을 하나의 정신으로 묶으면서도 개체를 지우지 않는 정신적 연결을 뜻한다. 여기서는 그것이 좀 더 구체적인 의미를 갖는다. 독립적인 여러 도구가 하나의 보정된 목소리로 말하게 하는 공유된 연결 조직이다. Khala는 실행하는 도구가 아니다. 도구들이 공유하는 연결 그 자체다. 그라운딩된 지식이 머무는 자리이자, 모든 도구가 자신이 무엇을 알고 무엇을 모르는지에 대해 정직하도록 붙잡아 두는 규율이다.

이 연결이 지금 중요한 이유는, 대규모 언어 모델이 놀랍도록 유창하고 놀랍도록 기꺼이 답하기 때문이다. 근거가 있든 없든, 무엇이든 확신에 찬 문장으로 답해 버린다. 그 유창함은 팀이 소프트웨어를 만드는 방식을 바꾸고, 어떤 단일 도구도 혼자서는 막을 수 없는 서로 다른 두 가지 실패 모드를 끌어들인다. Khala는 그 둘 모두에 맞서 도구들을 묶기 위해 존재한다.

같은 정보

Khala의 출발점이 된 기대는 한 문장이다. 서비스를 만들고 운영하는 모든 이해관계자가 같은 정보를 토대로 생각한다. AI 시대는 이 문장을 두 번 바꾼다. “모든 이해관계자”에 이제 에이전트가 포함된다 — 어떤 사람보다 빨리 읽고, 동료에게 물어보는 법이 없는 이해관계자다. 그리고 “정보”는 사실 네 가지 서로 다른 것이며, 각각 다른 속도로 어긋난다:

  1. 조직이 아는 것 — 문서, 명세, 노하우. 창고 하나에 문 둘로 같게 유지된다: 사람과 에이전트가 같은 통제된 코퍼스를 읽는다 — 같은 승인, 같은 최신 버전, 같은 인용. (Nexus)
  2. 왜 만들었는가 — 설계 결정. 코딩 에이전트는 예전이라면 아무도 문서화하지 않았을 마이크로 결정을 수백 개씩 만든다. 이제 기록에는 비용이 들지 않고, 승인은 이름 있는 사람의 책임 있는 행위로 남는다. 서류 작업이 아니라 블랙박스(비행기록장치)다. (Arbiter)
  3. 시스템이 실제로 하고 있는 것 — 트레이스, 메트릭, 로그. Khala는 또 하나의 옵저버빌리티 스택이 되려 하지 않는다. 텔레메트리를 승인된 지식(명세·런북·결정)과 결합해 리뷰와 트러블슈팅을 위한 판단 맥락으로 만든다. (Observer, Nexus 위에서)
  4. 누가 아직 이해하는가 — 이해. 가장 조용한 것. 파일이 아니라 머릿속에 살고, 에이전트 산출물이 늘수록 소리 없이 부식된다. 이것은 창고 곁에서만 관리 가능해진다: 알아야 할 것이 분모, 이름 있는 사람이 여전히 보증(vouch)할 수 있는 것이 분자, 그 간극이 인지부채다 — 측정되고, 목록화되고, 갚을 수 있는. (Adept)

네 번째 정보가 나머지 셋이 한 자리에 사는 이유다. “마땅히 알아야 하는데 모르는 것”은 알아야 할 것의 목록 없이는 측정할 수 없고, 창고가 바로 그 목록이다. 인지부채는 검색 도구에 덧붙인 대시보드로 관리되는 게 아니라, 같은 기판을 원장(ledger)으로 읽는 것이다.

실패 ① — 기계가 거짓말한다

첫 번째 실패는 분명하고, 누구나 한 번쯤 겪은 것이다. 기계가 낡거나 틀린 것을, 실제로 아는 것에 쓰는 것과 똑같은 확신으로 단언한다. 악의로 거짓말하는 게 아니다. 그럴듯한 답이 참인 답보다 만들어 내기가 싸기 때문이다. 당신의 도메인(불변식, 비즈니스 규칙, 당신 시스템에서 어떤 상태 코드가 갖는 의미)을 물어보면, 모델은 그럴듯하게 들리지만 사실이 아닌 답을 기꺼이 지어낸다.

Archon이 그 방어선이다: 도메인 진실에 대한 권위의 창(authority window), 사람이든 에이전트든 “여기서 무엇이 참이며, 누구의 권위로 그러한가?”를 묻기 위해 찾는 단 하나의 자리다. 모델이 어떤 값의 의미나 불변식의 경계를 즉흥적으로 지어내게 두는 대신, Archon은 통제된 출처에 답을 묶고 그 출처가 어디인지 알려 준다. 권위 있는 출처가 없으면 답을 무르게 만들지 않고 답하기를 거부한다. 그 뒤에서 Nexus는 같은 원리가 기대는 그라운딩된 지식 기반이다. 실제 문서와 텔레메트리 위의 검색이어서, 답은 인용 가능한 출처를 갖거나 아예 만들어지지 않는다. 기계가 거짓말을 멈추는 것은 더 똑똑해져서가 아니라, 시스템이 근거 없는 답을 거부하기 때문이다.

실패 ② — 사람이 판단을 포기한다

두 번째 실패는 더 조용하고, 시간이 지날수록 더 갉아먹는다. 사람이 판단을 포기하는 것이다. 어시스턴트가 확신에 찬 계획, 확신에 찬 diff, 확신에 찬 명세를 내놓으면, 가장 저항이 적은 길은 그냥 승인하는 것이다. 꼼꼼히 읽는 것은 노동이고, 고무도장은 공짜다. 그렇게 리뷰는 의례로 전락한다. 아무도 진짜로 읽지 않은 글에 찍히는 초록색 체크. 이번엔 기계가 거짓말한 게 아니다. 안전장치였어야 할 판단을 사람이 그저 내려놓은 것이다.

Arbiter가 그 방어선이다. Arbiter는 인간의 판단을 당연히 있는 것이 아니라, 책임이 따라야 하는 것으로 다룬다: 리뷰되고 승인된 명세와 결정 기록을 코드가 작성되기 의 게이트로 만들어, 판단의 순간이 값싸고 흔적이 남는 곳에서 일어나도록 강제한다. 핵심은 서류 작업을 늘리는 것이 아니라, 결정이 반사 행동이 아니라 기록되고 귀속 가능한 행위가 되게 하는 것이다. 누가 무엇을 왜 승인했는지 묻는 원장(ledger) 앞에서는 고무도장으로 빠져나갈 수 없다.

사각지대 — 아무것도 검증하지 않는 테스트

두 실패 밑에 깔린 사각지대도 있다. AI가 생성한 테스트는 멀쩡해 보인다. 문법적으로 유효하고, 이름도 그럴듯하고, 통과하며, 커버리지도 올라간다. 그런데 정작 검증하는 행위는 사실상 0일 수 있다. 사소한 것을 단언하거나, 결과를 확인하지 않고 코드를 실행만 하거나, 정작 중요한 것을 목(mock)으로 치워 버린다. 인간이든 LLM이든 조언형 리뷰는 이런 테스트를 그냥 통과시키는 경향이 있다. 테스트처럼 보이기 때문이다.

Probe가 그 사각지대를 결정론적으로 닫는다. 테스트 대상 코드를 변이(mutate)시키고 테스트 묶음이 실제로 그것을 알아채는지 확인함으로써, “이 테스트들은 행위를 검증한다”는 무른 주장을 측정 가능한 단단한 사실로 바꾼다. 잡아냈어야 할 변이에서 살아남은 테스트는 연극에 불과했음이 드러난다. 이것은 조언이 아니고 분위기도 아니다. LLM으로 포화된 리뷰 과정이 속임수로 빠져나갈 수 없는 강제 함수다.

논제 — 보정

이 모든 것을 관통하는 실은 **보정(calibration)**이다. Khala는 정확함을 약속하지 않는다. 어떤 도구도 그럴 수 없다. Khala가 약속하는 것은, 무르거나 낡은 답을 단단한 것인 양 단언하지 않는 것이다. 조언형 LLM 매개 리뷰가 무너지는 곳(모든 게 멀쩡해 보이고 확신이 공짜인 곳)에서 Khala는 그 대신 결정론적 그라운딩과 결정론적 검사를 끼워 넣는다:

  • Archon은 주장을 권위에 묶는다.
  • Nexus는 지식을 출처에 묶는다.
  • Arbiter는 승인을 책임 있는 판단에 묶는다.
  • Probe는 테스트 묶음의 약속을 측정 가능한 사실에 묶는다.
  • Adept는 “사람이 아직 이해하고 있다”는 주장을 검사된 이해에 묶는다.

각각은 시스템이 들리는 확신과 실제로 아는 것 사이의 간극을 좁힌다. 그 간극이 닫힌 것, 그것이 보정이다.

보정 지도

도구정체성무엇을 보정하는가대상Khala 관계시점
Nexus공유 그라운딩 지식 기반그라운딩된 지식 (출처 없음 → 차단)모두본체항상
Archon도메인 진실에 대한 권위의 창기계의 진실성기획자 + 개발자 + 에이전트생산자 + 읽기 창항상
Arbiter인간 판단의 책임 원장인간의 판단의사결정자생산자 (승인된 명세)결정 게이트 (코드 이전)
Observer그라운딩 에이전트엔지니어링 산출물 (리뷰/트러블슈팅)엔지니어 + AI소비자코드 이후 + 런타임
Probe변이 기반 테스트 품질 하네스”이 테스트들은 행위를 검증한다”는 주장테스트를 쓰고 리뷰하는 개발자독립 (결정론적)커밋 이전 (게이트, 로드맵 M3)
Adept인지부채 측정기”이름 있는 사람이 아직 이해한다”는 주장팀 + 산출물 책임자소비자 (창고를 분모로 읽음)상시 (내용이 바뀌면 보증이 낡는다)

도구들은 어떻게 연결되는가

흩어진 소스들 — 문서, 명세, 트레이스, 설정, 노하우 — 가 하나의 연결(Khala)로 모인다. 개발자와 에이전트는 거기서 같은 공유 뷰를 읽고, Adept는 같은 연결을 원장으로 읽는다: 알아야 할 것을 분모로, 보증 커버리지로 측정한다. 도구들은 오직 Khala를 통해서만 연결된다.

가장 중요한 아키텍처 관계는 동시에 가장 단순하다. 생산자 도구들은 서로를 직접 호출하지 않는다. 그들은 오직 Khala를 통해서만 연결된다. Archon은 주장과 값을 공유된 본체에 게시하고, Arbiter는 승인된 명세를 거기에 게시하며, 그라운딩된 지식이 필요한 모든 것은 같은 자리에서 읽는다. 이것이 생태계를 엉킨 것이 아니라 일관된 것으로 유지하는 비결이다. N²개의 배선이 아니라, 하나의 연결.

Observer는 그 연결의 반대편에 소비자로 앉아 있다. 엔지니어링 작업(PR 범위, API 계약, 트러블슈팅)을 위한 그라운딩 에이전트이며, 생산자에 직접 손을 뻗는 게 아니라 Khala에 질의함으로써 결론에 도달한다. 그리고 Archon은 도메인 진실에 대한 단 하나의 권위의 창이다. 개발자든 에이전트든 도메인에서 무엇이 참인지 알아야 할 때, 물어볼 창은 정확히 하나이고, 그 답은 출처와 함께 온다.