EvolvingAgentsLabs/evolving-agents
요약
EvolvingAgentsLabs의 오픈 연구소는 에이전트가 팀의 작업 방식을 학습하고 개선할 수 있도록 설계되었습니다. 'director'라는 메타 에이전트는 연결된 진술 메모리를 기반으로 계획을 세우고, 작업을 프론티어 모델이나 로컬 전문화 모델에 위임하며 모든 과정에서 학습합니다. 이 시스템은 버전 관리되고 책임 소재가 명확한 패치 형태로 지식을 축적하는 것이 핵심입니다.
핵심 포인트
- director: 연결된 진술 메모리를 기반으로 계획을 세우고 작업을 분할/위임하는 메타 에이전트.
- 작업의 모든 학습 과정은 게이티드되고 버전 관리되는 '패치' 형태로 기록되어 책임 소재가 명확함.
- 로컬 전문화 모델(lora-kernel)과 원장(agentvcs)을 통해 지식 축적 및 프로토콜 준수 능력을 입증함.
- Claude Code와 같은 도구를 활용하여 메모리를 컴파일하고 시스템의 작동 방식을 체계적으로 관리할 수 있음.
팀이 어떻게 작동하는지 학습하고 배운 내용을 보여줄 수 있는 에이전트를 위한 오픈 연구소입니다.
director는 팀의 작업 방식을 작고 연결되고 검증 가능한 진술들의 메모리로 유지합니다. 이 메모리를 따라 계획을 세우며, 각 단계를 프론티어 모델(frontier model)이나 작은 로컬 전문화된 모델에 할당하고 모든 작업으로부터 학습합니다. 여기서 얻은 매 수업은 책임 소재를 명확히 하거나 분할(bisected)할 수 있는 게이티드되고 버전 관리되는 패치입니다.
아래의 모든 숫자는 측정되었으며, 결과가 평평했던 경우까지 포함됩니다.
당신이 규칙을 작성했습니다. 하지만 당신의 에이전트는 압박감 속에서 여전히 그 규칙을 위반합니다. 14개의 실제 상황 중 Claude Code 세션으로 규칙을 로드하고 계획한 횟수는 0.589였고; director는 동일한 규칙을 연결된 진술로 컴파일하여 작동했을 때의 비율은 0.929였습니다. 만약 CLAUDE.md, AGENTS.md 또는 Claude Code의 메모리를 유지한다면, 이것이 당신을 위한 것입니다:
적용되는 순간에 규칙을 상기하고— 계획의 모든 단계에서 따랐던 진술을 인용합니다; 당신의 수정으로부터 학습하며— 제안된 각 수업은 이미 알고 있는 것과 비교하여 확인되고, 되돌릴 수 있고 버전 관리되는 패치로서 당신이 승인할 경우에만 유지됩니다; 어디서 작업을 수행해야 하는지 학습합니다— 작업을 한 번 프론티어에서 로컬 모델로 이동시키면, 다음 작업도 그곳에서 계획을 세웁니다.
git clone https://github.com/EvolvingAgentsLabs/evolving-agents && cd evolving-agents/packages/director
# 지침을 메모리로 컴파일합니다 (Claude Code와 Opus 사용; 약 60개 파일의 한 번의 컴파일: 약 US$5)
python3 -m director.compile --claude-md ~/your-project/CLAUDE.md \
...
Python 3.10 이상과 PATH에 Claude Code(claude)가 필요합니다. 표준 라이브러리만 사용합니다. 메모리는 당신의 기기에 남아 있습니다. 비용, 아직 수행하지 않은 것들, 그리고 모든 측정값: packages/director/
· 다음 계획: ROADMAP.md.
| piece | what it does | measured [ran] | where |
|---|---|---|---|
| director | 메타 에이전트: 운영 메모리를 따라 계획을 세우고, Claude Code 또는 로컬 모델에 위임하며, 각 작업과 사용자가 작업을 이동하는 과정에서 학습합니다 | 팀의 진행 방식 계획 (오늘 세션 기준 14개 실제 상황): 0.929 대 0.589; 작업으로부터 학습: 0.0 → 0.781 (보류된 프로브); 고장 없음 (0.964); 레인 학습: 한 번의 이동 후 0 / 6 → 6 / 6 | packages/director/ — 여기 |
| lora-kernel | 로컬 레인: 작고 상주하는 모델 하나, 많은 전문가(어댑터 + 라이브러리 + 범위 지정 도구), 최전선으로 추상화하는 라우터 | 전문가는 자신의 작업에서 기본 베이스보다 우수함 (70/70 대 27/70); 로컬로 서비스된 외국 텍스트 600개 중 0개; 재학습 없이 답변한 편집된 사실 17/17 | lora-kernel |
| agentvcs | 원장: 하네스(harness)의 모든 변경 사항 — 그리고 director가 유지하는 모든 교훈은 diff, merge, blame 및 bisect 할 수 있는 게이티드 패치입니다 | 프로토콜 준수 117/117; 실제 모델에서, 실행 도중에 적용된 정확한 하나의 패치에 +0.442의 책임(blame)을 부여함; bisect는 공동으로만 책임을 부여할 수 있는 회귀를 명명합니다 | agentvcs |
| gene-evidence | 사례 연구: 모든 문장이 근거하는 도구 출력을 인용하는 예측 유전자 보고서, 매번 실행 시 동일한 바이트를 사용합니다 | 구축 가능하고 재현 가능함; 알려진 한계 측정: 후보군을 설명하지만 순위를 매기지는 않습니다 | gene-evidence |
조각들이 연결되는 방식 — 구축되고 계획됩니다. 구축: director는 Claude Code와 모든 OpenAI 호환 로컬 서버(16GB 노트북의 llama.cpp에서 실행됨)에 위임하며, 유지하는 모든 메모리 편집은 agentvcs 패치이며, 게이티드되어 적용됩니다 (blame은 학습 패치에 +0.781을 부여합니다); agentvcs는 lora-kernel의 구성을 매니페스트로 읽고 변경 사항을 게이트합니다. 계획: bare model 대신 lora-kernel의 전문가와 라우터를 통한 director의 로컬 레인; gene-evidence의 보고서는 lora-kernel 전문가가 작성하고 agentvcs에 의해 버전 관리됩니다.
| plan by walking the memory | learn from a task | learn where work runs |
|---|---|---|
What it is, how to run its interface, and every measurement with its brief: packages/director/
.
| status | ||
|---|---|
evolving-agents (이 저장소) | The hub: the director, 그리고 연구실의 초기 작업물 — Agent SDK 플러그인, ai-os 서브트리, packages/, 로봇 데모, 2025 툴킷 |
active — director는 활성화; 나머지는 일시 중단 |
| lora-kernel | 특화된 로컬 AI 에이전트를 위한 운영 계층: 작은 상주 모델 하나, 많은 전문 모델들, 프론티어 모델로 추상화하는 라우터 | active |
| agentvcs | 라이브 패치된 에이전트 시스템의 버전 관리: Rust 코어, 게이트, Claude Code와 병합, 책임 소재 파악 및 이진 검색(bisect) | active |
| gene-evidence | 예측 유전자에 대한 증거 보고서, 모든 문장에 출처 명시 | active — 프로토타입 |
| ... |
스물다섯 개의 저장소가 아카이브되어 읽기 전용입니다. 각각은 어디로 이동했는지 evolvingagentslabs.github.io/archive에 나열되어 있습니다.
루프는 해결되었습니다. 포크(fork) 이후에 무슨 일이 일어날지는 모릅니다. Claude Agent SDK의 플러그인으로, 에이전트의 진화 과정을 버전 관리합니다 — 차이점 분석(diff)하고, 병합하며, 평가가 실패할 경우 배포를 거부합니다. 이 아이디어는 agentvcs에서 이어졌고, director에서 현재 실행되고 있습니다.
Agent SDK는 루프를 실행하고, 툴을 배포하며, 컨텍스트를 관리하고, 권한을 강제합니다. 또한 브랜치(branch)도 합니다: fork
첫 번째 것의 복사본으로부터 시작하는 두 번째 세션을 제공합니다.
두 세션을 다시 하나로 합치는 것은 없습니다. 두 세션 간에는 병합이나 차이점 분석이 없으며, 평가가 퇴보한 에이전트를 승격시키기를 거부하는 것도 없고, 기록은 누구나 편집할 수 있는 순수 JSONL입니다. 세션은 대화를 유지합니다 — 그 대화를 생성한 기술(skill), 서브에이전트, 모델, 목표는 함께 버전 관리되지 않습니다.
그 간극이 바로 이 저장소입니다. 대부분은 비공개이며, 마지막 줄만 그렇지 않고, 이것이야말로 정확하게 언급할 가치가 있는 부분입니다.
| Agent SDK | This plugin | |
|---|---|---|
| Branch a session | fork | |
| — | ||
| Snapshot code, goal, models and trace as one unit | — | avcs_commit |
| Compare two snapshots | — | avcs_diff , per dimension |
| Rejoin two snapshots | — | avcs_merge , with a --reconcile seam for goal and trace |
| ... | Diff or merge two forked sessions | |
| — | 아직 미구현 — M1 |
avcs_diff와 avcs_merge가 작동하는 단위는 SDK 세션이 아니라 agentvcs 커밋입니다. 둘 다 현재 작동하며, 어느 것도 두 개의 세션 ID를 받지 않습니다. 세션은 추가 전용(append-only) 이벤트 로그이며, 이를 병합 가능한 형태로 변환하는 어댑터는 아직 존재하지 않습니다. 포크된 두 세션은 접두사(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 서버는 런타임 종속성이 전혀 없습니다 — 표준 라이브러리만 사용하며, 이 사실이 더 이상 사실이 아니게 되면 테스트가 실패하도록 되어 있습니다.
ai-os/ |
일시 중지됨 — 마지막 변경일 2026-09-06 (서브트리로 도착한 날); 이후 연구 결과는 lora-kernel로 이동했습니다. 가상화된 QM 기반의 에이전트 기반 운영체제: 흐름(flows), 배치하는 책상, 마크다운 형태의 에이전트, 4단계 메모리. 851개의 테스트, CI, 실행 중인 스택 |
packages/director/ |
활성 상태. 디렉터는 작동 메모리를 따라 계획을 세우고, Claude Code 또는 로컬 모델에 위임하며, 작업으로부터 학습합니다 — D0–D3으로 측정됨 |
plugin/ |
에이전트 SDK 플러그인: MCP 서버 + 세 개의 후크(hooks) |
packages/agentvcs/ |
동결된 복사본. agentvcs는 EvolvingAgentsLabs/agentvcs에서 다시 생존합니다 (Rust 런타임, 2026-10-06 부활)
packages/memory/ |
SDK의 평면적인 .claude/ 메모리 파일 위에 구조화된 회상 기능. 작동하며; 순진한 매칭보다 나은 측정치는 없습니다 — PLAN.md 참조 |
demos/robot/ |
자신의 기술을 진화시키는 2D 로봇으로, agentvcs로 버전 관리됩니다 |
legacy/eat/ |
Evolving Agents Toolkit (EAT), 2025년 버전. 가독성을 유지했습니다; 아래 참조
이것은 Evolving Agents Toolkit이었습니다: 컴포넌트 라이브러리, 에이전트 버스, 스마트 메모리, 진화 루프, 그리고 Firmware라는 거버넌스 계층을 포함하는 12개 서브시스템에 걸친 18,680줄의 코드였습니다. MongoDB Atlas를 기반으로 했습니다.
여기에는 세 가지 테스트 함수가 있었습니다.
이 숫자가 이야기입니다. EAT는 실패한 제품이 아니었습니다. 그것은 작성되었지만 그 어떤 것에도 의해 모순될 수 없도록 고정되지 않은 아키텍처였습니다.
대부분의 내용은 이제 삭제되었습니다. 왜냐하면 SDK가 더 잘 처리하기 때문입니다 —
docs/WHAT-WAS-DELETED.md
에 10,165줄과 각 부분이 무엇으로 대체되었는지 나열되어 있습니다. Firmware는
모델에게 문자열에서 *
이전 아이디어에 빠진 절반을 추가한 것과 같은 개념입니다.
여기서 주장하는 내용은 측정되었으며, 성능이 평평하게 나온 경우도 포함됩니다.
듀얼 임베딩 리졸버는 도움이 되지 않습니다. EAT은 모든 구성 요소를 두 번 인덱싱했습니다. 하나는 그것 자체에 대한 것이고, 다른 하나는 무엇을 위한 것인지에 대한 것입니다. 재구축하고 측정한 결과: 어느 쪽이든 acc@1에서 80%로 차이가 없습니다. 두 번째 축은 진정으로 별개입니다 (cosine = 0.753); 현대 인코더에서는 아무것도 얻지 못합니다.이 조직의 '바이트 동일 와이어 포맷' 주장은 틀렸습니다. 세 개의 오프코드 정규식 중 두 개가 일치했습니다. HALT은 구문 분석을 변경하는 방식으로 분기했습니다. 문장을 반복하는 대신 테스트를 작성하여 발견했습니다.과거 경험을 검색하는 것은 이 작업에 아무것도 도움이 되지 않습니다. EAT의 SmartMemory와 그 ContextBuilderTool은 유사한 과거 작업을 회상하는 것이 다음 시도를 개선한다는 전제에 기초합니다. ai-os에서 세 번 측정하고 옆의 런타임과 비교했을 때: 해결된 유사 사례를 답변과 함께 제공받는 검색기 대비 −4, 가장 강력하게 구성 가능한 검색기 대비 +0 (p = 1.0000), 그리고 아무것도 하지 않는 것 대비 −6였습니다. 움직인 것은 동일한 궤적에서 유도된 간결한 규칙 진술이었습니다: 오라클 대비 +21이었습니다.메모리 계층은 어휘 검색에 패배합니다. ai-storage는 EAT의 스마트 메모리가 주장했던 네 가지 레벨을 구현합니다. 완벽한 내비게이터를 가진 천장 지점에서의 첫 번째 벤치마크: 모든 코퍼스 크기에서 정확한 검색 3/3, 계층적 탐색 1–2/3 및 단계 외(out of steps), 평면 파일은 아예 맞추기를 거부했습니다.
세 가지 평평한 결과, 세 가지 아키텍처, 하나의 방향. 2025년의 듀얼 축, 2026년의 경험 검색, 그리고 그 다음의 계층 구조. 각각은 명백한 다음 구조였고, 각각에 숫자가 요구되었습니다. 이 저장소는 바로 그런 것이며, 도구 키트가 삭제된 것이 아니라 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"
유지되는 agentvcs는 EvolvingAgentsLabs/agentvcs입니다 (Rust 런타임 및 Python SDK; 빌드 지침은 README 참조).
2025년 패키지는 legacy/eat/에 있으며, 원래의 setup.py가 변경되지 않은 상태로 남아 있습니다.
Matias Molinas와 Ismael Faro 작성 · Apache 2.0
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기