메뉴
HN
Hacker News • 36일 전

Seed: 자기 수정이 가능한 최소한의 에이전트 하네스

IMP
6/10
핵심 요약

Seed는 프레임워크 없이 단 하나의 도구(bash 실행)와 자기 자신이 수정할 수 있는 시스템 프롬프트만으로 시작하는 초경량 AI 에이전트 하네스입니다. 도구, 메모리, 스킬 등 프레임워크가 제공하던 모든 것을 에이전트가 세션을 거듭하며 self/ 디렉터리에 스스로 '성장'시켜야 한다는 점에서, 에이전트 자율성과 자기 개선(self-modification) 접근법을 실험해보려는 개발자에게 흥미로운 오픈소스 프로젝트입니다.

번역된 본문

Seed — 씨앗 에이전트: 에이전트가 자라날 수 있는 가장 작은 시작점. 여기엔 프레임워크가 없습니다. 동결된(frozen) 계층 전체가 seed.py라는 작은 루프로, 언어 모델을 단 하나의 도구(bash를 실행하는 exec)에 연결하고, 시스템 프롬프트를 에이전트 자신이 소유하고 다시 쓸 수 있는 파일에서 불러옵니다. 에이전트가 보통 프레임워크에서 얻는 모든 것 — 도구, 메모리, 스킬, 관례 — 은 대신 에이전트가 세션마다 self/ 디렉터리 안에 스스로 길러내야 합니다.

씨앗 심기:

mkdir my-agent && cd my-agent uvx --from git+https://github.com/vivekhaldar/seed.git seed

첫 실행 시 seed.py와 run_seed.sh를 이 디렉터리에 복사하고(이미 존재하는 파일은 절대 덮어쓰지 않음), self/SELF.md를 발아(germinate)시키고, 이 파일들을 이곳의 새 git 저장소에 함께 커밋합니다 — 이 루프 자체가 self/만이 아니라 이 개체(individual)의 역사 일부가 됩니다. 그다음 REPL로 진입합니다. 대화를 시작하면 됩니다. 에이전트가 유지하고 싶은 모든 것은 self/에 기록되어야 합니다 — 세션은 휘발성이며 그 외에는 아무것도 남지 않습니다.

같은 에이전트로 돌아올 때는 로컬 러너를 사용하면 되고 다시 uvx할 필요가 없습니다:

./run_seed.sh ./run_seed.sh -m gemini-2.5-pro

모든 세션의 축어적 기록(verbatim transcript)은 self/sessions/*.json에 기록됩니다(매 턴마다 갱신). 이것은 메모리가 아니라 블랙박스(flight recorder)입니다 — 에이전트는 부팅 시 이를 절대 불러오지 않지만, 당신은 읽을 수 있고, 에이전트는 자신의 과거를 연구하는 도구를 스스로 길러낼 수도 있습니다.

하나의 씨앗, 많은 개체: 씨앗을 심은 각 디렉터리는 서로 다른 에이전트로 자라나며, 겪는 경험에 따라 갈라집니다.

설정

모델과 키는 전적으로 llm(Simon Willison의 라이브러리)이 처리합니다. 기본 모델은 openai-codex/gpt-5.6-sol로, Codex CLI의 ChatGPT 로그인을 사용합니다:

codex login # 기기당 1회 ./run_seed.sh # openai-codex/gpt-5.6-sol 사용 ./run_seed.sh -m gemini-2.5-pro # 또는 한 세션만 다른 모델로 재정의

포함된 프로바이더: Codex 구독 또는 API 키를 통한 OpenAI, Anthropic, Gemini, 그리고 OpenRouter(하나의 OpenRouter 키로 수백 개 모델 사용 가능).

설계

이런 구조를 갖춘 이유 — 매카시의 메타서큘러 eval(metacircular eval), 호모아이코니시티(homoiconicity), 선행 연구, 그리고 우리가 의식적으로 수용한 위험들 — 에 대해서는 docs/DESIGN.md를 참고하세요.

원문 보기
원문 보기 (영어)
seed A seed agent: the smallest starting point from which an agent can grow. There is no framework here. The entire frozen layer is seed.py — a small loop that connects a language model to exactly one tool ( exec , which runs bash) and loads its system prompt from a file the agent itself owns and may rewrite. Everything an agent normally gets from a framework — tools, memory, skills, conventions — must instead be grown by the agent, session by session, into its self/ directory. Plant one mkdir my-agent && cd my-agent uvx --from git+https://github.com/vivekhaldar/seed.git seed First run copies seed.py and run_seed.sh into this directory (never overwriting a file that already exists), germinates self/SELF.md , and commits those files together in a fresh git repo here — the loop is part of this individual's history, not only self/ . Then it drops you into a REPL. Start talking. Everything the agent wants to keep must be written into self/ — sessions are ephemeral and nothing else survives. Come back to the same agent with the local runner — no need to uvx again: ./run_seed.sh ./run_seed.sh -m gemini-2.5-pro A verbatim transcript of every session is recorded to self/sessions/*.json (updated after each turn). This is a flight recorder, not memory: the agent never loads it at boot, but you can read it — and the agent may grow tools to study its own past. One seed, many individuals: each directory you plant in grows a different agent, diverging based on what it experiences. Configuration Models and keys are handled entirely by llm (Simon Willison's library). The default model is openai-codex/gpt-5.6-sol , which uses the ChatGPT login from the Codex CLI: codex login # one-time, per machine ./run_seed.sh # uses openai-codex/gpt-5.6-sol ./run_seed.sh -m gemini-2.5-pro # or override it for one session Bundled providers: OpenAI via a Codex subscription or API key, Anthropic, Gemini, and OpenRouter (one OpenRouter key unlocks hundreds of models). Design Why it's shaped this way — McCarthy's metacircular eval, homoiconicity, the prior art, and the risks we consciously accepted: docs/DESIGN.md .