본문으로 건너뛰기
LAB / 036

GPT를 OpenClaw에 연결했더니… 루카 업그레이드와 응급실 방문기

GPT를 OpenClaw에 연결해 텔레그램 비서 루카로 써본 기록. 계정 인증과 모델 연결, 로그인 성공 뒤 만난 런타임 오류, doctor 복구와 실제 응답 확인까지 정리했다.

AI 비서를 업그레이드하면 무슨 일이 생길까. 더 똑똑해지고, 대답도 잘하고, 내가 할 일이 줄어들 줄 알았다. 적어도 시작할 때는 그랬다.

이번에는 OpenClaw에서 쓰는 텔레그램 비서 ‘루카’에게 GPT-5.6 Sol을 연결해 보기로 했다. 기존 모델에서 바꿔 보고, OpenAI 계정 인증까지 마쳤다. 이제 말을 걸기만 하면 되는 줄 알았다.

그런데 루카는 대답 대신 오류를 보냈다. 비서를 업그레이드했더니 내가 비서의 담당 의사가 됐다.

GPT를 OpenClaw에 연결한 이유: 루카도 두뇌 업그레이드

나는 이미 OpenClaw를 텔레그램에 연결해 루카라는 이름의 비서로 쓰고 있었다. 이번에 하고 싶었던 것은 봇을 새로 만드는 일이 아니라, 익숙한 루카의 뒤에서 답변을 만들어 주는 모델을 GPT로 바꾸는 일이었다.

GPT와 대화하는 것도 좋지만, 평소 쓰던 텔레그램에서 루카를 불러 같은 작업 흐름을 이어가 보고 싶었다. 비서 이름과 연락처는 그대로 두고, 업무를 처리하는 두뇌를 바꾸는 셈이다. 물론 ‘두뇌 교체’라는 말은 간단했다. 실제 작업은 뒤에서 자기소개를 길게 했다.

이번 설정에 사용한 모델 표기는 openai/gpt-5.6-sol이었다. 이전에 사용하던 openrouter/free 대신 이 모델을 OpenClaw의 기본 에이전트인 main, 즉 루카가 사용하도록 연결하는 과정이었다.

이 글의 모델 이름과 설정은 당시 내 환경의 기록이다. 모든 계정이나 OpenClaw 버전에서 같은 구성이 된다는 안내는 아니다.

텔레그램, OpenClaw, GPT는 각각 무슨 일을 할까?

이번에 구성한 흐름을 간단히 정리하면 이렇다.

내가 텔레그램으로 메시지를 보낸다 → OpenClaw가 루카에게 전달한다 → 연결된 실행 환경에서 GPT가 응답을 만든다 → 텔레그램으로 답이 돌아온다.

내 기준으로 텔레그램은 말을 거는 창구, OpenClaw는 메시지와 작업을 연결하는 담당자, GPT는 답변을 만드는 모델이다. 루카라는 이름은 그 앞에 붙여 둔 익숙한 얼굴이고.

그러니까 이번 작업은 ChatGPT 웹사이트의 대화방을 그대로 텔레그램으로 옮기는 일이 아니었다. OpenClaw 쪽 에이전트에 모델과 인증, 실행 환경을 연결하는 일이었다. 같은 GPT를 쓴다고 웹에서 나눴던 대화와 설정이 저절로 전부 이사 오는 것으로 생각하면 헷갈린다.

처음에는 ‘모델 이름 하나 바꾸기’라고 생각했는데, 알고 보니 창구 담당자와 실행 담당자에게도 각각 이야기를 해줘야 했다. AI 조직도도 은근히 복잡하다.

이번에는 API 키 붙여넣기 대신 계정 로그인

이번에 내가 진행한 인증은 OpenAI 계정으로 직접 로그인하는 OAuth 방식이었다. 인증 과정에서 안내된 주소를 내 브라우저로 열고 로그인을 마친 뒤, OpenClaw에 계정 프로필이 저장됐는지 확인했다.

확인 결과에는 제공자가 openai로, 인증 방식이 openai/oauth로 표시됐다. 막연히 ‘기본 인증이 있겠지’ 하는 상태에서, 실제 로그인한 프로필을 확인한 상태로 넘어간 것이다. 계정 이메일과 인증 정보는 이 글에 옮기지 않았다. 비서 소개를 하다가 출입증까지 공개할 필요는 없으니까.

여기서 계정 로그인과 API 키 사용은 구분해야 한다. 공식 OpenAI 문서도 Codex의 ChatGPT 계정 로그인과 사용량 기반 API 키 인증을 별도로 설명한다. 이번 로그인 성공만으로 API가 무료가 됐다거나 모든 모델을 무제한으로 쓸 수 있다고 해석하면 안 된다. OpenAI 공식 인증 안내

내가 실제로 확인한 순서는 모델 연결 설정, 브라우저를 통한 계정 인증, 저장된 인증 프로필 확인, 그리고 텔레그램에서의 응답 테스트였다. 마지막에는 /new로 새 대화를 열고 루카에게 정상 작동하는지 물었다.

여기까지 읽으면 연결 완료 후기 같지만, 아직 아니다. 로그인이라는 첫 번째 관문을 통과하자 바로 다음 관문이 기다리고 있었다.

로그인은 성공했습니다. 대화는 실패했습니다.

