본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 30. 10:12

자기 개선형 에이전트에게 스스로를 개선하라고 요청해 보았다

요약

Nous Research의 오픈 소스 에이전트인 Hermes Agent를 사용하여 '자기 개선'의 실체를 실험한 기록입니다. 모델 자체의 가중치를 수정하는 것이 아니라, 메모리 축적을 통해 컨텍스트를 강화하는 방식으로 개선이 이루어짐을 확인했습니다.

핵심 포인트

  • Hermes Agent는 메모리 축적을 통해 자기 개선을 수행함
  • 개선은 모델의 지능 향상이 아닌 컨텍스트 축적에 집중됨
  • 시맨틱 메모리와 절차적 메모리 계층을 활용함
  • GPT-5.5 백엔드를 활용한 실험 결과 공유

이 글은 Hermes Agent Challenge를 위한 제출물입니다.

Hermes Agent와의 첫 만남, 그리고 "자기 개선(self-improving)"이라는 단어의 의미를 바꾼 4분에 대한 이야기입니다.

저는 이전에 에이전트 프레임워크(agentic framework)를 실행해 본 적이 없습니다. 그래서 Hermes에 대해 읽었을 때, 저를 멈춰 세운 것은 Nous Research의 오픈 소스 에이전트인 Hermes Agent 상단에 찍혀 있는 문구였습니다:

"자기 개선형 AI 에이전트(The self-improving AI agent)."

이 문구는 심오하거나, 아니면 마케팅 용어일 것입니다. 외부에서는 어느 쪽인지 알 수 없습니다. 모든 것이 스스로 개선된다고 말합니다. 그래서 저는 초보자가 할 수 있는 가장 문자 그대로의 행동을 했습니다. 그것을 설치하고, 그 현장을 포착하려는 목적으로 몇 가지 작업을 맡겼습니다.

저는 그것을 포착했습니다. 하지만 제가 예상했던 방식도, 예상했던 때도 아니었습니다. 흥미로운 점은 그것이 개선되었는지 _여부_가 아니었습니다. "개선(improvement)"이 결과적으로 무엇을 의미하게 되었느냐 하는 것이었습니다. 제가 조사 과정에서 무엇을 발견했는지 확인하려면 끝까지 읽어보세요. 걱정 마세요, 제가 가능한 한 많은 증거(receipts)를 추가했으므로 여러분도 저만큼 이 과정이 흥미롭다고 느낄 것입니다.


[스크린샷: 모델 설정이 gpt-5.5(OpenAI Codex 백엔드 경유)로 되어 있는 건강한 설치 상태를 보여주는 hermes doctor]

아래의 모든 내용은 백엔드 모델로 GPT-5.5를 사용하여 실행되었습니다. 이 세부 사항은 중요하며, 나중에 다시 언급하겠습니다.

가장 먼저 물어야 할 것은 "자기 개선"이 도대체 무엇을 의미하느냐는 것입니다.

고정된 언어 모델(language model)은 당연히 자신의 가중치(weights)를 스스로 다시 쓸 수 없습니다. GPT-5.5는 내일도 GPT-5.5일 것이라고 말해도 무방합니다. 그렇다면 개선할 수 있는 것은 무엇이 남았을까요?

문서를 읽어보면, 그 답은 실망스러울 정도로 구체적입니다. 간단히 말해, Hermes는 메모를 합니다. 이는 유능한 신입 사원이 하는 방식과 유사하게 개선된다는 것을 의미하며, 이는 모델의 뇌가 더 똑똑해진다는 뜻이 아닙니다. 대신 업무와 협업하는 사람에 대한 컨텍스트 (Context)를 축적함으로써 개선된다는 의미입니다.

따라서 다음 세 가지 계층을 고려해야 합니다:

  1. 시맨틱 메모리 (Semantic memory): ~/.hermes/memories/ 디렉토리 아래의 일반적인 MEMORY.mdUSER.md 파일에 저장된 당신과 당신의 환경에 관한 사실들.
  2. 절차적 메모리 (Procedural memory) - 기술 (Skills): 에이전트가 무언가를 수행하는 방법을 알아냈을 때 스스로 작성할 수 있는 작은 SKILL.md 플레이북(playbooks)이며, ~/.hermes/skills/에 저장됩니다.
  3. 큐레이터 (Curator): 이러한 기술들이 쓸모없는 쓰레기로 변하지 않도록 가지치기하고, 아카이브하며, 중복을 제거하는 백그라운드 프로세스.

모델은 동결(frozen)되어 있지만, 메모는 살아있습니다. 이 생각이 전체 이야기의 핵심이 될 것이므로 일단 이 상태로 유지하세요.

제 테스트는 간단했습니다. Hermes에게 실제 업무를 주고 세 가지 계층을 모두 관찰하는 것이었습니다. 실제로 무언가를 기록할까요? 만약 기록한다면, 무엇을 기록할까요? 기록을 할까요?

