AI 에이전트 시스템의 복잡성이 커지면서, 도구 호출·메모리·권한·스킬·멀티에이전트 조율을 일관되게 설계하는 런타임 아키텍처가 중요해지고 있다. OpenHarness는 “모델이 에이전트이고, 코드가 하네스(harness)”라는 철학 아래 언어 모델의 추론 능력을 실제 제어 가능한 행동과 연결하는 에이전트 프레임워크다. 이 구조는 실제 도구를 파일 읽기·쓰기, 코드 실행, 셸 명령 등 12개 기본 도구로 시작해, 각 도구에 타입 검증된 입력 스키마를 부여해 모델이 올바르게 호출하도록 강제한다. READ, WRITE, EXECUTE, META 등 도구별 권한 수준을 명시적으로 지정해 기능의 범위를 명확히 한다.
권한 관리는 다층 방어 방식으로 설계된다. 권한 모드(DEFAULT·AUTO·PLAN)와 경로 규칙, 금지된 명령 패턴 조합을 통해 민감한 경로(.ssh, .env, 자격증명 파일)는 자동으로 차단된다. 훅(hook)을 이용해 도구 호출 전후에 추가 검증 로직을 삽입하거나, 특정 조건에서 도구 실행 자체를 거부할 수 있다. 메모리 시스템은 MEMORY.md 파일에 세션 간 정보를 유지하고, 새 세션에서는 이 내용을 시스템 프롬프트에 자동으로 주입한다. 사용자 선호도와 과거 학습 내용이 세션을 넘어 지속되는 방식이다. 긴 세션에서 오래된 대화 이력을 요약으로 변환하는 컨텍스트 압축도 지원하며, 원래 작업과 최근 턴은 보존된다.
스킬 라이브러리는 마크다운 기반 플레이북으로, 이름과 설명만 프롬프트에 포함하고 필요할 때만 전체 내용을 로드하는 방식으로 컨텍스트를 절약한다. 에이전트 루프는 LLM이 다음 행동을 결정하고, 권한 검사와 훅을 실행한 뒤 도구를 실행하고 그 결과를 대화에 추가하는 과정을 반복한다. 멀티에이전트 조율에서는 리더 에이전트가 작업을 분해해 전문화된 서브에이전트에 위임하며, 복수의 에이전트가 병렬(asyncio.gather)로 실행된 후 그 결과를 집합하는 패턴을 지원한다. 이를 통해 단일 에이전트로는 처리하기 어려운 복잡한 다단계 작업을 효과적으로 분업할 수 있다.
이 아키텍처는 모의 LLM과 실제 공급자(Claude, GPT 등) 사이를 단 한 줄의 코드 변경으로 전환할 수 있어, 다양한 환경에서 일관된 구조를 유지한다. 도구 규모가 커질수록 스키마 드리프트·권한 확장·메모리 비대화·에이전트 간 통신 복잡성이 과제로 떠오르며, 이를 위해 도구 등록·권한 관리·메모리 관리를 별도 관심사로 명확히 분리하는 설계가 권장된다. OpenHarness 스타일 접근법은 에이전트 프레임워크를 직접 구현하거나 기존 프레임워크를 확장하려는 개발팀에게 실용적인 참조 아키텍처로 활용될 수 있다.














