로봇 장기 작업은 한 번의 긴 계획을 끝까지 실행하는 문제가 아니라, 이미 끝난 하위 목표와 현재 자원·물체 상태를 기억하고 실패한 단계만 안전하게 재시도하며 환경 변화에 맞춰 다시 계획하는 문제입니다. 작업 원장, 명시적 성공 조건, 재시도 예산과 복구 가능한 checkpoint가 있어야 부분 성공을 잃지 않습니다.
아래에서는 용어의 차이를 실제 시스템 경계, 실패 조건과 검증 순서로 나눠 살펴봅니다.
로봇 장기 작업은 하위 목표의 성공·실패·부작용을 기억하며 다음 행동을 다시 선택하는 폐루프 문제다
‘컵을 가져와 식탁을 정리하라’는 지시는 컵 찾기, 접근, 집기, 운반, 놓기처럼 나뉘지만 실제 실행에서는 문이 닫히고 물체가 옮겨지며 배터리가 줄어듭니다. 처음 만든 순서를 고정 재생하면 중간 상태가 달라진 순간 이후 단계의 전제가 깨집니다.
Nav2 행동 트리 복구가 국소 탐색과 복구 노드를 구조화하고 Action Chunking이 몇 스텝의 연속 행동을 묶는다면, 장기 작업 관리는 그 위에서 완료 사실·자원·산출물을 보존하는 상위 계층입니다. 짧은 action horizon과 전체 임무의 부분 성공 회복을 같은 문제로 보면 이미 끝낸 일을 반복하게 됩니다.
목표 분해는 동사 목록이 아니라 선행 조건과 성공 조건을 가진 그래프로 만든다
각 subgoal에 precondition, action, postcondition, side effect와 필요한 자원을 붙입니다. ‘서랍 열기’가 성공하려면 손잡이 접근 가능, 그리퍼 비어 있음이 필요하고 완료 뒤에는 서랍 open, 그리퍼 상태, 주변 충돌 여유가 바뀝니다.
SayCan 공식 프로젝트은 언어 모델이 제안한 기술을 실제 affordance 점수와 결합해 긴 지시를 실행하는 구성을 보여 줍니다. 실제 시스템에서는 기술 선택 점수 외에도 완료 predicate와 관측 근거를 저장해야 다음 호출이 오래된 가정에 기대지 않습니다.
작업 원장은 사실·자원·산출물·결정을 서로 다른 수명으로 기록한다
world fact에는 문 상태와 물체 위치, resource에는 배터리·그리퍼·예약 구역, artifact에는 생성한 지도와 grasp pose, decision에는 선택한 subgoal과 이유를 둡니다. 모든 대화를 한 문자열로 쌓기보다 구조화된 필드와 원본 관측 참조를 같이 보관합니다.
각 항목에는 observed_at, source sensor, confidence와 invalidation rule을 둡니다. 물체 위치는 로봇이 시선을 돌린 뒤 오래될 수 있지만 닫힌 밸브를 조작한 완료 기록은 더 오래 유지될 수 있어 사실 종류별 TTL과 재확인 조건이 달라야 합니다.
| 기억 종류 | 예시 | 무효화 조건 | 재개에 쓰는 값 |
|---|---|---|---|
| world fact | door open·object pose | 새 관측·시간 경과 | 다음 precondition |
| resource | battery·free gripper | 소비·예약 변경 | 실행 가능성 |
| artifact | map·grasp pose | 환경·calibration 변경 | 기술 입력 |
| decision | 선택 subgoal·근거 | 실패·새 제약 | replan 감사 |
장시간 현장 임무는 지도와 완료 증거가 함께 남아야 중단 뒤 재개할 수 있다
사진의 K10 같은 현장 로버는 넓은 지역을 지도화하고 관측 지점을 순회하므로 어느 구역을 처리했는지, 어떤 데이터가 저장됐는지와 남은 전력을 지속해서 기록해야 합니다. 단순 waypoint index만 남기면 센서 촬영 실패와 이동 성공을 구분하지 못합니다.
checkpoint에는 로봇 pose 하나가 아니라 완료 subgoal, world-state digest, 산출물 위치와 안전한 재개 자세를 묶습니다. 사진은 장기 임무의 운영 맥락을 보여 주며 해당 로버가 여기서 설명한 메모리 구조를 사용했다는 뜻은 아닙니다.

