
Truss: 새로운 단일 사용자 로컬 하네스 (local harness)
요약
Truss는 편의성과 보안에 초점을 맞춘 새로운 단일 사용자 로컬 하네스입니다. MCP(Model Context Protocol)를 기반으로 작동하며, 워크스페이스 모드를 통해 에이전트에게 안전한 파일 시스템 접근 권한과 도구 사용 환경을 제공합니다.
핵심 포인트
- MCP 기반의 패키징 및 Camoufox 브라우저를 통한 안티 봇 우회 지원
- 워크스페이스 모드에서 Claude Code, Cursor 등 기존 도구의 MCP 서버 자동 발견
- 프롬프트 인젝션 및 자격 증명 유출 방지를 위한 3단계 보안 시스템 구축
- 민감한 파일 접근 제한 및 명령어 실행 전후 가드(Guards) 기능 제공
- dotenvx를 활용한 자격 증명 암호화 및 에이전트 노출 방지
기존의 하네스(harness)들이 저에게 완전히 편안하게 느껴지지 않아서, 편의성과 합리적인 보안*에 초점을 맞추어 직접 무언가를 만들어 보았습니다 (네, 이에 대해 설명하겠습니다). 그래서 여기 Truss를 소개합니다.
시작 화면은 꽤 단순합니다.
설치 프로그램 (Installer): https://github.com/truss-harness/Truss/releases/tag/v0.1
소스 코드 (Source): https://github.com/truss-harness/Truss (Apache 2.0 라이선스)
이 하네스와 그 도구들은 MCP (Model Context Protocol)로 패키징되어 있으며 (대부분의 안티 봇 탐지를 우회하는 Camoufox 브라우저 포함), 백그라운드에서 서비스로 실행되며 글로벌 뷰(global view)를 제공합니다. 이 모드에서는 기본적으로 채팅/에이전트(agents)가 파일 시스템에 접근할 수 없으며, 일반적인 채팅 UI로 작동합니다.
하지만 (제가 자주 사용하는 방식인) 워크스페이스 모드(workspace mode)로 Truss를 실행할 수 있습니다. 이것이 제가 개인적으로 매우 자주 사용하는 방식입니다. 워크스페이스 모드로 실행하면, 에이전트에게 해당 폴더에 대한 접근 권한이 자동으로 부여되며, 시작 시 일반적인 하네스들(Claude Code, GH Copilot, Junie, Codex, Cursor)로부터 MCP 서버와 에이전트 기술(agent skills)을 발견합니다. 에이전트는 접근이 필요할 경우 외부 접근을 요청할 수 있습니다.
보안 기능 (Security features)
이 하네스는 3단계 보안 시스템을 통해 단순한 어리석음, 프롬프트 인젝션 (prompt injection), 자격 증명 유출, 그리고 무분별한 파괴로부터 보호하고자 합니다. 다만, 기본적으로 에이전트가 악의적이지 않다고 가정하며, 에이전트를 환경으로부터 완전히 밀봉하려고 하기보다는 합리적인 제한을 제공하고 에이전트의 진행을 방해하지 않으려 노력합니다.
Truss의 방어 메커니즘 개요
액세스 요청 대화 상자 (에이전트의 도구 호출 (tool call)에 의해 트리거됨)
하네스 (harness)는 워크스페이스(또는 기타 허용된 디렉토리) 내에 있더라도 민감한 파일에 대한 액세스를 여전히 제한합니다.
위험한 작업을 시도하려 했던 실패한 도구 호출 (tool call)
커맨드 라인 (command line) 모드에서, 하네스는 (기본적으로 끌 수 있음) 명령어가 실행되어도 되는지 확인하고, 실행이 완료되면 출력이 에이전트에게 반환되기에 안전한지 확인합니다 (이 또한 끌 수 있습니다).
안전한 명령어는 실행 전(pre-execution) 및 실행 후(post-execution) 가드 (guards)를 통과합니다. 출력이 편집(redacted)되거나 파일 액세스가 제한될 때마다, 에이전트에게는 권한을 요청하라는 조언과 함께 추론 (reasoning) 결과가 반환됩니다. 이로 인해 에이전트들이 하네스의 제한을 우회하기 위해 기묘한 커맨드 라인 마법을 부리기도 하지만, 결과적으로 그들이 목표를 유지하도록 만듭니다. 이러한 경우, 에이전트는 명령어를 화이트리스트 (whitelist)에 추가하거나, 자신에게 추가적인 디렉토리 접근 권한을 부여해 달라고 요청할 수 있습니다. 이러한 화이트리스트 기반의 '승인 (grants)'은 기본적으로 24시간 후에 만료됩니다.
자체 자격 증명 (credentials)은 (dotenvx를 통해) 암호화되며, 암호화되지 않은 비밀 값 (secrets) (최소한 OpenRouter / OpenAI API / 기타 MCP 서버 등에 대해)은 설정 후 프론트엔드에 노출되지 않으며, 에이전트에게도 절대 노출되지 않습니다.
UI 편의 기능
저는 안락한 사람이며 대접받는 것을 좋아합니다. 그래서 하네스에는 현재 다음과 같은 기능들이 포함되어 있습니다...
예약된 작업 (Scheduled tasks)
에이전트가 타이머를 설정할 수 있는 활동 창 (activity pane)이 있으며, 첨부된 파일과 실행 중인 터미널을 추적할 수 있습니다. .. 그리고 에이전트가 설정한 TODO 항목들도 포함됩니다.
다시 말하지만, 꽤 표준적인 기능들입니다. 하지만 Truss는 현재 RAG를 지원하지 않음에도 불구하고 첨부된 파일에 대해 스마트하게 동작하여, 페이지 범위를 선택하거나 파일을 마크다운 (markdown) 또는 이미지 (image) 형태로 모델에 보낼 수 있게 해줍니다.
첨부 (Attachment)
이미지를 업로드할 때, 이미지의 일부를 편집 (redact)할 수 있는 기회가 있습니다: "내 결혼식 사진에서 내 눈 부분만 편집하고 있어요. 하지만 머리카락은 안 해요, 아직 회색은 아니거든요."
UML 차트를 렌더링할 수 있습니다 (저 같은 너드들에게 유용할 수 있습니다) PlantUML 차트 렌더링 이 커스텀 마크다운 타임라인 컴포넌트 (markdown timeline component)를 제가 노골적으로 시연하는 모습 그리고 같은 방식으로, 캘린더 이벤트 (calendar events)를 내보내는 데 도움을 줄 수 있습니다 캘린더 기능 후속 작업 (followups)들이 메시지 안에서 이루어지는 대신 깔끔하게 렌더링됩니다 마지막으로, 이 하네스 (harness)는 추론 시간 (reasoning time)을 추적하며 (일부 모델이 무한 루프에 빠지기 쉽다는 점을 고려하여) 특정 한계를 넘어서면 이를 차단하려고 시도합니다 설정 화면의 관련 섹션 이 프로젝트는 개발 초기 단계라는 점을 꼭 유념해 주세요. 물론 피드백은 언제나 환영합니다! /u/molbal 님이 제출함 [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기