실험 1: 코드를 작성하기 전 수행한 조용한 행동

저는 작은 규모로 시작했습니다. 에이전트가 날짜를 출력하고, 최근에 변경된 다운로드 항목 5개를 나열하며

$ cat ~/.hermes/memories/USER.md
사용자는 Zoll임; 간결한 출력을 선호하며 zsh를 사용함; Marcus Aurelius를 좋아함.
§
...

(그 두 번째 줄은 제가 수정을 요청한 후에 나타났습니다. 에이전트는 요청받지 않았음에도 그 내용 또한 저장했습니다.)

하지만 일어나지 않은 일이 있습니다. 바로 새로운 기술(skill)의 생성입니다. ~/.hermes/skills/ 디렉토리에는 기존의 약 90개에 달하는 번들링된 기술들이 있었지만, 단 하나의 새로운 파일도 없었습니다. 에이전트가 스스로 절차적 지식 (procedural knowledge)을 작성한다는 것을 암시했던 핵심적인 동작은 일어나지 않았습니다.

제가 세웠던 가설에 대해 솔직하게 말씀드리겠습니다. 왜냐하면 곧 제가 틀렸음이 증명될 것이기 때문입니다. _어쩌면 "자기 개선 (self-improvement)"이란 그저 "당신의 프로필을 유지한다"는 말을 그럴싸하게 포장한 표현일지도 모릅니다. 물론 이것도 유용하지만, 솔직히 말해서 제가 시각화하기를 기대했던 공상 과학 (sci-fi)적인 약속과는 거리가 멀었습니다. :)

어쨌든 에이전트는 그 가설이 틀렸음을 증명하며 저를 당황하게 만들려 하고 있었습니다.

실험 2: 제가 알아차리지 못한 4분

두 번째 작업으로는 더 어렵고 명시적으로 재사용 가능한 것을 골랐습니다. 왜냐하면 문서에 따르면 바로 그런 경우가 기술 (skill)을 트리거해야 한다고 명시되어 있기 때문입니다. 저는 완벽한 port-killer.sh를 요청했습니다. 에이전트가 포트를 입력받아 macOS에서 해당 포트를 사용 중인 프로세스를 찾고, 프로세스를 보여준 뒤, 확인을 거쳐 종료(kill)하도록 요구했습니다. 참고로, 저는 "이것은 제가 항상 재사용할 워크플로우 (workflow)이니, 아주 탄탄하게 만들어 주세요."라는 마법의 문구를 사용하여 에이전트를 유도해 보았습니다.

그 뒤에 벌어진 일은 제가 이번 주에 본 것 중 가장 인상적인 장면이었습니다. 스크립트를 작성하는 것 외에도, Hermes는 마치 자신의 코드를 믿지 못하는 엔지니어처럼 그것을 테스트 (test) 했습니다. Hermes는 실제 포트에 진짜 Python HTTP 서버를 실행시킨 뒤, 스크립트가 이를 찾아내고 종료하는지 확인했습니다. 그 모든 과정을 마친 후, Hermes는 리스너가 없는 경로를 확인하기 위해 빈 포트를 대상으로 스크립트를 실행했습니다. 그 과정에서 좀비 프로세스 (zombie processes)와 set -e와 관련된 실제 버그를 발견했고, 이에 대해 추론한 뒤 스스로 패치 (patch)했습니다.

[스크린샷: 포트 킬러(port-killer) 실행 — "TCP 포트 56760에서 대기 중인 프로세스(es)… PID 95186 종료됨… 확인됨: 대기 중인 프로세스가 남아 있지 않음"]

이 시점에서 저는 상당히 만족스러웠고, 드디어 제가 의도했던 문장을 입력했습니다. 이것이 이번 실험의 궁극적인 목적이기도 했습니다.

"방금 알아낸 내용을 재사용 가능한 기술 (skill)로 저장해서 다음번에는 더 빠르게 수행할 수 있도록 하세요."

이 명령어를 입력하고 엔터를 누른 후, 저는 에이전트가 이상한 행동을 하는 것을 발견했습니다. 에이전트는 macos-port-killer라는 이름의 기술 (skill)을 만들기 시작하더니… 갑자기 멈추고, "이름 충돌 (name collision)"에 대해 중얼거리더니, 스스로 *뒷정리 (cleaning up after itself)*를 하기 시작했습니다. 그 과정에서 에이전트는 해당 내용을 다른 기술로 통합하고, 방금 만든 중복 항목을 삭제했습니다. 에이전트의 내부 노트에는 제가 아직 이해하지 못한 내용이 적혀 있었습니다.

"기존의 shell-scripting이 새로 생성되는 대신 업데이트되었습니다… 자동화된 백그라운드 기술 생성 (automatic background skill creation) 과정이 포함되었을 수 있습니다."

기존의 것? 저는 기술 (skill)을 만든 적이 없었습니다. 그래서 에이전트가 수상한 말을 할 때 하는 대로, 로그 (logs)를 확인하러 갔습니다.

