Codex 또는 Claude Code와 같은 AI 에이전트는 자연스럽게 bash 명령 실행에 매우 능숙합니다. . 파일 시스템을 통해 검색하고, 파악하고, 셸을 통해 컨텍스트를 가져옵니다.
그래서 저는 AI 에이전트가 작업하는 전체 파일 시스템이 디스크가 아닌 Redis에 있다면 어떨까요? AI 에이전트가 보기에는 다른 파일 시스템을 사용하는 것처럼 보이지만 실제로는 정말 빠른 인메모리 저장소라면 어떨까요?
제가 원하는 방식은 다음과 같습니다 👇

에이전트가 grep 명령을 실행하면(모두 예외임) Vercel의 just-bash를 사용하여 이를 가로챕니다. 라이브러리를 만들고 이를 Redis 검색 쿼리로 변환합니다.
그렇게 하면 읽기 전용 액세스를 위한 샌드박스가 필요하지 않으며 (이론적으로) 훨씬 더 빨라집니다. . 그리고 Mintlify는 이미 이와 유사한 작업을 수행한 것으로 나타났습니다.
아이디어
이것이 작동하는지 확인하기 위해 논리를 세 부분으로 나눴습니다.
- 각 파일은 Redis JSON 문서입니다. . 경로, 콘텐츠, 크기, 타임스탬프를 모두 하나의 키에 저장합니다.
- 매니페스트는 디렉터리 트리를 추적합니다 . 하나의 Redis 키는 전체 폴더 구조를 보유하므로
ls그리고tree스캔할 필요가 없습니다. - 그레핑을 위한 Redis 검색 . 이쪽으로
grep일치하는 항목을 찾기 위해 모든 파일을 읽을 필요는 없습니다.
그리고 그게 다야! 이러한 몇 가지 사항을 적용하면 일반(읽기 전용) 파일 시스템의 전체 패리티에 매우 가까워질 수 있지만 훨씬 더 빠릅니다. 지금은 쓰기를 구현하지 않기로 결정했습니다.
가장 큰 과제:잡기
cat와 같은 명령 또는 ls 꽤 간단합니다. 우리는 단일 파일 전체를 읽거나 디렉터리 구조를 나열하는데, 이 두 가지 모두 Redis를 사용하여 쉽게 수행할 수 있습니다. sed -n '1,240p' 같은 명령 조금 더 복잡하지만 Sorted Set을 사용하면 확실히 작동하게 만들 수 있습니다.
그레핑은 좀 다릅니다. 일반 grep -R "oauth" /workspace 해당 디렉터리 아래의 모든 파일을 읽어야 합니다. 단어가 포함되어 있는지 확인하기 위해 Redis에서 모든 문서를 꺼내는 것을 의미하는 가상 파일 시스템에서. 정말 느리고 비용이 많이 듭니다.
그러나 우리는 최근 Redis 데이터를 검색하는 Rust 기반의 매우 빠르고 효율적인 방법인 Upstash Redis Search를 출시했습니다. Redis 검색을 사용하면 grep을 가로챌 수 있습니다. 실행하기 전에 쿼리로 변환하면 파일을 가져오지 않고도 빠른 결과를 얻을 수 있습니다.
검색어는 다음과 같습니다:
import { Redis } from "@upstash/redis";
const redis = new Redis.fromEnv();
const index = redis.search.index({ name: "vfs" });
const matches = await index.query({
filter: {
$must: [
{ workspaceId: "demo" },
{ kind: "file" },
{ content: { $phrase: "oauth" } },
],
},
select: { path: true },
}); 에이전트는 여전히 일반 셸에서와 동일한 출력을 봅니다.
상담원에게 쉘 제공
마지막 부분은 이것을 just-bash까지 연결하는 것입니다. 에이전트가 이에 대해 명령을 실행할 수 있습니다. Mintlify가 어시스턴트 파일 시스템을 구축한 방식에서 영감을 받아 /workspace에 Redis 지원 fs 어댑터를 마운트합니다. MountableFs에서 :
import { InMemoryFs, MountableFs } from "just-bash";
const mountableFs = new MountableFs({ base: new InMemoryFs() });
mountableFs.mount("/workspace", redisFs); // redisFs talks to Upstash
const bash = new Bash({ fs: mountableFs, cwd: "/workspace" });
에이전트가 cat /workspace/src/index.ts를 실행할 때 , 그 readFile 호출은 바로 Redis로 전달됩니다. grep 가로채서 Redis 검색으로 리디렉션됩니다.
상담원의 관점에서 보면 이는 단지 껍질에 불과합니다. ls , cat , grep , find , 모두 작동합니다. 이를 Vercel AI SDK에 bash로 넣으면 도구를 사용하면 Redis에 전적으로 존재하는 코드베이스를 탐색할 수 있는 에이전트가 있습니다.
아이디어를 얻은 경로
우선, 위에 링크된 Mintlify의 훌륭한 기사를 살펴보겠습니다. 둘째, 대부분의 에이전트 샌드박스는 무겁습니다. 컨테이너를 부팅하고, 디스크를 마운트하고, 에이전트가 파일 하나를 다루든 천 개를 다루든 관계없이 모든 비용을 지불합니다.
Redis를 사용하는 가상 파일 시스템은 항상 켜져 있고 전역적으로 복제되며 내구성이 뛰어나며 가장 비용이 많이 드는 작업(파일 전체 검색)이 Redis Search의 장점입니다.
건배 🙌조쉬