본문으로 건너뛰기
r/LLMDevs조회 4

LLM이 경계를 무시하기 때문에 에이전트를 위한 실행 계층을 구축했습니다

LLM이 시스템 프롬프트의 제약을 무시하고 실행 중단 시 복구가 어려운 문제를 해결하기 위해, 모든 도구 호출을 커널의 시스템 콜처럼 처리하는 에이전트 실행 계층 Castor를 개발했다.

커뮤니티 반응

작성자의 마이크로커널 접근 방식에 대해 흥미롭다는 반응이 많으며, 특히 기존 프레임워크의 재시작 문제와 LLM의 제약 무시 현상에 깊이 공감하는 분위기이다.

주요 논점

01찬성다수

프롬프트 가드레일의 한계를 인정하고 커널 수준의 구조적 제약이 필요하다는 입장이 다수이다.

합의점 vs 논쟁점

합의점

  • LLM은 신뢰할 수 없는 실행 주체이며 외부 도구와의 상호작용에는 엄격한 격리 계층이 필요하다.
  • 현재 주요 에이전트 프레임워크들의 실행 복구 기능 부재는 실무에서 큰 비용 낭비를 초래한다.

실용적 조언

  • 에이전트 설계 시 모든 외부 API 호출을 래핑하여 상태를 기록하면 디버깅과 비용 최적화에 유리하다.
  • LLM에게 제약을 맡기기보다 코드 수준에서 호출 예산(Budget)을 관리하는 로직을 우선 적용해야 한다.

섹션별 상세

시스템 프롬프트에 도구 호출 횟수를 제한하더라도 LLM은 이를 무시하고 직접 도구에 접근하여 원치 않는 작업을 수행하는 경우가 빈번하다. Castor는 모든 도구 호출을 커널을 통한 시스템 콜(Syscall)로 라우팅하여 LLM이 도구에 직접 접근할 수 있는 경로를 원천 차단한다. 이를 통해 프롬프트 기반의 권장이 아닌 커널 수준의 강제적 제약을 구현하여 보안과 안정성을 확보한다. 실무적으로는 프롬프트 엔지니어링의 불확실성을 구조적 아키텍처로 해결하려는 시도이다.
python
(consumes="api", cost_per_use=1)
async def search(query: str) -> list[str]: ...
@castor_tool(consumes="disk", destructive=True)
async def delete_file(path: str) -> str: ...

kernel = Castor(tools=[search, delete_file])
cp = await kernel.run(my_agent, budgets={"api": 10, "disk": 3})
# hits delete_file, kernel suspends
await kernel.approve(cp)
cp = await kernel.run(my_agent, checkpoint=cp) # resumes, not restarts

Castor 커널을 통해 도구 호출 권한과 예산을 관리하고, 실행 중단 지점에서 체크포인트를 생성하여 재개하는 예시

기존 에이전트 프레임워크는 실행 도중 오류가 발생하면 처음부터 다시 시작해야 하므로 토큰 비용과 시간 낭비가 심각하다. Castor는 시스템 콜이 발생할 때마다 상태를 기록하고 스택을 해제하여 실행을 일시 중단하며, 승인 후에는 캐시된 응답을 재생하여 중단 지점부터 재개한다. 실제 구현에서 체크포인트를 활용해 수십 단계의 작업 중 마지막 단계만 다시 실행하는 방식으로 비용 효율성을 입증했다. 이는 장기 실행 에이전트의 신뢰성을 높이는 핵심 메커니즘이다.
모든 비결정적 요소인 API 호출과 LLM 추론 등을 커널 경계를 통해 관리함으로써 실패 사례를 결정론적으로 재현할 수 있는 환경을 제공한다. 로그 자체가 상태가 되므로 과거의 특정 시점으로 돌아가 디버깅하는 타임 트래블 방식의 분석이 가능해진다. 다만 에이전트 내부에서 커널을 거치지 않은 직접적인 네트워크 요청이 발생할 경우 재현성이 깨지는 엄격한 제약 조건이 따른다. 개발자는 모든 외부 상호작용을 커널 인터페이스로 표준화해야 하는 설계상의 부담을 감수해야 한다.

용어 해설

시스템 콜(System Call)
운영체제 커널과 사용자 프로그램 사이의 인터페이스로, 에이전트가 외부 도구에 접근할 때 커널을 거치게 하여 권한과 자원을 제어하는 핵심 메커니즘으로 활용된다.
체크포인팅(Checkpointing)
시스템의 현재 상태를 저장하여 장애 발생 시 해당 지점부터 작업을 재개할 수 있게 하는 기술이다. 에이전트 실행 중 오류가 발생해도 처음부터 다시 시작하지 않도록 돕는다.
비결정성(Non-determinism)
동일한 입력에도 결과가 달라질 수 있는 성질을 의미한다. LLM 호출이나 외부 API 요청 등이 이에 해당하며, 이를 커널 경계 내에서 관리해야 재현 가능한 디버깅이 가능하다.
가드레일(Guardrail)
LLM의 출력이 안전 가이드라인이나 특정 제약 조건을 벗어나지 않도록 설정하는 보호 장치다. 본문에서는 프롬프트 기반 가드레일이 가진 실행력의 한계를 지적한다.

언급된 도구

Castor추천

에이전트 실행 계층 및 마이크로커널 아키텍처 구현체

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 03. 23.수집 2026. 03. 23.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.