성공 판정은 기술의 종료 신호와 실제 세계의 postcondition을 분리한다
그리퍼 close 명령이 끝났다는 것은 물체를 들었다는 뜻이 아닙니다. 모터 current, 촉각, 영상과 물체 높이를 결합해 grasped predicate를 만들고, evidence가 약하면 성공으로 기록하지 말고 verify subgoal을 삽입합니다.
Inner Monologue 원 논문은 성공 검출, 장면 설명과 사람 피드백을 언어 계획에 다시 넣어 재계획하는 방식을 보여 줍니다. 종료 코드와 세계 변화 사이의 간극을 닫아야 긴 연쇄에서 조용한 실패가 누적되지 않습니다.
부분 성공은 임무 전체의 실패가 아니라 보존해야 할 새 초기 상태다
식탁의 세 물체 중 두 개를 정리한 뒤 세 번째에서 실패했다면 처음으로 돌아가 두 개를 다시 만질 필요가 없습니다. 완료 집합과 아직 만족되지 않은 predicate를 다시 계산하고, 후속 단계가 요구하는 최소 미완료 frontier에서 재개합니다.
다만 부분 성공이 irreversible side effect를 만들 수 있습니다. 약품을 섞거나 공작물을 절삭한 단계는 rollback할 수 없으므로 compensating action, 사람 승인 또는 새 목표로 전환하고 ‘원래 상태 복원’이라고 기록하지 않습니다.
재시도는 같은 명령 반복이 아니라 실패 분류에 맞춘 parameter change다
perception miss에는 시점 이동과 재탐색, grasp slip에는 접근 방향·힘 변경, navigation blockage에는 costmap 갱신과 우회가 필요합니다. 원인을 모른 채 같은 action을 반복하면 장비 마모와 충돌 확률만 높아질 수 있습니다.
로봇 실패 마이닝의 taxonomy를 retry policy와 연결해 원인별 최대 횟수, backoff와 대체 기술을 정합니다. 동일 signature가 반복되거나 safety shield가 연속 개입하면 자동 retry를 종료하고 원격 지원으로 넘깁니다.
idempotency key와 실행 영수증이 중복 명령으로 인한 이중 조작을 막는다
네트워크 timeout 뒤 호출자가 응답을 못 받았다고 같은 명령을 보내도 첫 호출은 이미 성공했을 수 있습니다. task ID·subgoal ID·attempt를 idempotency key로 쓰고 기술 서버는 같은 키의 완료 영수증을 반환해 중복 실행을 막습니다.
실행 영수증에는 시작·종료 시각, 입력 artifact digest, side effect, postcondition evidence와 최종 상태를 넣습니다. 로봇 팔 조작뿐 아니라 엘리베이터 호출, 문 잠금, 데이터 업로드처럼 외부 시스템에 영향을 주는 단계에서 특히 중요합니다.
재계획은 전체 지시를 다시 묻기보다 유효한 사실과 보호할 완료 상태를 고정한 채 수행한다
planner에 현재 관측만 주면 이미 완료한 사실과 사용한 자원이 사라집니다. protected predicates, forbidden repeats, remaining goals와 새 제약을 함께 전달하고 결과 계획이 완료 상태를 역행하지 않는지 정적 검사합니다.
Code as Policies 공식 프로젝트는 언어 모델이 로봇 정책 코드를 구성하는 접근을 보여 줍니다. 생성 코드나 계획을 실제 실행할 때는 허용된 기술 목록, 인자 schema, timeout과 sandbox를 둬 긴 문맥의 잘못된 함수 호출이 실제 장치로 전달되지 않게 합니다.
장기 메모리는 요약보다 provenance와 모순 처리 규칙이 중요하다
‘컵은 선반에 있다’는 오래된 요약과 새 카메라의 ‘식탁에 있다’가 충돌하면 최신 관측만 덮어쓰지 말고 source·time·confidence를 비교합니다. 물체 identity가 다른지 확인한 뒤 active fact와 superseded fact를 구분해 감사 가능성을 남깁니다.
메모리 점검표에는 쓰기 주체, 허용 schema, TTL, invalidation event, conflict resolution과 개인정보 보존 기간을 포함합니다. 언어 모델 자유 텍스트는 설명에 쓰고 로봇 실행을 좌우하는 값은 단위와 타입이 있는 필드로 검증합니다.