인증 결과에는 OpenAI 프로필과 OAuth 정보가 정상적으로 표시됐다. 함께 문제를 보던 AI도 “이번엔 확실하게 인증됐어”라고 했다.

좋다. 텔레그램에서 새 대화를 열고 루카를 불렀다.

Something went wrong while processing your request.

뭔가 잘못됐단다. 그건 나도 알겠다. 내가 궁금한 건 뭐가 잘못됐느냐는 건데.

이날 배운 첫 번째 교훈은 간단했다. 로그인에 성공했다는 것과 AI가 실제로 대답할 준비가 됐다는 것은 다른 이야기였다. 출입증을 받았다고 바로 업무를 시작할 수 있는 건 아니었다.

범인은 로그인 화면이 아니라 로그에 있었다

처음에는 계정 권한이나 모델 접근 문제일 가능성도 살펴봤다. 하지만 추측만 이어가서는 끝이 없었다. 결국 로그를 꺼냈다.

화면에는 텔레그램 수신 기록, 메모리 관련 오류, heartbeat 경고까지 줄줄이 나타났다. 비서 한 명 말을 시키려는데 회사 전체 건강검진 결과표를 받은 기분이었다.

그중 이번 응답 실패와 직접 연결된 문장은 이것이었다.

Agent harness runtime “codex” is unavailable.

이번 구성에서 모델을 실행하는 데 필요한 Codex 런타임 플러그인이 활성 실행 환경에 없다는 오류였다. 인증 정보는 저장됐고 텔레그램 메시지도 도착했지만, 그다음 일을 맡아줄 실행 환경에서 막히고 있었던 것이다.

비유하자면 직원 채용도 끝났고 출근 문자도 받았는데, 정작 사무실에 책상과 컴퓨터가 준비되지 않은 상태였다. 루카 입장에서도 억울할 만했다.

그래서 진짜로 doctor를 불렀다

재미있게도 오류 메시지는 해결에 사용할 명령까지 안내하고 있었다. 이번에 실행한 것은 openclaw doctor --fix였다.

이름부터 doctor다. AI 비서를 고치러 의사를 부르는 상황이 비유로 끝나지 않았다.

실행 결과에는 모델과 Codex 런타임을 자동으로 활성화했다는 안내가 나왔고, 마지막에는 Gateway를 재시작하고 확인했다는 메시지가 표시됐다.

물론 그 와중에도 다른 경고는 여럿 남아 있었다. 소유자 설정, 백업, 보안, 플러그인 버전 같은 항목들이다. 그렇다고 모든 경고를 한꺼번에 건드리지는 않았다. 우선 루카가 대답하지 못하는 문제부터 확인하기로 했다.

여기서 두 번째 교훈. 경고가 많이 보인다고 전부 같은 문제는 아니다. 일단 눈앞의 고장과 연결된 원인을 좁히는 편이 덜 헤맨다. 이번 복구 과정도 내 설정에서 확인한 사례이지, 모든 오류에 같은 명령을 쓰면 된다는 뜻은 아니다.

“된다.” 오늘의 가장 짧고 반가운 테스트 결과

복구 후 텔레그램에서 다시 새 대화를 열었다. 그리고 루카에게 정상 작동하는지 물었다.

이번에는 대답이 왔다.

내 반응도 길지 않았다. “된다. 오키 고마워.” 앞에서는 설정과 인증과 런타임 이야기가 그렇게 길었는데, 성공 확인은 몇 글자면 충분했다.

그렇다고 모든 정리가 끝난 것은 아니었다. 로그 한쪽에는 여전히 back이라는 모델 값에 대한 경고가 남아 있었다. 시스템이 그것을 openai/back으로 해석하고 있었는데, 정체를 확인해야 할 설정 찌꺼기였다.

루카가 말을 시작하자마자 나는 말했다. “아까 back이나 해결하자.”

이번에는 검색 범위를 넓게 잡았더니 결과가 너무 길어서 화면에서 잘렸다. 결국 설정 파일 하나로 범위를 좁혔다. 원인은 아직 찾는 중인데, 출력량만큼은 벌써 대형 프로젝트였다.

AI를 쓰다 보니, AI가 일할 자리도 내가 챙긴다

이번 일은 ‘모델 이름만 바꾸면 끝’인 작업이 아니었다. 인증이 되는지, 메시지가 도착하는지, 실행 환경이 준비됐는지, 마지막으로 실제 답변이 오는지까지 각각 확인해야 했다.

함께 문제를 보던 AI도 처음에는 가능성을 이야기했고, 로그를 본 뒤에야 원인을 구체적으로 좁혔다. 그래서 “이제 됩니다”라는 설명보다 실제로 한 번 말을 걸어 보는 테스트가 중요했다.

AI가 모든 걸 알아서 해주는 장면도 멋있지만, 내가 요즘 자주 경험하는 건 조금 다르다. 오류를 같이 읽고, 원인을 좁히고, 하나를 고친 다음 다시 확인하는 과정이다. 그 끝에 실제로 대답하는 루카가 남으면, 그날의 삽질도 쓸모가 생긴다.

오늘의 결론: 루카는 복귀했다. 남아 있는 경고들은 아직 퇴근하지 않았다.

생각을 남겨주세요

이메일 주소는 공개되지 않으며 댓글은 관리자 승인 후 표시됩니다. 필수 항목은 *로 표시됩니다.