0. 들어가며
최근 LLM 기반 에이전트 도구들이 빠르게 등장하고 있습니다. 코드 작성을 보조하는 수준을 넘어, 리서치 자동화, 논문 초안 작성, 코드 감사까지 수행하는 도구들이 속속 공개되고 있는데요. 이번 글에서는 그 중 하나인 Feynman이라는 오픈소스 AI 리서치 에이전트(Research Agent)를 직접 설치하고 테스트해 본 경험을 공유합니다.
결론부터 말씀드리면, 실제 보안 연구나 컨설팅 업무에 직접 접목하기에는 아직 한계가 있었습니다. 다만 Feynman이 채택한 SKILL.md 기반의 에이전트 설계 패턴은 충분히 차용할 만한 아이디어를 담고 있었고, 이 부분이 필자에게는 더 인상적이었습니다.
GitHub 저장소: https://github.com/getcompanion-ai/feynman
GitHub - getcompanion-ai/feynman
Contribute to getcompanion-ai/feynman development by creating an account on GitHub.
github.com
1. Feynman 개요
Feynman은 getcompanion-ai 조직에서 개발한 오픈소스 CLI 기반 AI 리서치 에이전트입니다. 2026년 3월에 처음 공개되었으며, 학술 연구와 기술 조사 워크플로우를 자동화하는 것을 목표로 합니다.
핵심 특징
| 항목 | 내용 |
|---|---|
| 저장소 | getcompanion-ai/feynman |
| 버전 | v0.2.16 (2026-03-29 기준) |
| 라이선스 | MIT |
| 런타임 | Node.js >= 20.19.0 |
| LLM 지원 | OpenAI, Anthropic, Google Gemini, Groq, xAI 등 다수 |
Feynman은 자체 모델을 탑재하지 않습니다. 외부 LLM API를 호출하는 오케스트레이터(Orchestrator) 역할을 하며, 연구 과정을 여러 서브에이전트에게 분배하는 구조입니다.
제공하는 주요 명령어
| 명령어 | 기능 |
|---|---|
/deepresearch |
다중 에이전트 기반 심층 조사. 병렬 연구 + 검증 + 합성 |
/lit |
문헌 리뷰. 논문 검색 + 1차 문헌 합성 |
/review |
모의 피어 리뷰. 심각도별 피드백 생성 |
/audit |
코드 감사. 논문 주장과 공개 코드의 재현 가능성 비교 |
/replicate |
실험 재현. 로컬/클라우드 환경에서 실행 계획과 스크립트 생성 |
/draft |
논문/보고서 초안 작성 |
/autoresearch |
자율 실험 루프. 메트릭 기반 반복 최적화 |
/eli5 |
복잡한 연구를 쉬운 언어로 설명 |
4개의 핵심 서브에이전트
Feynman 내부에는 역할이 분리된 4개의 서브에이전트가 존재합니다.
- Researcher - 논문, 웹, 레포지토리에서 근거를 수집
- Reviewer - 심각도 기반 피어 리뷰 피드백 생성
- Writer - 연구 노트를 기반으로 구조화된 초안 작성
- Verifier - 인라인 인용 관리, 출처 URL 검증, 데드 링크 제거
각 서브에이전트 간 핸드오프(handoff)는 디스크 기반 파일로 이루어집니다. 스트리밍 컨텍스트가 아니라 중간 산출물을 파일로 주고받는 구조여서, 각 단계의 결과를 독립적으로 확인하고 재실행할 수 있다는 점이 특징입니다.
2. 설치 방법
기본 설치 (macOS/Linux)
curl -fsSL https://feynman.is/install | bash
설치 후 ~/.local/bin/feynman 경로에 바이너리가 생성됩니다.
설치 확인
feynman --version
# 0.2.16
feynman --help
필수 사전 조건
- Node.js 20.19.0 이상이 설치되어 있어야 합니다
- LLM API 키 최소 하나 이상 필요합니다 (OpenAI, Anthropic, Gemini 등)
- Docker (선택) - 코드 실행 샌드박싱용
- 웹 검색: Gemini 또는 Perplexity API 키 필요
환경 변수 설정
# ~/.feynman/.env 또는 환경변수로 설정
export ANTHROPIC_API_KEY="sk-ant-..."
# 또는
export OPENAI_API_KEY="sk-..."
# 웹 검색용 (선택)
export GEMINI_API_KEY="..."
소스에서 빌드 (개발용)
git clone https://github.com/getcompanion-ai/feynman.git
cd feynman
nvm use || nvm install
npm install
npm run build
Skills-only 설치
전체 터미널 애플리케이션 없이 스킬만 가져오는 것도 가능합니다.
- 글로벌:
~/.codex/skills/feynman - 레포지토리 로컬:
.agents/skills/feynman
3. 실제 활용 테스트
테스트 환경
필자의 작업 환경에는 이미 Node.js, Docker, Claude Code 등이 설치되어 있었기 때문에 Feynman 자체의 설치는 수월했습니다. 테스트 주제로는 실무와 관련된 "클라우드 진단 표준화를 위한 스크립트 기반 취약점 진단"을 선정했습니다.
실행 과정과 마주한 문제
처음에는 /deepresearch 명령으로 한 번에 긴 프롬프트를 넘겨보았습니다.
feynman deepresearch --new-session \
--prompt "클라우드 진단 표준화를 위한 스크립트 기반 취약점 진단 ..."
그러나 context_length_exceeded 에러가 반복적으로 발생했습니다. 대량의 한국어 프롬프트 + 연구 컨텍스트를 한 세션에 넣으면 토큰 한도를 빠르게 초과하는 문제였습니다.
해결: 설정 최적화 + 청크 분할
// ~/.feynman/agent/settings.json
{
"defaultThinkingLevel": "minimal"
}
defaultThinkingLevel을 medium에서 minimal로 변경하고, 하나의 긴 프롬프트를 5개 청크로 분할하여 각각 --new-session으로 실행했습니다.
# 청크별 개별 실행
feynman deepresearch --new-session --prompt "청크1: 문제정의와 실패 패턴" \
> research_runs/chunk1.txt 2> research_runs/chunk1.err
feynman deepresearch --new-session --prompt "청크2: AWS/Azure/GCP 통제군 설계" \
> research_runs/chunk2.txt 2> research_runs/chunk2.err
# ... chunk3 ~ chunk5 동일 패턴
산출물 구조
최종적으로 아래와 같은 산출물이 생성되었습니다.
클라우드-진단-표준화-스크립트-기반-취약점-진단/
├── final_report_cloud_script_based_audit.md # 최종 통합 보고서
├── notes/
│ ├── 01_evidence_matrix.md # 주장-출처 매트릭스
│ ├── 02_research_notes.md # 연구 노트
│ ├── 03_framework.md # 표준화 프레임워크
│ ├── 04_verification_log.md # 검증 이력
│ └── 05_execute_commands.md # 실행 가이드
├── artifacts/
│ ├── eval_maturity.py # 성숙도 계산 스크립트
│ ├── control_catalog.sample.json # 샘플 제어 카탈로그
│ └── scan_result.sample.json # 샘플 스캔 결과
├── references/ # 23개 참조 문서
└── research_runs/ # 청크별 실행 결과
검증 실행
Feynman이 생성한 성숙도 평가 스크립트를 직접 실행해보았습니다.
python3 artifacts/eval_maturity.py \
artifacts/control_catalog.sample.json \
artifacts/scan_result.sample.json
overall_score=53.85
maturity_level=2
critical_block_count=0
domain_scores:
- identity: 55.56
- encryption: 50.0
스크립트 자체는 정상 동작했으며, 성숙도 레벨 2(표준화 초기 단계)로 평가되었습니다. 그러나 이것은 샘플 데이터 기반의 시연용 결과이지, 실제 클라우드 환경을 진단한 결과가 아닙니다.
4. SKILL.md 설계 패턴 분석
필자에게 Feynman에서 가장 인상적이었던 부분은 연구 결과물 자체보다 SKILL.md 기반의 에이전트 설계 패턴이었습니다.
SKILL.md란?
Feynman에서 각 기능(스킬)은 독립된 디렉토리 아래의 SKILL.md 파일로 정의됩니다. 이 파일에는 YAML 프론트매터와 마크다운 본문으로 구성된 지침이 담겨 있습니다.
name: deep-research
description: 심층 조사가 필요할 때 트리거. 다중 소스 기반 근거 수집과 검증을 수행.
본문에는 다음과 같은 내용이 포함됩니다.
- 어떤 워크플로우를 실행할 것인지 (예:
/deepresearch파이프라인) - 어떤 프롬프트 템플릿을 참조할 것인지 (예:
prompts/deepresearch.md) - 어떤 서브에이전트를 호출할 것인지 (예: researcher, verifier)
- 산출물 형식과 저장 위치 (예:
outputs/,papers/)
내장된 19개 스킬
Feynman은 skills/ 디렉토리에 19개의 내장 스킬을 제공합니다.
| 분류 | 스킬 목록 |
|---|---|
| 연구 | deep-research, literature-review, alpha-research, autoresearch |
| 검증 | peer-review, paper-code-audit, replication |
| 작성 | paper-writing, eli5 |
| 비교 | source-comparison |
| 인프라 | docker, modal-compute, runpod-compute |
| 세션 | session-log, session-search, preview, watch, jobs |
| 기여 | contributing |
차용할 수 있는 설계 아이디어
Feynman의 SKILL.md 패턴에서 주목할 점은 다음과 같습니다.
1) 선언적 스킬 정의
스킬의 트리거 조건, 실행 절차, 산출물 형식을 하나의 마크다운 파일에 선언적으로 정의합니다. 코드가 아니라 자연어로 에이전트의 행동을 규정하는 방식이므로, 비개발자도 스킬의 동작을 이해하고 수정할 수 있습니다.
2) 프롬프트 템플릿 분리
SKILL.md 자체는 간결하게 유지하고, 실제 복잡한 프롬프트는 별도의 prompts/ 디렉토리로 분리합니다. 이렇게 하면 스킬 정의와 프롬프트 엔지니어링을 독립적으로 관리할 수 있습니다.
3) 파일 기반 에이전트 간 핸드오프
서브에이전트 간 데이터 전달을 인메모리가 아닌 파일로 수행합니다. 덕분에 각 단계의 중간 산출물을 사람이 직접 검증하거나, 특정 단계만 재실행하는 것이 가능합니다.
4) 출처 검증(Provenance) 내장
모든 주장에 .provenance.md 사이드카 파일을 생성하여 verified, unverified, blocked, inferred 상태를 추적합니다. 연구 산출물의 신뢰도를 기계적으로 관리하는 패턴으로, 보안 진단 보고서 자동화에도 적용해볼 만한 구조입니다.
실제로 필자의 블로그 운영에서도 유사한 구조를 적용하고 있습니다. ~/{REDACTED}/.claude/skills/ 아래에 블로그 특화 스킬(draft-content, seo-audit 등)을 SKILL.md 형태로 정의하여, AI 에이전트가 블로그의 어조와 구조를 일관되게 따르도록 하고 있습니다. Feynman의 접근 방식과 근본적으로 같은 패턴입니다.
5. 실무 접목 가능성 평가
기대했던 것
보안 컨설팅 업무에서 반복되는 리서치 작업, 예를 들어 CVE 분석, 클라우드 정책 조사, 취약점 진단 표준 비교 등을 Feynman으로 자동화할 수 있을지 기대했습니다.
현실적 한계
직접 테스트해본 결과, 현 단계에서 보안 연구 실무에 직접 접목하기는 어렵다고 판단했습니다. 주요 이유는 다음과 같습니다.
1) 컨텍스트 길이 제약
한국어 프롬프트는 영문 대비 토큰 소모가 크고, 보안 진단처럼 구체적인 맥락이 많이 필요한 작업에서는 단일 세션으로 충분한 컨텍스트를 제공하기 어려웠습니다. 실제로 context_length_exceeded 에러가 빈번했습니다.
2) 산출물의 실무 적용 수준
Feynman이 생성한 보고서와 프레임워크는 구조적으로는 깔끔했지만, 실제 클라우드 환경을 대상으로 한 진단 결과가 아닌 일반론적 정리 수준이었습니다. 보안 컨설팅에서 요구하는 구체적인 증적(evidence)이나 환경별 맞춤 진단 결과와는 거리가 있었습니다.
3) 프로젝트 성숙도
v0.2.16으로 아직 1.0에 도달하지 않은 초기 단계입니다. 2026년 3월 공개 이후 약 3주 된 시점에서 테스트한 것이므로, 안정성이나 기능 완성도를 기대하기에는 이른 시기였습니다.
4) 웹 검색 의존
Feynman의 리서치 기능은 Gemini 또는 Perplexity 기반 웹 검색에 의존합니다. 내부망이나 폐쇄 환경에서의 보안 진단 업무에는 활용이 제한됩니다.
그럼에도 가치 있는 부분
반면, SKILL.md 설계 패턴과 에이전트 아키텍처 아이디어는 충분히 차용 가능합니다.
- 반복되는 진단 보고서 작성 워크플로우를 스킬로 정의하고 자동화
- 출처 검증(Provenance) 패턴을 진단 증적 관리에 적용
- 파일 기반 핸드오프를 통한 중간 산출물의 투명한 관리
- 서브에이전트 분리(조사 / 검증 / 작성 / 리뷰) 패턴의 차용
마치며
Feynman은 LLM 기반 리서치 에이전트로서 흥미로운 시도를 하고 있는 프로젝트입니다. /deepresearch, /audit, /replicate 같은 명령어로 연구 워크플로우를 자동화하겠다는 비전은 매력적입니다.
하지만 현 시점에서 보안 컨설팅이나 취약점 진단 같은 실무에 직접 접목하기에는 컨텍스트 제약, 산출물의 일반론적 수준, 프로젝트 초기 성숙도 등의 한계가 있었습니다.
필자가 이 도구에서 가장 가치를 느낀 부분은 연구 결과물 자체가 아니라, SKILL.md 기반으로 에이전트의 행동을 선언적으로 정의하고, 서브에이전트 간 파일 핸드오프로 투명하게 워크플로우를 관리하는 설계 패턴이었습니다. 이러한 패턴은 보안 진단 자동화, 보고서 생성 파이프라인, 연구 노트 관리 등에 충분히 응용 가능한 아이디어라고 봅니다.
LLM 에이전트 도구에 관심 있는 분이라면, Feynman의 skills/ 디렉토리 구조와 SKILL.md 작성 방식을 한 번 살펴보시는 것을 추천합니다. 도구 자체를 당장 실무에 도입하지 않더라도, 에이전트 설계에 대한 좋은 참고가 될 것입니다.
References
Feynman — The open source AI research agent
feynman "what do we know about scaling laws" Cited research brief from papers and web feynman deepresearch "mechanistic interpretability" Multi-agent deep dive with synthesis and verification feynman lit "RLHF alternatives" Literature review with consensus
www.feynman.is
GitHub - getcompanion-ai/feynman
Contribute to getcompanion-ai/feynman development by creating an account on GitHub.
github.com
'Side Project > 💡 LLM Optimized' 카테고리의 다른 글
| 정보보안 컨설턴트, 어떤 일을 하나요? (3) | 2024.11.30 |
|---|
