TL;DR
LangChain의 ShellToolMiddleware에 kern 실행 정책을 주입하면 Docker보다 세션 생성과 종료 비용을 크게 낮출 수 있습니다. 동일한 이미지와 한 머신에서 n=16으로 측정한 결과 kern은 안정 상태 시작 4.1 ms, 종료 1.1 ms였고 Docker는 각각 157.4 ms, 63.4 ms였습니다. 명령별 왕복 시간은 둘 다 1 ms보다 작아 차이는 세션 수명 주기에 집중됐으며, kern은 더 강한 격리가 아니라 데몬 없는 rootless 실행으로 세션을 저렴하게 만드는 선택지입니다. raw socket, mount, setuid 처리와 timeout 뒤 상태 손실 같은 차이는 별도로 고려해야 합니다.
실용적 조언
- 세션 생성과 종료가 자주 발생하는 LangChain Shell 작업에서는 kern 실행 정책과 Docker 실행 정책의 세션 수명 주기 비용을 별도로 측정하는 편이 적절합니다. kern을 사용하려면 kern-sandbox[langchain-shell]를 설치하고 ShellToolMiddleware에 kern_execution_policy()를 주입하면 됩니다. langchain>=1.3이 필요합니다.
- 보안 동작을 Docker와 동일하다고 가정하지 말고 네트워크, capability, memory cap, pid cap 기본값과 raw socket·mount·setuid 차이를 README 기준으로 확인해야 합니다. 특히 ping이나 mount가 필요한 명령은 backend별 동작 차이를 사전에 검증해야 합니다.
- timeout 복구를 설계할 때는 세션 재시작으로 작업 디렉터리와 export 변수, 백그라운드 프로세스가 사라진다는 점을 고려해야 합니다. 인자가 없는 cat처럼 프로토콜 marker를 소비하는 명령은 세션 동기화를 깨뜨릴 수 있으므로 피해야 합니다.
섹션별 상세
용어 해설
- 실행 정책 인터페이스(BaseExecutionPolicy)
- — BaseExecutionPolicy는 ShellToolMiddleware가 명령 실행 환경을 선택할 때 받는 정책 인터페이스입니다. Docker 대신 kern 같은 백엔드를 주입해 세션 생성과 종료 방식을 바꿀 수 있습니다.
- 비루트 실행(rootless)
- — rootless는 별도의 특권 데몬이나 호스트의 root 권한 없이 프로세스를 실행하는 방식입니다. kern은 이 방식으로 컨테이너와 같은 커널 경계를 사용하면서 세션 생성 비용을 줄입니다.
- seccomp 시스템 호출 필터(seccomp)
- — seccomp는 프로세스가 사용할 수 있는 시스템 호출을 제한하는 커널 보안 기능입니다. 이 비교에서는 kern에서 mount가 EPERM이 아니라 seccomp 차단으로 실패하는 차이를 만듭니다.
- nosuid 루트 파일 시스템(nosuid rootfs)
- — nosuid rootfs는 파일 시스템에서 setuid·setgid 비트를 적용하지 않는 루트 파일 시스템입니다. kern에서는 이 설정 때문에 setuid 비트가 숨겨져 Docker와 실행 환경이 달라집니다.
코드 예제
pip install 'kern-sandbox[langchain-shell]'LangChain Shell 미들웨어에서 kern 실행 정책을 사용하기 위한 Python 패키지를 설치합니다.
from langchain.agents.middleware import ShellToolMiddleware
from kern_sandbox.langchain import kern_execution_policy
middleware = ShellToolMiddleware(execution_policy=kern_execution_policy())ShellToolMiddleware에 kern_execution_policy를 주입해 Docker 대신 kern에서 세션을 실행합니다.
언급된 도구
ShellToolMiddleware를 통해 실행 정책을 주입하고 명령 세션을 관리합니다.
LangChain Shell 세션을 Docker 대신 rootless 환경에서 실행하는 백엔드입니다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.