분류 전체보기
-
SessionLane: 에이전트 시스템의 per-key 직렬화 설계Harness/orchestration 2026. 3. 30. 08:16
Date: 2026-03-30Author: geode-teamTags: python, concurrency, session-management, openclaw, agent-systemTable of Contents문제 -- Lane("session", max=1)은 전체를 직렬화한다OpenClaw 분석 -- Session Lane = per-key SemaphoreOpenClaw 결함 -- max_sessions 무제한, idle cleanup 없음GEODE SessionLane 설계Lane과의 API 호환 -- duck typing for acquire_all()_raw_acquire/_raw_release -- LaneQueue의 다형성 지원실사용 흐름 -- gateway / scheduler / ..
-
Thin-Only: standalone REPL을 없애기까지Harness/architecture 2026. 3. 30. 08:14
Date: 2026-03-30Author: geode-teamTags: agent-architecture, ipc, unix-socket, thin-clientTable of Contents2개 코드 경로의 문제"standalone을 없앨 수는 없다" → "왜 안 돼?"SessionMode.IPCServe auto-startIPC 프로토콜 확장결과1. 2개 코드 경로의 문제GEODE에는 사용자가 에이전트를 호출하는 두 가지 경로가 있었습니다.standalone REPL (uv run geode): bootstrap_geode() → MCP, Skills, Hooks, Memory 자체 부트스트랩 → AgenticLoop 직접 실행.thin IPC client (uv run geode + serve 감지)..
-
Unix Domain Socket으로 CLI 에이전트 IPC 구현하기Harness/orchestration 2026. 3. 30. 02:04
Date: 2026-03-30Author: geode-teamTags: python, ipc, unix-socket, agent-system, cliTable of Contents왜 IPC인가 — Thick Client의 문제점프로토콜 설계 — Line-Delimited JSON서버 구현 — CLIPoller클라이언트 구현 — IPCClientAuto-Detect 패턴 — is_serve_running()에러 처리 — 연결 끊김과 부분 읽기설계 결정 — 직렬 처리와 그 이유1. 왜 IPC인가GEODE는 두 가지 모드로 실행됩니다.REPL (uv run geode): 사용자가 직접 대화하는 인터랙티브 모드. LLM 클라이언트, MCP 서버, SkillRegistry, HookSystem을 모두 자체 부트스..
-
Lane Queue에서 비동기 소유권 이전 패턴 구현하기Harness/orchestration 2026. 3. 30. 02:01
Date: 2026-03-30Author: geode-teamTags: python, concurrency, semaphore, ownership-transfer, agent-systemTable of Contents문제 — 애드혹 Semaphore의 한계Context Manager vs Manual Releasetry_acquire 구현 — Non-Blocking Acquiremanual_release 구현 — 비동기 해제소유권 이전 패턴 — Closure Capture이중 해제 방지 — _lane_acquired Guard실제 코드 — _drain_scheduler_queue검증 — Stats와 Active Tracking1. 문제GEODE의 스케줄러는 REPL 메인 루프 안에서 예약된 잡을 비동기로..
-
fcntl.flock으로 에이전트 간 파일 경합 해결하기Harness/trouble-shooting 2026. 3. 30. 01:59
Date: 2026-03-30Author: geode-teamTags: python, concurrency, file-locking, agent-systemTable of Contents문제 상황 — 2개 프로세스가 같은 파일을 쓴다threading.Lock vs fcntl.flockLOCK_EX vs LOCK_SH — 쓰기와 읽기의 분리구현 — Lock File 분리 + Atomic Write실제 코드 — scheduler.py의 save/load주의점 — 플랫폼 차이와 Advisory Lock의 한계1. 문제 상황GEODE는 두 개의 프로세스가 동시에 실행됩니다. 사용자가 직접 대화하는 REPL 프로세스(uv run geode)와, 백그라운드에서 Slack/Discord 메시지를 수신하고 스케줄을 실..
-
v0.36.0 릴리스: Gateway Runtime 완성, 11개 구조적 결함 전수 해소Harness/report 2026. 3. 30. 01:56
Date: 2026-03-30Author: geode-teamTags: release, gateway-runtime, structural-defects, verificationTable of Contents릴리스 개요3-Phase Gateway Runtime Plan11개 구조적 결함 해소 현황목표 아키텍처 달성검증다음 단계1. 릴리스 개요GEODE v0.36.0은 Gateway Runtime 완성을 위한 릴리스입니다. v0.34.0에서 식별한 3-Entry-Point 리소스 정합 문제를 v0.35.0의 SharedServices Gateway로 해결한 뒤, 남은 11개 구조적 결함을 두 릴리스(v0.35.1, v0.36.0)에 걸쳐 전수 해소했습니다.Metricv0.35.1v0.36.0DeltaVers..
-
좀비 MCP와 스케줄러 누수: 자율 에이전트의 프로세스 관리Harness/trouble-shooting 2026. 3. 29. 17:24
Date: 2026-03-29Author: rooftopsnowTags: mcp, scheduler, zombie-process, memory-leak, isolated-session, dedup목차증상 발견원인 1: 스케줄러 중복 생성원인 2: isolated 세션의 MCP 좀비원인 3: IsolatedRunner 결과 캐시 누적수정마무리1. 증상 발견GEODE REPL에서 스케줄 잡을 삭제했는데, 동일한 "every 5 minutes" 잡이 계속 fire되는 현상이 발생했습니다. 프로세스를 확인해보니 MCP 서버 프로세스가 수십 개 누적되어 있었습니다.sequential-thinking 8개 (정상 2개)arxiv 8개 (정상 2개)linkedin-scraper-mcp..
-
서브에이전트 병렬화: 프로세스, 스레드, 이벤트 루프의 선택Harness/orchestration 2026. 3. 29. 03:02
Date: 2026-03-26Author: rooftopsnowTags: sub-agent, parallelism, process, thread, concurrency, claude-code, codex-cli, openclaw, devin, langgraph, harness-engineering 목차서론: 왜 병렬화 모델이 중요한가프론티어 하네스별 실측격리 스펙트럼 — 7단계IPC 패턴 비교종합 비교 매트릭스관측된 아키텍처 원칙 4선GEODE의 현재 위치와 확장 경로1. 서론: 왜 병렬화 모델이 중요한가서브에이전트를 병렬로 실행할 때 프로세스로 뺄 것인가, 스레드로 뺄 것인가는 단순한 성능 문제가 아닙니다. 이 선택이 결정하는 것은 격리 수준, 장애 전파 범위, 보안 경계, 디버깅 가시성입니다.2026..