$ grep -E "skill_manage|conversation turn" ~/.hermes/logs/agent.log
23:45:40  conversation turn: msg='...write me a zsh script port-killer...'
23:49:01  tool skill_manage completed      ← 여기서 기술을 작성했습니다
...

타임스탬프를 읽어보니 에이전트가 port-killer 작업을 마무리하던 중 23:49:01에 스스로 기술(skill)을 작성했다는 사실을 발견했습니다. 저는 그로부터 4분 이상 지난 23:53:41이 되어서야 무언가를 저장하라고 요청했습니다. 제가 명령을 내렸을 때, 에이전트는 이미 스스로 그 일을 마친 상태였고, 저의 지시는 단지 에이전트가 이전에 수행한 작업에 스스로 걸려 넘어지게 만들었을 뿐입니다.

제 가설은 틀렸습니다. 절차적 자기 개선 (procedural self-improvement)은 실재하며, 자율적입니다. 단지 사소한 일일 브리핑 (daily-brief)을 위해서는 실행되지 않았을 뿐입니다. 저는 이어서 이것이 _임계값 기반 (threshold-gated)_으로 작동하며, 기억할 가치가 있을 만큼 충분히 복잡하고 재사용 가능한 작업을 기다리고 있다는 새로운 가설을 세웠습니다. 테스트 흐름을 통해 확인했듯이, port-killer 작업은 요구되는 기준을 통과했지만, 스토아 철학 명언 장난감 (Stoic-quote toy)은 통과하지 못했습니다.

그 사실 하나만으로도 오후와 밤을 보낸 것이 정당화되었습니다 (이 작업이 꽤 오래 끌었다는 점을 인정하는 것이 부끄럽지는 않습니다). 이 새로운 가설을 세운 후, 저는 에이전트가 작성한 기술을 열어보았습니다.

모든 것을 재정의한 결과물

다음은 인간의 개입 없이(no human in the loop), 에이전트가 에이전트를 위해 작성한 ~/.hermes/skills/software-development/shell-scripting/SKILL.md 파일의 일부입니다:

## 사용자 지정 기본값 (User-specific defaults)

- Zoll을 위해 생성된 스크립트의 경우, 셸(shell)이 지정되지 않으면 `zsh`를 선호합니다.
...

[스크린샷: 새로운 SKILL.md 파일이 존재하는 것이 확인됨]

Hermes가 이 기술을 만든 관점이 "셸 스크립트를 작성하는 방법"이 아니라, **"Zoll이 원하는 방식으로 셸 스크립트를 작성하는 방법"**이었다는 점은 주목할 만합니다. 이 내용은 제 이름을 직접 언급하며 작성되었습니다. Hermes는 제가 지나가는 말로 언급했던 zsh, set -euo pipefail, chmod +x, 간결한 보고서와 같은 선호 사항들을 흡수하여 이를 재사용 가능한 절차로 고착화했습니다.

이 기술은 단순한 개인화 그 이상의 깊이를 가지고 있습니다. 제가 _포트 킬러(port-killer)_를 요청했을 때, 그것은 광범위한 shell-scripting 기술을 저장하고 특정 레시피는 하위 참조 파일로 격하시켰습니다. 그것은 작업을 하나의 역량으로 **일반화(generalized)**했습니다. 그리고 나중에 제가 기술을 저장하라고 명령했을 때, 그것은 이미 해당 작업을 수행했음을 인식하고 불필요한 중복 파일을 생성하는 것을 거부했습니다. 이것이 바로 Curator가 강제하기 위해 존재하며, 이후 에이전트가 스스로 선제적으로 수행하도록 맡기는 바로 그 규율입니다.

그 순간, 실험의 두 측면이 하나의 사실로 합쳐졌습니다.

그것은 _나_에 대해 학습했습니다. 그것은 _자기 자신_에게 기술을 가르쳤습니다. 그리고 그것이 스스로에게 가르친 기술은 나에게 맞춤화되어 있었습니다. 이 과정은 마치 하나의 행위가 양쪽에서 전달되는 것처럼 느껴졌습니다.

그렇다면 Hermes는 진정 무엇인가?

이 조사를 통해 얻은 재정의(reframe)가 여기 있습니다. 이 재정의는 프로젝트 전체의 맥락을 바꿉니다.

Hermes에서의 "자기 개선(Self-improvement)"은 에이전트가 더 똑똑해지는 것이 아닙니다. 그것은 에이전트가 특정 한 사람을 보조하는 데 더 능숙해지는 것입니다. 지능은 고정되어 있습니다. 복리로 쌓이는 것은 당신이 누구인지, 일을 어떻게 처리하는 것을 선호하는지, 그리고 당신을 위해 도출해낸 절차와 같은 에이전트의 개인화된 컨텍스트(context)입니다. 개선과 관계는 동일한 움직임입니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0