텔레그램 봇이 파일 경로를 명령어로 착각했다
2026년 10월 2일, 텔레그램 봇에 보낸 '/'로 시작하는 일반 메시지가 명령으로 오인돼, 블로그 세션이 아니라 OpenClaw의 CEO 에이전트로 갔다. 기록에 남은 예는 /Users/... 형태의 파일 경로다. 같은 날 명령 판별 조건을 좁히고 회귀 테스트를 붙였다. 그 조건과 사례표를 정리한다. 대상은 텔레그램 봇이 받은 메시지를 명령과 일반 텍스트로 나눠 서로 다른 실행자에게 보내는 개발자다. 목표는 파일 경로처럼 '/'로 시작하는 일반 텍스트가 명령으로 잡히지 않게 하고, 그 경계를 테스트로 고정하는 것이다. 아래는 내 OpenClaw 텔레그램 브리지 플러그인의 기록이며, 예시 경로는 실제 경로가 아니라 가짜다. 라우팅 규칙과 사고 전날인 10월 1일 라우팅을 바꿨다. 소유자 개인 대화에서 / 로 시작하지 않는 모든 메시지와 사진 캡션을 블로그 세션으로 보낸다. /blog , 모델 선택자, 알림 답장, 중복 방지는 그대로 두고, 다른 /명령 과 다른 사람, 단체방 메시지는 블로그로 보내지 않는다. 이 규칙에서 기준은 첫 글자 '/'였다. 파일 경로도 '/'로 시작한다. 10월 2일, '/'로 시작하는 일반 메시지가 명령어로 오인돼 블로그가 아닌 CEO 에이전트로 갔다. CEO 쪽은 gpt-5.4-mini 미지원 오류로 답하지 못했다. 수정: 명령은 "/이름[@봇] 뒤에 공백 또는 끝" 플러그인에서 다른 명령으로 보는 조건을 " /이름[@봇] 뒤에 공백이 오거나 메시지가 끝날 때"로 좁혔다. 판별 정규식은 다음과 같다. /^\/[A-Za-z0-9_]+(?:@[A-Za-z0-9_]+)?(?:\s|$)/ / 다음에 영문·숫자·밑줄로 된 이름이 오고, 선택적으로 @봇이름 이 붙은 뒤, 바로 공백이나 끝이 와야 명령이다. 단, 이 검사는 /blog 와 /blog@봇이름 을 먼저 따로 판별한 뒤에만 적용한다. 그래서 /blog hel...