지난 20일 정도 동안 제가 만드는 AI 에이전트 시스템 indiebizOS를 위해서 만드는 DSL(domain specific language)인 ibl에 대한 최적화 작업을 해왔습니다. 오늘은 그 작업을 되돌아보면서 그게 뭐고 왜 필요한지에 대해서 정리해 볼까 합니다.
AI 에이전트는 이제 사방에서 쓰입니다. AI가 브라우저에서 채팅만 하는게 아니라 많은 사람들의 컴퓨터에서 직접 파일을 만들고 변경하면서 일을 해내고 있습니다. openclaw같은 시스템은 큰 화제를 얻어서 맥미니 품절 사태를 가져오기도 했지요. 그런데 사실 진정한 AI 에이전트 시스템이라고 할 수 있는 즉 AI OS라고 할 수 있는 시스템은 아직 나오지 못했습니다. 클로드의 코워크 같은 시스템도 openclaw같은 시스템도 어림없습니다.
그건 우리가 쓰고 있는 PC를 보면 압니다. PC를 몇주 몇달 쓰면 그 PC는 이미 수없이 많은 프로그램들로 가득합니다. 그것들 중에는 매일 쓰는 것도 있지만 언제 설치했는지 알 수 없는 것들도 있습니다. 우리는 그런 PC를 써서 여러가지 일들을 합니다. 만약 우리가 AI 에이전트를 정말 진지하게 쓰겠다면 비슷한 상황에 빠질 겁니다. 우리는 물건을 사거나, 음악을 듣거나, 사업정보를 조사하고, 뉴스를 보고, 건강상담을 하고, 동영상을 만들고, 홈페이지와 SNS를 관리하는 일을 모두 AI 에이전트와 하게 되겠지요. AI 에이전트가 도움이 되면 될 수록 필요한걸 전부 AI 에이전트에게 부탁해서 정보를 관리하게 할거고 그럼 해야할 일은 점차로 늘어나게 됩니다.
그런데 그렇게 되면 수 많은 스킬과 도구를 AI 에이전트가 다뤄야 하는데 현재로서는 그게 잘 안됩니다. 물론 aI는 빠르게 똑똑해지고 있지만 빠르고 싸게 일을 하려면 우리는 강력한 AI가 어떻게든 해주겠지 하는 식으로는 ai 에이전트를 쓸 수가 없습니다. 한없이 도구 설명을 프롬프트에 넣으면 토큰 낭비가 심해지는 건 둘째치고 나중에는 혼동이 일어납니다. 도구는 딱 하나쓰는데 도구를 200개쯤 주면 어느 도구를 골라야 하는지 모르는 거죠. 이게 PC의 OS와 AI OS의 차이입니다. PC에서는 뭘 해야 할지를 미리 정확히 정해놓거나 인간이 프로그램을 골라서 구동합니다. AI OS에서는 AI가 적절하게 도구를 골라써야 합니다. 이 문제는 여러가지로 표현되는데 그게 컨텍스트의 문제이기도 하고 온톨로지의 문제이기도 하며 월드 모델이 필요하다는 주장과도 이어지고, 피지컬 AI가 일을 잘 하는 문제와도 이어집니다. 이건 AI 에이전트가 일을 할 때 자신이 어떤 문맥속에 혹은 환경속에 있는가를 알아야 제대로 일할 수 있다는 겁니다.
DSL을 만드는 건 도구를 그냥 다 주는게 아니라 도구를 어떤 언어의 단어처럼 처리하고 AI 에이전트는 그 언어를 사용하게 하는 식으로 처리하는 겁니다. AI 에이전트는 파이선 실행기를 도구로 가지는 것처럼 그냥 ibl 실행기를 도구로 가지고 ibl 실행기가 액션들을 하는 거죠. 이게 도구를 그냥 다 주는 것과 다른건 언어의 구조가 비슷한 도구들을 비슷하게 처리한다는 정리가 자연히 들어 간다는 겁니다. 그러면 AI가 많은 도구를 잘 쓸 수 있다는 거죠. 이건 말하자면 의미없는 숫자의 나열을 그냥 외우는게 아니라 어떤 의미를 가진 구조를 통해 정리하면 외우는게 훨씬 쉬운 것과 같죠. 그리고 이게 소위 온톨로지라고 부르는 것의 기본 아이디입니다. 예를 들어 공장에서 AI가 일을 하게 만들려면 그 공장에서 정보가 흐르는 구조를 하나의 언어처럼 표현해서 AI가 그걸 잘 다루게 만드는 겁니다.
그런데 제가 만들고자 하는 것은 특정 공장에서 돌아가는 AI 에이전트 시스템이 아니라 보편적인 것이기 때문에 저는 노드|액션이라는 구조로 ibl이라는 걸 만들어 봤습니다. 즉 이 세상은 노드라는 걸로 이뤄져 있고 그 노드는 액션들을 할 수 있으니까 노드|액션의 형태로 노드에게 행동하도록 부탁하면 일이 이뤄진다고 AI에게 알려주는 겁니다. 저는 처음에는 굉장히 많은 수십개의 노드에서 시작했지만 시간이 지남에 따라 계속 이 노드의 수를 조정해 왔습니다. 이건 언어의 최적화라고 할 수 있는데 그래서 나중에는 노드가 7개까지 줄었죠. 액션의 수는 331개였습니다. source같은 노드는 100개 이상의 액션을 하는데 왜냐면 source는 어떤 정보 소스에서 정보를 받아오는 액션들을 모두 포함하는 노드이기 때문입니다. 숫자는 많지만 하는 일은 비슷하죠. 부동산 실거래가를 가져오는 것이나 카카오 네비 정보를 가져오는 것이나 비슷하니까요.
이렇게 ibl이라는 DSL을 도입한 결과 저는 하나의 AI 에이전트가 331개의 모든 액션들을 다 취할 수 있게 만들 수 있었습니다. 그러면서도 프롬프트는 길지 않았으니까 ibl을 도입한 보람이 있었던 셈이빈다. 하지만 이건 시작에 불과하지요. 제가 진짜로 원하는 것은 좋은 언어에 기반해서 AI 에이전트가 지능을 훨씬 더 키우는 것이니까요. 그걸 위해서는 더 좋은 언어의 설계가 꼭 필요합니다. 그렇게 최적화를 계속한 결과 제가 지금 도달한 ibl은 5개의 노드를 가지게 되었습니다. 그건 sense, self, tools, others, forge 입니다.
이건 의도적으로 인간의 몸과 세계를 언어에 담은 겁니다. 우리는 바깥 세상을 감각기관으로 관찰하고 정보를 습득하죠. 그래서 ibl은 sense 노드를 가집니다. 이건 주가에서 금값같은 바깥에 세상에 대한 정보를 문의하고 수동적으로 받아오는 노드입니다. self는 내부적으로 가진 정보에 접근하는 겁니다. PC에 있는 파일에 정보를 기록할 수도 있고 그걸 가공할 수도 있습니다. self는 내부이므로 내가 마음대로 정보를 바꿀 수 있죠. sense가 주는 정보는 내가 조정할 수는 없는 정보입니다. 애플의 주가를 내가 바꾸는게 아니니까요. tools는 몸의 손발과 같습니다. 그건 외부 세계와 상호작용하는 도구들입니다. 예를 들어 browser action은 어떤 웹사이트에 가서 정보를 단순히 읽어오는게 아니라 어떤 버튼을 누르고 들어가서 뭔가를 조회하는 식의 상호작용을 하는 거고, 안드로이드폰 컨트롤은 안드로이드폰을 컨트롤 하는 거지요. others는 이 세상에는 나 즉 AI 에이전트 말고 다른 행동의 주체가 있다는 것을 말합니다. 메신저 메시지를 보내거나 이메일을 보내고, 다른 AI 에이전트에게 일을 위임하기 위한 노드입니다. forge는 작업장입니다. 이것은 명령을 내리면 복잡한 과정을 거쳐서 어떤 결과물을 만들어 내는 프로세스들입니다. 신문을 만들거나 동영상을 만들거나 유튜브 영상의 요약을 만드는 거지요. ibl은 이런 구조 말고도 메모리 시스템을 가집니다. 그것 없이는 AI가 잘 언어를 구사할 수 없으니까요. 사용자가 명령을 내리면 rag 시스템이 어떤 ibl 표현이 좋겠다고 예제도 보여줍니다. 이런 가이드 파일 시스템과 rag 시스템은 말하자면 언어를 잘 활용하도록 하는 별도의 두뇌 시스템이라고 할 수 있습니다.
이 같은 것들은 인간으로 보면 '당연한 것들'입니다. 우리는 세상이 어떻게 구성되어져 있는가를 아니까요. 그 당연한 것들을 언어의 형태로 AI에게 알려줄 때 AI 에이전트가 더 지능적으로 행동할 수 있다라는 주장이 이런 언어를 만들고 최적화하는 행동의 근거입니다. AI가 똑똑해짐에 따라 이런 것이 다 필요없어질 가능성도 있습니다. 다만 저는 이런 정리가 큰 의미가 있을 거라고 믿고 있습니다. 5개 노드 시스템은 이제 막 만들었기 때문에 얼마나 더 좋아질지 모릅니다. 오늘은 다만 제가 해왔던 일을 정리해 봤습니다.
'AI 학교, AI 환경' 카테고리의 다른 글
| 인핸스와 이세돌의 AI 시연을 보고 (0) | 2026.03.12 |
|---|---|
| 잘못된 질문의 경계 (0) | 2026.02.26 |
| AI가 만들어 낸 새로운 생존게임 (2) | 2026.02.25 |
| 시트리니 리서치 보고서가 말하지 않은 3가지 (2) | 2026.02.24 |
| 아들과의 AI 수업 (0) | 2026.02.24 |
댓글