이 강연에서 프랭크 코일은 LLM과 에이전트의 확률적 추론만으로는 실제 업무의 오류를 막기 어렵다고 설명한다. 그는 에이전트 바깥에 온톨로지와 논리적 검증 계층을 두고, 신경망의 유연한 판단과 규칙 기반 시스템의 엄격한 제약을 결합하는 신경기호적 AI(neurosymbolic AI)를 해법으로 제시한다. 핵심은 "Pydantic으로 입구에서 타입을 검사하고, 온톨로지로 결과를 검증한 뒤에만 에이전트가 행동하게 하자"는 것이다.
1. AI 시대를 맞은 교육과 실천의 철학
강연자는 자신을 UC 버클리에서 가르치는 교육자이자, 약 30~35년 동안 컴퓨터과학을 공부하고 가르쳐 온 사람이라고 소개한다. 그는 지금이 컴퓨터과학 학생들에게 매우 중요한 시기라고 말한다. 과거에는 컴퓨터과학 학위만으로도 안정적인 일자리를 얻을 수 있었지만, 이제는 AI의 등장으로 그 보장이 약해졌기 때문이다. 그럼에도 강연장에 약 5,000명이 모였다는 사실을 들어, AI와 에이전트가 앞으로 나아갈 중요한 방향임을 강조한다.
그가 던지는 질문은 새로운 AI의 세계를 어떻게 잘 활용할 것인가이다. 오늘 강연에서는 그 답의 하나로 에이전트와 온톨로지가 어떻게 결합할 수 있는지를 설명하겠다고 말한다.
하지만 본론에 들어가기 전에, 그는 자신의 교육 철학부터 소개한다. 그 철학은 시인이자 예술가인 시스터 코리타 켄트의 말에서 비롯되었고, 전위 음악가 존 케이지를 통해 널리 알려진 문장이라고 한다.
"아무것도 실수가 아니다. 승리도 없고, 실패도 없다. 오직 만들어 가는 것만 있다."
코일은 오늘날 특히 중요한 것은 책을 읽는 것만이 아니라 직접 무언가를 만들고 시도하는 것이라고 말한다. 결과가 완벽하지 않아도 직접 만들면서 배우게 된다는 뜻이다.
그는 또한 글쓰기와 손으로 기록하는 행위를 중요하게 생각한다. 초기 경력은 신경과학 분야였고, 에이전트 AI가 인지과학을 다시 불러오면서 그 분야로 돌아가고 있다고 설명한다. 키보드로 입력할 때는 뇌가 키보드의 글자에 집중하지만, 종이에 펜이나 연필로 쓰면 손의 움직임과 시각, 감각 등 더 많은 감각 체계가 함께 작동한다는 것이다.
"감각을 사용하세요. 노트와 펜, 연필을 준비하세요. 그림을 그리고, 직접 써 보세요."
그는 단순히 타이핑하는 것보다 손으로 쓰고 그리는 방식이 더 빠르고 깊은 학습으로 이어질 수 있다고 말하며 본격적인 강연을 시작한다.
2. 에이전트와 온톨로지라는 두 계보
코일은 에이전트와 온톨로지에는 각각 오랜 역사와 계보가 있다고 설명한다.
에이전트의 계보
에이전트라는 개념은 최근 갑자기 등장한 것이 아니다. 초기 인공지능 연구자였던 존 매카시, 마빈 민스키 등의 연구에서 이미 인공지능이 인간처럼 주변을 인식하고, 판단하고, 행동하는 시스템이 될 수 있다는 생각이 나타났다.
인공지능이라는 용어는 1956년 여러 연구자들이 모여 미래의 컴퓨팅과 지능을 논의하면서 등장했다. 이후 에이전트라는 개념은 점차 다음과 같은 구조로 발전했다.
- 주변을 인식하고
- 상황을 바탕으로 결정한 뒤
- 실제로 행동하는 것
오늘날 사람들이 말하는 AI 에이전트도 바로 이 구조를 따른다. LLM이 정보를 해석하고, 어떤 도구를 사용할지 결정하며, 도구 호출을 통해 외부 세계에 영향을 주는 방식이다.
온톨로지의 계보
온톨로지는 더 오래된 개념이다. 코일은 그 기원을 고대 그리스 철학자 아리스토텔레스까지 거슬러 올라간다. 아리스토텔레스는 "존재란 무엇인가"를 체계적으로 분류하려 했고, 존재의 범주를 정리했다.
이러한 사고방식은 오늘날의 지식 표현, 그래프 데이터베이스, 지식 그래프와 연결된다. 이후 철학자 윌러드 밴 오먼 콰인과, 1993년에 온톨로지에 대한 유명한 정의를 제시한 톰 그루버 등이 이 개념을 더욱 형식화했다.
온톨로지는 다음과 같이 이해할 수 있다.
"공유된 개념화를 형식적으로 명세한 것"
즉, 특정 조직이나 분야가 세상을 어떻게 이해하는지를 개체, 속성, 관계, 규칙의 형태로 정리한 것이다. 에이전트에게 온톨로지를 제공한다는 것은, 에이전트가 활동하는 도메인과 그 안의 개념 구조를 명확하게 알려주는 일이다.
3. 신경기호적 AI: 확률적 모델 바깥에 논리를 세우기
오늘날에는 확률적인 에이전트와 LLM이 빠르게 발전하고 있다. 동시에 온톨로지, 규칙 기반 시스템, 지식 그래프처럼 더 형식적이고 논리적인 표현도 존재한다. 코일은 이 둘의 결합을 신경기호적 AI라고 부른다.
신경기호적 AI는 크게 두 부분으로 구성된다.
- 신경망과 LLM: 언어를 이해하고, 맥락을 파악하며, 유연하게 추론한다.
- 기호적 AI와 논리 시스템: 규칙, 타입, 제약 조건을 적용하고 잘못된 결론을 차단한다.
코일이 주장하는 핵심은 LLM을 폐기하자는 것이 아니다. 오히려 LLM의 장점인 유연성과 창의성을 살리되, 그 바깥에 논리적 가드레일을 설치해야 한다는 것이다.
"신경기호적 AI는 LLM을 가드레일 안에 머물게 하는 방법입니다."
LLM은 본질적으로 확률적이다. 어떤 문장이 사실인지 논리적으로 증명해서 출력하는 것이 아니라, 지금까지의 문맥을 바탕으로 다음에 올 가능성이 높은 토큰을 생성한다. 따라서 환각은 단순한 예외가 아니라 LLM의 작동 방식에서 자연스럽게 생기는 현상이다.
코일은 이를 인간의 상상력과도 비교한다. 인간도 존재하지 않는 것을 상상하고, 그 상상을 현실로 만들어 낸다. LLM 역시 그런 방식으로 작동하기 때문에 유연한 아이디어를 낼 수 있지만, 실제 결제·환불·배송 같은 업무에 적용할 때는 그만큼 위험할 수 있다.
"LLM은 본질적으로 확률적입니다. 사람들이 환각을 걱정하지만, 그것은 사실 대규모 언어 모델의 특징이기도 합니다."
따라서 LLM의 내부 판단만 믿는 것이 아니라, 외부에 명시적인 논리 계층을 두고 행동 전에 결과를 검사하는 구조가 필요하다.
4. 온톨로지는 무엇이며 어떻게 만드는가
코일은 온톨로지가 어렵고 거대한 철학 개념처럼 들릴 수 있지만, 기본적으로는 간단하다고 설명한다. 온톨로지는 개체와 개체 사이의 관계, 그리고 개체가 가진 속성을 표현하는 구조다.
예를 들어 구매·고객지원 시스템에는 다음과 같은 개체가 있을 수 있다.
- 주문
- 고객
- 결제
- 환불
- 고객지원 담당자
- 배송 상태
그리고 이들 사이에는 다음과 같은 관계가 있다.
- 고객이 주문을 한다.
- 주문에 결제가 연결된다.
- 주문은 환불될 수 있다.
- 고객지원 담당자가 고객의 문의를 처리한다.
- 주문에는 배송 상태가 부여된다.
그래프 데이터베이스와 온톨로지
전통적인 관계형 데이터베이스는 데이터를 표와 열에 저장한다. 새로운 정보를 추가하려면 테이블에 새로운 열을 만들고 구조를 변경해야 하는 경우가 많다.
반면 그래프 데이터베이스는 개체와 관계를 연결하는 방식이므로 새로운 속성이나 관계를 비교적 유연하게 추가할 수 있다.
"그래프 데이터베이스에서는 다른 항목이나 속성, 관계를 그냥 연결할 수 있습니다."
이런 구조는 조직의 업무 개념을 계속 확장하거나, 서로 다른 데이터 소스를 연결할 때 유리하다.
온톨로지를 만드는 두 가지 접근법
온톨로지를 만드는 방법은 크게 하향식(top-down)과 상향식(bottom-up)으로 나뉜다.
하향식 접근에서는 해당 분야의 전문가들이 모여 도메인을 분석한다. 예를 들어 구매 시스템이라면 어떤 개체가 존재하는지, 각 개체가 어떤 속성을 갖는지, 서로 어떻게 연결되는지를 먼저 정리한다.
"무엇이 있습니까? 구매 주문이 있고, 고객이 있고, 고객지원 담당자가 있습니다. 이것들을 구조화하고, 속성과 관계를 정의합니다."
상향식 접근에서는 실제 데이터와 사용 사례에서 출발한다. 고객 문의나 거래 기록을 살펴보면서 반복적으로 등장하는 개체와 관계를 발견하고, 이를 온톨로지에 추가한다.
두 접근법 모두 유용하며, 실제로는 전문가의 개념 모델과 현장에서 쌓이는 데이터를 함께 활용하는 방식이 효과적이다.
5. 과거 전문가 시스템의 교훈과 기존 분류 체계의 활용
코일은 온톨로지를 만드는 하향식 접근이 1980년대의 전문가 시스템(expert systems)과 닮았다고 설명한다. 당시에는 기호적 AI와 규칙 기반 시스템이 인공지능의 미래라고 여겨졌다.
많은 기업이 전문가 시스템에 투자했고, 일본에서는 1980년대 후반 국가 차원의 미래 기술 프로젝트도 추진했다. 하지만 전문가 시스템은 확장성 문제를 해결하지 못했다. 규칙을 계속 추가해야 했고, 시스템이 복잡해질수록 유지하기가 어려워졌다.
"하지만 그것들은 확장되지 못했습니다. 확장되지 못했고, 결국 우리는 AI 겨울로 들어갔습니다."
이후 신경망이 다시 주목받았지만, 초기에는 충분한 컴퓨팅 성능이 없었다. 1960년대부터 신경망 연구는 존재했지만, 이를 대규모로 학습시킬 하드웨어가 부족했다. 코일은 GPU의 발전, 특히 게임 그래픽을 위해 개발된 GPU가 신경망의 부흥을 가능하게 했다고 설명한다.
"당시에는 Nvidia가 없었습니다. GPU가 없었기 때문에 신경망을 현실로 만들 수 없었습니다."
오늘날의 AI는 신경망과 대규모 컴퓨팅 자원의 결합으로 가능해졌지만, 코일은 이제 다시 기호적 AI의 장점을 돌아볼 시점이라고 주장한다.
이미 존재하는 온톨로지를 재사용하기
모든 조직이 온톨로지를 처음부터 만들 필요는 없다. 지난 15~20년 동안 여러 분야에서 이미 다양한 분류 체계와 온톨로지가 만들어져 있기 때문이다.
대표적인 예는 다음과 같다.
- schema.org: 웹 문서와 서비스에서 사용하는 개체와 관계를 정의한다.
- FOAF(Friend of a Friend): 사람과 사회적 관계를 표현하는 데 사용된다.
- Dublin Core: 논문, 책, 연구 자료 등의 메타데이터를 설명한다.
- DBpedia: 위키백과의 정보를 구조화된 지식 그래프로 표현한다.
코일은 이런 기존 자원을 활용하면 바퀴를 새로 발명할 필요가 없다고 말한다.
"이미 존재하는 것들을 활용하세요. 모든 것을 처음부터 다시 만들 필요는 없습니다."
위키백과에서 검색할 때도 단순한 텍스트 문서만 찾는 것이 아니라, 그 배경에 있는 거대한 그래프 구조와 지식 표현을 활용한다는 설명이다.
6. RDFS와 OWL이 제공하는 추론과 제약
온톨로지는 개체와 관계를 표현하는 것에서 끝나지 않는다. 여기에 추론 규칙과 제약 조건을 추가하면 시스템이 명시적으로 적혀 있지 않은 정보까지 도출하거나, 잘못된 데이터를 찾아낼 수 있다.
코일은 이를 위해 RDFS와 OWL 같은 기술을 소개한다. 이 기술들은 그래프 옆에 놓여 온톨로지의 의미를 확장하고, 관계의 조건과 규칙을 적용한다.
RDFS의 도메인과 범위
예를 들어 가르친다(teaches)라는 관계가 있다고 하자. 이 관계의 주체, 즉 도메인이 교사라고 정의할 수 있다.
그러면 다음 문장이 있을 때,
"밥이 스쿠터를 가르친다."
시스템은 밥이 교사라는 사실을 추론할 수 있다. 만약 모든 교사가 사람이라고 정의되어 있다면, 밥이 사람이라는 정보도 자동으로 얻을 수 있다.
반대로 가르친다의 대상, 즉 범위를 학생이라고 정의하면 스쿠터가 학생이라는 사실도 도출할 수 있다.
이처럼 온톨로지는 단순히 입력된 문장을 저장하는 것이 아니라, 미리 정의된 관계의 의미를 바탕으로 새로운 정보를 추론한다.
OWL의 전이 관계와 기능적 속성
OWL에서는 더 다양한 논리적 관계를 정의할 수 있다. 예를 들어 조상이다(ancestor of)라는 관계가 전이적이라고 하자.
- 수가 메리의 조상이다.
- 메리가 앤의 조상이다.
그러면 수가 앤의 조상이라는 사실을 자동으로 추론할 수 있다.
또한 기능적 속성(functional property)을 정의할 수도 있다. 기능적 속성이란 어떤 개체가 특정 속성에 대해 하나의 값만 가져야 한다는 뜻이다. 예를 들어 사람에게 아버지는 한 명뿐이라는 규칙을 둘 수 있다.
만약 밥과 BB가 모두 짐의 아버지라고 기록되어 있다면, 시스템은 밥과 BB가 사실상 동일한 인물을 다른 방식으로 표현한 것일 가능성을 추론할 수 있다.
이런 규칙은 그래프 안에 직접 저장된 사실이 아니라, 그래프에 적용되는 추가적인 논리 계층이다. 바로 이 계층이 에이전트의 행동을 검사하는 데 활용될 수 있다.
7. 에이전트 루프의 힘과 위험
코일은 이제 에이전트 시스템의 핵심인 루프(loop)를 설명한다. 프로그래밍에서 오래전부터 프로그램은 세 가지 기본 요소로 구성된다고 논의되어 왔다.
- 순차 실행: A를 실행한 뒤 B, C를 실행한다.
- 조건문: 조건에 따라 다른 작업을 수행한다.
- 반복문: 특정 작업을 계속 반복한다.
1966년 뵘과 야코피니는 이 세 가지 요소가 갖춰지면 해당 프로그래밍 언어가 계산 가능한 모든 것을 표현할 수 있다고 설명했다. 에이전트 시스템에 루프가 추가되면서, 에이전트는 한 번 답변하고 끝나는 것이 아니라 다음과 같은 작업을 반복할 수 있게 된다.
- 상황을 분석한다.
- 도구를 호출한다.
- 결과를 확인한다.
- 다음 행동을 결정한다.
- 필요하면 다른 도구를 호출하거나 사람에게 도움을 요청한다.
이 반복 구조 덕분에 에이전트는 훨씬 강력해진다. 하지만 루프는 동시에 위험 요소이기도 하다.
"루프는 깨질 수 있습니다. 프로그래머라면 누구나 무한 루프에 빠져 본 적이 있을 겁니다. 좋지 않죠."
에이전트가 무한히 반복하거나, 여러 에이전트가 서로 대화하면서 처음 목표에서 벗어날 수 있다. 이를 드리프트라고 볼 수 있다. 또한 반복이 길어질수록 토큰 사용량이 증가해 비용이 커진다.
"루프는 비용이 들 수 있습니다. 루프가 계속되면 토큰 수가 올라갑니다."
따라서 에이전트 루프에는 단순한 프롬프트뿐 아니라 중간 검증과 종료 조건이 필요하다.
8. Claude 도구 사용 루프에 검증 계층 넣기
코일은 Claude를 사용하는 간단한 에이전트 루프 예제를 보여준다. 코드에는 while true 형태의 반복문이 있고, 모델과 프롬프트, 도구가 연결되어 있다.
LLM 자체는 외부 세계에서 직접 행동할 수 없다. LLM이 하는 일은 주어진 문맥을 바탕으로 다음 토큰을 높은 확률로 예측하는 것이다.
"LLM은 아무것도 직접 할 수 없습니다. 할 수 있는 일은 다음 단어를 높은 확률로 제시하는 것뿐입니다."
하지만 도구를 제공하면 LLM은 해당 도구를 어떤 방식으로 사용할지 결정할 수 있다. 예를 들어 도구의 입력 매개변수를 설정하고, 다음과 같은 형태의 도구 호출을 반환한다.
- 어떤 도구를 사용할지 결정한다.
- 필요한 입력 매개변수를 구성한다.
- 도구 호출 요청을 반환한다.
- 실제 도구 실행은 외부 코드가 담당한다.
LLM은 도구를 직접 실행하는 것이 아니라, 실행에 필요한 호출 정보를 생성한다.
도구 사용이 필요한 경우 응답의 종료 이유가 tool use로 표시되고, 프로그램은 그 신호를 확인한 뒤 실제 도구를 실행한다. 도구가 실행되면 결과가 다시 LLM에 전달되고, 에이전트는 그 결과를 바탕으로 다음 단계를 결정한다.
코일은 바로 이 도구 실행 이후의 지점에 온톨로지 기반 검증기를 넣을 수 있다고 설명한다.
- LLM이 도구 호출을 제안한다.
- 프로그램이 도구를 실행한다.
- 도구의 결과를 검증기에 전달한다.
- 검증기가 온톨로지의 규칙과 제약을 확인한다.
- 결과가 합리적이면 다음 단계로 진행한다.
- 문제가 있으면 LLM에 다시 수정하도록 하거나, 사람에게 판단을 요청한다.
"핵심은 입력을 검사로 둘러싸는 것입니다."
에이전트의 판단을 무조건 실행하지 않고, 행동과 결과 사이에 논리적 검문소를 설치하는 구조다.
9. Pydantic은 입구에서, 온톨로지는 원장에서
코일은 파이썬 개발자라면 Pydantic을 살펴볼 필요가 있다고 말한다. 파이썬은 기본적으로 타입이 엄격하게 고정되지 않은 언어이기 때문에, 같은 변수에 숫자와 문자열을 넣어도 큰 문제가 발생하지 않는다.
예를 들어 하나의 변수에 먼저 숫자 20을 넣었다가, 이후 문자열 "hello"를 넣는 것도 가능하다. Pydantic은 이런 입력값에 명시적인 타입과 구조를 부여한다.
따라서 에이전트가 도구를 호출하기 전에 Pydantic으로 다음을 검사할 수 있다.
- 매개변수가 필요한 형식인지
- 숫자여야 할 값이 문자열로 들어오지 않았는지
- 필수 필드가 빠지지 않았는지
- 허용되지 않은 값이 입력되지 않았는지
그 다음 도구 실행 결과는 온톨로지로 검증한다.
"Pydantic은 입구에서, 온톨로지는 원장에서."
이 표현은 역할의 차이를 잘 보여준다. Pydantic은 요청의 타입과 형식을 검사하고, 온톨로지는 업무 도메인 안에서 그 결과가 논리적으로 타당한지 검사한다.
코일은 또한 에이전트가 부작용을 최소화해야 한다고 강조한다. 에이전트가 검증되기도 전에 데이터베이스를 변경하거나 결제를 실행하는 식으로 움직이면 위험하다.
"에이전트는 가능한 한 부작용이 없어야 합니다."
먼저 판단과 도구 호출을 구성하고, 온톨로지 검증을 통과한 뒤에만 실제 데이터 변경이나 외부 행동을 허용해야 한다는 뜻이다.
10. 영어 지침만으로 막기 어려운 오류들
강연의 마지막 부분에서 코일은 OWL의 논리적 제약이 실제로 어떤 오류를 잡아낼 수 있는지 보여준다. 그가 제시한 예시는 설명문이나 프롬프트만으로는 막기 어렵지만, 온톨로지로는 비교적 명확하게 검출할 수 있는 문제들이다.
같은 주문에 두 번 환불하기
한 주문은 한 번만 환불할 수 있다는 규칙을 정의하면, 동일한 주문에 두 번째 환불이 시도되는 순간 오류로 처리할 수 있다.
"같은 주문에 두 번째 환불을 하는 것은 문제입니다. 온톨로지는 이것을 잡아낼 수 있지만, 영어로 설명해서 처리하려면 매우 까다롭습니다."
LLM에게 "환불은 한 번만 하라"고 설명할 수는 있지만, 실제 상황에서 주문 식별자와 거래 상태를 정확히 추적하고 중복 요청을 막는 일은 단순한 문장 지침만으로 보장하기 어렵다.
구매자 대신 고객지원 담당자에게 지급하기
지급 대상이 구매자인지 고객지원 담당자인지 구분해야 하는 경우도 있다. 온톨로지에서 고객과 고객지원 담당자를 서로 다른 종류의 개체로 정의하면, 지원 담당자에게 지급하는 잘못된 요청을 차단할 수 있다.
"고객과 고객지원 담당자는 서로 다른 개체입니다."
이는 OWL의 서로 배타적인 개체 유형, 즉 disjoint property 또는 disjoint class와 같은 제약으로 표현할 수 있다.
'아마 배송됨' 같은 허구의 상태
LLM은 때때로 시스템에 정의되지 않은 상태를 만들어 낼 수 있다. 예를 들어 주문 상태가 다음처럼 반환될 수 있다.
"아마 배송됨"
하지만 온톨로지에서 주문 상태의 허용값을 다음 세 가지로 제한하면 문제가 즉시 드러난다.
- 결제 완료
- 배송 완료
- 환불 완료
정의되지 않은 "아마 배송됨" 같은 값은 허용되지 않는다.
"상태는 결제 완료, 배송 완료, 환불 완료 중 하나여야 합니다. 다른 것은 아무것도 없어야 합니다."
이처럼 온톨로지는 허용 가능한 값의 목록, 개체 간의 구분, 한 번만 가능한 행위, 필수 관계 등을 논리적으로 명시할 수 있다.
11. 결론: 확률적 추론과 논리적 통제를 함께 사용하기
코일의 결론은 LLM과 에이전트를 믿지 말자는 것이 아니다. 오히려 LLM의 확률적이고 유연한 추론 능력을 활용하되, 중요한 행동은 반드시 외부의 논리 시스템을 통과시켜야 한다는 주장이다.
온톨로지와 RDFS, OWL 같은 기술을 사용하면 다음과 같은 역할을 수행할 수 있다.
- 에이전트가 사용하는 개체와 관계를 명확히 정의한다.
- 허용 가능한 값과 타입을 제한한다.
- 데이터 사이의 논리적 모순을 찾아낸다.
- 도구 호출 결과가 업무 규칙에 맞는지 확인한다.
- 문제가 있으면 에이전트에게 재시도하게 하거나 사람에게 넘긴다.
- 검증되지 않은 상태에서 데이터베이스나 결제 시스템을 변경하지 못하게 한다.
결국 강연자가 제안하는 구조는 다음과 같이 요약할 수 있다.
"확률적 추론은 안쪽에 두고, 논리는 바깥에 두세요."
에이전트가 자유롭게 생각하고 도구 사용을 제안하도록 하되, 실제 행동은 타입 검증과 온톨로지 검증을 통과한 뒤에만 허용하는 것이다. 그는 마지막에도 처음에 소개했던 교육 철학을 다시 강조한다.
"아무것도 실수가 아니다. 승리도 없고, 실패도 없다. 오직 만들어 가는 것만 있다."
강연자는 자신의 웹사이트와 연락처를 소개하며 발표를 마무리하고, 코드와 음악을 함께 다루는 자신의 프로젝트 이름이 존 콜트레인의 재즈 앨범 〈A Love Supreme〉에서 영감을 받았다고 덧붙인다. 이후 청중의 박수와 함께 강연이 끝난다.
