Show HN: Evolving Agents 프레임워크
요약
본 글은 에이전트의 진화 버전을 비교(diff)하고 병합(merge)하며 평가하는 기능을 제공하는 'Evolving Agents' 프레임워크를 소개합니다. 이 플러그인은 Claude Agent SDK용으로 설계되었으며, 기존 세션 기반의 버전 관리 한계를 극복하여 복잡한 에이전트 개발 워크플로우를 지원합니다.
핵심 포인트
- Claude Agent SDK에 통합되는 에이전트 진화 버전 관리 플러그인입니다.
- 세션 간의 비교(diff) 및 병합(merge) 기능을 제공하여 에이전트 개발을 돕습니다.
- 기존 세션 기반 시스템과 달리, 커밋 단위로 버전 관리를 수행합니다.
- 개발 과정에서 발생하는 충돌(conflict) 해결에 대한 논의가 필요함을 시사합니다.
다시 활동 중입니다 — 2026-09-06. 이 저장소는 2026-08-01에 동결되었고 ai-os를 가리키며 폐쇄되었습니다.
.ai-os
이제 집에 돌아왔습니다: 히스토리가 온전한 서브트리로 여기에 있으며, 이 곳이 조직의 활발한 작업이 이루어지는 곳입니다. 도착하는 모습이 깔끔해지도록 아무것도 재작성하지 않았습니다. 2025년 툴킷은 legacy/eat/에 남아 있고, 평면적인 결과는 Evidencebelow에 남아 있으며, 첫 번째와 같은 방향을 가리키기 때문에 두 개가 더 추가되었습니다. 즉, 발견이 핵심입니다.
루프는 해결되었습니다. 포크(fork) 이후에 무슨 일이 일어나는지는 그렇지 않습니다.
Claude Agent SDK용 플러그인으로 에이전트의 진화 버전을 관리합니다 — 이를 비교(diff)하고 병합(merge)하며, 평가(eval)가 실패할 때 배포를 거부합니다.
Agent SDK는 루프를 실행하고, 툴을 배포하며, 컨텍스트를 관리하고, 권한을 강제합니다. 또한 브랜칭도 합니다: fork는 첫 번째 세션의 복사본으로 시작하는 두 번째 세션을 제공합니다.
이 둘을 다시 하나로 합치는 것은 아무것도 없습니다. 두 세션 간에는 병합(merge)이나 비교(diff)가 없으며, 평가가 퇴보한 에이전트를 승진시키는 것을 거부하는 것도 없고, 기록은 누구나 편집할 수 있는 일반 JSONL입니다. 세션은 대화를 유지합니다 — 이를 생성한 기술, 서브에이전트, 모델 및 목표는 함께 버전 관리되지 않습니다.
그 간극이 바로 이 저장소입니다. 대부분은 폐쇄되었지만, 마지막 줄은 그렇지 않으며, 이것이야말로 정확하게 언급할 가치가 있습니다.
| Agent SDK | 본 플러그인 | |
|---|---|---|
| 세션 브랜치 | fork | |
| — | ||
| 코드, 목표, 모델 및 트레이스 단일 단위 스냅샷 | — | avcs_commit |
| 두 스냅샷 비교 | — | avcs_diff, 차원별 |
| 두 스냅샷 재결합 | — | avcs_merge, 목표와 트레이스를 위한 --reconcile 시음 포함 |
| ... | 포크된 두 세션 비교 또는 병합 | |
| — | 아직 아님 — M1 |
단위 avcs_diff와 avcs_merge
operate on은 SDK 세션이 아니라 agentvcs 커밋을 대상으로 합니다. 둘 다 오늘날 작동하며, 두 개의 세션 ID를 필요로 하는 것은 어느 쪽도 아닙니다. 세션은 추가 전용 이벤트 로그이며, 이를 병합 가능한 무언가로 변환하는 어댑터는 아직 존재하지 않습니다. 포크된 두 세션은 접두사(prefix)를 공유하므로 공통 조상(common ancestor)을 찾을 수 있습니다. 열린 질문은 양쪽 브랜치가 동일한 파일에 대해 다른 결론에 도달한 대화일 때 충돌이 무엇을 의미하는가입니다.
해당 어댑터는 M1이며, 아직 시작되지 않았고, 이 저장소가 그 세부 사항 때문이 아니라 존재하는 이유입니다.
from claude_agent_sdk import query, ClaudeAgentOptions
options = ClaudeAgentOptions(plugins=[{"type": "local", "path": "/path/to/evolving-agents/plugin"}],
...
전체 세부 정보는 plugin/README.md를 참조하세요.
. MCP 서버는 **런타임 종속성(runtime dependencies)**이 전혀 없습니다 — 표준 라이브러리만 사용하며, 이것이 더 이상 사실이 아닐 경우 실패하는 테스트가 있습니다.
ai-os/ |
판매된 QM 기반의 에이전트 기반 운영체제: 플로우, 배치 구성, 마크다운 형태의 에이전트, 4단계 메모리. 851개의 테스트, CI, 실행 중인 스택 |
plugin/ |
에이전트 SDK 플러그인: MCP 서버 + 세 개의 후크(hooks) |
packages/agentvcs/ |
버전 관리 자체 — 220개의 테스트, 종속성 없음. PyPI에는 없습니다; 소스에서 설치하세요 |
packages/memory/ |
SDK의 평면적인 .claude/ 메모리 파일 위에 구조화된 회상(Structured recall). 작동합니다; 순진한 매칭보다 더 나은 측정치는 없으며 — PLAN.md를 참조하세요 |
demos/robot/ |
자신의 기술을 진화시키고 agentvcs로 버전 관리되는 2D 로봇 |
legacy/eat/ |
Evolving Agents Toolkit, 2025. 가독성을 유지했습니다; 아래를 참조하세요
이것은 Evolving Agents Toolkit이었으며: 컴포넌트 라이브러리, 에이전트 버스, 스마트 메모리, 진화 루프, 그리고 Firmware라는 거버넌스 계층을 포함하는 12개 서브시스템에 걸친 18,680줄의 코드였습니다. MongoDB Atlas를 기반으로 했습니다.
이것은 세 개의 테스트 함수를 가지고 있었습니다.
그 숫자가 이야기입니다. EAT는 실패한 제품이 아니었습니다. 그것은 작성되었지만 결코 모순될 수 있는 어떤 것에 고정되지 않은 아키텍처였습니다.
대부분은 이제 삭제되었는데, SDK가 더 잘 처리하기 때문입니다.
docs/WHAT-WAS-DELETED.md
이 10,165줄의 내용과 각각 무엇으로 대체되었는지 나열합니다. Firmware
모델에게 문자열에서 '위험한 임포트(dangerous imports)'를 절대 사용하지 않도록 요청했고, PreToolUse
훅이 permissionDecision: "deny"를 반환하여 모델이 결정한 내용에 관계없이 호출을 중단시킵니다. 이미 해결된 문제의 자체 버전을 배포할 필요가 없습니다.
legacy/eat/에 남아있는 것은 오늘날 배포되는 것들의 조상입니다. 한 가지를 읽는다면 evolution/를 읽으세요: 에이전트의 변경 사항과 그 변경 사항을 유지하고, 변화가 개선되었는지 확인할 것이 아무것도 없는 상태 사이의 고리를 닫은 337줄입니다. avcs_freeze
은 누락된 절반이 추가되어 동일한 아이디어입니다.
여기에 제시된 주장들은 측정되었으며, 결과적으로 평평했던 경우도 포함합니다.
듀얼 임베딩 리졸버는 도움이 되지 않습니다. EAT는 모든 구성 요소를 두 번 인덱싱했습니다. 하나는 그것이 무엇인지에 대한 것이고, 다른 하나는 그것을 위해 존재하는 것에 대한 것입니다. 재구축하고 측정한 결과: 어느 쪽이든 80%의 acc@1로 차이가 없습니다. 두 번째 축은 진정으로 별개입니다 (cosine = 0.753); 현대적인 인코더에서는 아무것도 구매하지 못합니다.이 조직의 "바이트 동일 와이어 형식(byte-identical wire format)" 주장은 틀렸습니다. 세 개의 오프코드 정규식 중 두 개가 일치했습니다. HALT는 파싱되는 것을 변경하는 방식으로 분기했습니다. 문장을 반복하는 대신 테스트를 작성하여 발견했습니다.과거 경험을 검색하는 것은 작업에 도움이 되지 않습니다. EAT의 SmartMemory와 그 ContextBuilderTool은 유사한 과거 작업을 회상하는 것이 다음 시도를 개선한다는 전제에 기반합니다. ai-os와 그 옆의 런타임에서 세 번 측정했습니다: 해결된 유사 사례*와 그 답안을 제공받는 검색기 대비 −4, 가장 강력하게 구성 가능한 검색기 대비 +0(p = 1.0000), 그리고 아무것도 하지 않는 것 대비 오라클(oracle) 검색기 대비 −6이었습니다. 움직인 것은 동일한 궤적에서 유도된 규칙에 대한 간결한 진술이었습니다: 오라클 대비 +21.메모리 계층은 어휘 검색에 패배합니다. ai-storage
EAT가 주장한 네 가지 레벨의 스마트 메모리를 구현합니다. 완벽한 내비게이터를 가진 천장(ceiling)에서의 첫 번째 벤치마크는 다음과 같습니다: 정확 검색은 모든 코퍼스 크기에서 3/3, 계층적 탐색은 1–2/3이며, 단계 외부에서는 평평한 파일이 전혀 적합하지 않았습니다.
세 가지 평면적인 결과, 세 가지 아키텍처, 하나의 방향. 2025년의 이중 축(dual axis), 2026년의 경험 검색(experience retrieval), 그리고 그 이후의 계층 구조. 각각은 명백한 다음 구조였고, 각각은 숫자를 요구받았습니다. 바로 이것이 이 리포지토리의 목적이며, 도구 키트가 삭제된 것이 아니라 legacy/에 있는 이유입니다: 어디를 봐야 하는지는 맞았지만, 거기에 무엇이 있을지는 틀렸습니다.
pip install git+https://github.com/EvolvingAgentsLabs/evolving-agents
이제는 더 이상 evolving_agents 패키지를 설치하지 않습니다. 이곳은 이제 모노레포(monorepo)입니다. 원하는 것을 이름으로 설치하세요:
agentvcs
이는 PyPI에 한 번도 게시된 적이 없습니다. 릴리스 워크플로우는 존재하지만, 신뢰할 수 있는 발행자(Trusted Publisher)가 등록되지 않았기 때문에 pip install agentvcs를 실행하면 404 오류가 반환됩니다.
소스에서 설치하세요:
pip install "git+https://github.com/EvolvingAgentsLabs/evolving-agents#subdirectory=packages/agentvcs"
2025년 패키지는 legacy/eat/에 원래의 setup.py와 함께 변경 없이 자리하고 있습니다.
Matias Molinas 및 Ismael Faro · Apache 2.0
AI 자동 생성 콘텐츠
본 콘텐츠는 HN AI Research의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기