평가는 단계 성공률 곱이 아니라 완료율·복구 비용·상태 일관성을 함께 측정한다
단계 성공률이 95%여도 20단계를 모두 한 번에 통과할 확률은 단순 가정에서 약 36%입니다. 그래서 전체 task completion, completed subgoals retained, retries, wall-clock time, human interventions, duplicate side effects와 memory contradiction을 함께 봅니다.
로봇 VLA 평가의 짧은 episode 외에 전원 재시작, 네트워크 단절, 물체 이동, 잘못된 성공 신호와 자원 부족을 중간에 주입합니다. 실패 뒤 처음부터 성공한 결과와 checkpoint에서 정확히 재개한 결과를 같은 성공으로만 세지 않습니다.
운영 가능한 장기 작업기는 재개 지점과 사람 인계까지 명시한 상태 기계다
각 subgoal은 pending·running·verifying·succeeded·recovering·blocked 상태를 갖고 허용 전이만 통과합니다. process crash 뒤에는 running을 무조건 재실행하지 말고 실행 영수증과 세계 postcondition을 재확인해 succeeded 또는 recoverable로 복구합니다.
합격 기준은 완료 predicate의 관측 근거, 부분 성공 보존, 중복 side effect 0, 실패 원인별 retry budget, checkpoint 복구와 명확한 escalation입니다. 장기 계획의 품질은 멋진 최초 계획보다 변화 뒤에도 사실을 잃지 않고 안전하게 끝내는 능력으로 평가해야 합니다.
| 시험 | 주입 사건 | 기대 복구 | 핵심 지표 |
|---|---|---|---|
| 관측 실패 | 가림·false success | verify·시점 변경 | 오완료율 |
| 실행 실패 | slip·blocked path | 원인별 대체 기술 | retry·시간 |
| 시스템 실패 | process·network restart | 영수증 확인·resume | 중복 실행 0 |
| 자원 실패 | battery·tool 부족 | checkpoint·사람 인계 | 완료 보존율 |
로봇 장기 작업 계획에서 자주 묻는 질문
장기 작업은 LLM의 긴 context만 늘리면 해결되나요?
아닙니다. 긴 문맥은 설명을 담을 수 있지만 상태의 시각·출처·단위와 무효화 규칙을 자동 보장하지 않습니다. 실행용 사실은 구조화된 작업 원장과 postcondition 검증으로 관리해야 합니다.
행동 트리와 장기 작업 메모리는 어떤 관계인가요?
행동 트리는 기술 선택과 국소 복구를 구조화하는 데 좋습니다. 장기 메모리는 여러 트리·서비스에 걸친 완료 사실, 자원, 산출물과 재개 지점을 보존하는 상위 기능입니다.
실패하면 항상 처음부터 다시 하는 것이 안전하지 않나요?
이미 옮긴 물체나 외부 시스템 변경을 반복하면 더 위험할 수 있습니다. 완료 증거를 확인하고 실패한 최소 단계에서 재개하되 되돌릴 수 없는 부작용은 별도 처리해야 합니다.
재시도 횟수는 몇 번이 적당한가요?
고정 숫자보다 실패 유형과 위험도에 따라 다릅니다. 인지 재탐색과 강한 접촉 조작은 비용이 다르므로 원인별 예산과 연속 안전 개입 시 즉시 중단 규칙을 둡니다.
부분 성공은 어떻게 수치화하나요?
전체 목표의 predicate 중 검증된 완료 비율, 재시작 뒤 보존된 완료 수, 중복 side effect와 남은 critical path를 함께 기록하면 단순 단계 카운트보다 의미가 분명합니다.
장기 작업 메모리는 오류를 줄이지만 잘못된 세계 상태가 오래 유지되는 위험도 만듭니다. 중요한 행동 전에는 최신 관측과 안전 조건을 다시 확인하고 사람 인계 기준을 별도로 운영해야 합니다.