News

▲ 126 · 59 comments on source · Hacker News · azurewraith · 5 months ago

Show HN: Statewright – AI 에이전트를 안정적으로 만드는 시각적 상태 머신

현재 상태의 에이전트 기반 문제 해결은 매우 취약합니다. 저는 여기에 매료되었지만, 이는 해결하는 만큼 많은 문제를 만들어냅니다. 저는 Ben Cochran이고, 20년 이상 풀스택 엔지니어링, DevOps, 고성능 컴퓨팅 및 ML 현장에서 일했으며 NVIDIA, AMD 및 여러 조직에서 근무했고 가장 최근에는 Distinguished Engineer로 있었습니다. 에이전트가 안정적으로 작동하려면 해결 공간을 다룰 수 있게 유지하기 위해 엄청난 파라미터 수나 엄청난 컨텍스트 윈도우가 필요합니다. 대부분의 사람들은 더 큰 모델과 더 긴 프롬프트로 안정성을 무식하게 밀어붙입니다. 모델을 더 크게 만드는 대신 문제를 더 작게 만들면 어떨까요? 저는 더 작은 모델, 즉 13-20B 파라미터 범위의 모델을 사용하고 실제 SWE-bench 문제를 해결하도록 설정하는 다른 접근 방식을 택했습니다. 저는 형식적 상태 머신을 사용해 도구와 해결 공간을 제한했습니다. 머신의 각 상태는 모델이 접근할 수 있는 도구, 받는 반복 횟수, 유효한 전환을 정의합니다. 계획 상태는 읽기 전용 도구를 받습니다. 구현 상태는 편집 도구(대규모 편집을 방지하도록 범위 지정됨)와 쓰기 친화적인 bash 도구를 받습니다. 테스트 상태는 테스트 명령에만 사용할 수 있는 bash를 받습니다. 모델은 물리적으로 단계를 건너뛰거나 잘못된 시점에 잘못된 도구를 사용할 수 없습니다. 이는 프롬프트가 아니라 프로토콜을 통해 강제됩니다. 결과는 제가 예상했던 것보다 더 유망했습니다. 여러 모델 패밀리 전반에서 연식과 무관하게(qwen-coder, gpt-oss, gemma4) 개선은 13B 파라미터 변곡점 위에서 일관되었습니다. 그 아래에서는 모델이 상태 머신을 탐색할 수는 있지만 정확한 편집을 생성할 만큼 충분한 컨텍스트를 유지하지 못합니다. 연구 부분에 대한 자세한 내용: https://statewright.ai/research 놀랍게도 이는 프런티어 모델에서도 개선을 가져왔습니다. Haiku와 Sonnet은 자기 체급을 뛰어넘기 시작했고 Opus는 더 적은 토큰과 죽음의 나선으로 더 안정적으로 해결합니다. 파인 튜닝은 저에게 이런 종류의 기능적 개선을 가져다주지 않았습니다. 시사점은 원시 컨텍스트 크기보다 컨텍스트 윈도우 활용도가 더 중요하다는 것 같습니다. 각 단계에서 엄격하게 범위가 지정된 작업 컨텍스트가 모든 것에 대한 자유를 부여받은 모델보다 더 나은 성능을 냅니다. 결정론적 코드를 사용해 멱등성이 없는 LLM을 제한하는 패턴은 현재 아무도 이야기하지 않는 패턴입니다. 그래서 저는 Statewright를 만들었습니다. 핵심은 상태 머신 정의(상태, 전환, 가드, 도구 제한)를 평가하는 Rust 엔진입니다. 오케스트레이션은 LLM을 사용하지 않고 상태 머신을 강제할 뿐입니다. 그 위에는 MCP를 통해 Claude Code(그리고 곧 Codex, Cursor 등)와 통합되는 플러그인 계층이 있습니다. 워크플로를 활성화하면 훅이 상태별 가드레일을 자동으로 강제합니다. 모델은 수십 개 대신 5개의 도구를 사용할 수 있고, 현재 단계에 대한 명확한 지침을 받으며 조건이 충족되면 전환합니다. 중요한 점은 모델이 범위 밖의 일, 부정확한 일을 시도하거나 막혔을 때 다른 것을 시도해야 할 때 이를 알려준다는 것입니다. MCP를 통해 에이전트를 사용해 현재 컨텍스트의 문제를 해결할 상태 머신을 구축할 수 있습니다. statewright.ai의 비주얼 편집기를 사용하면 그래프 뷰에서 이러한 워크플로를 조정할 수 있습니다... 실패 경로, 재시도 루프, 승인 게이트를 명확하게 볼 수 있습니다. 상태 머신은 DAG가 아닙니다. 루프를 돌고 재시도하며, 이것이 바로 에이전트 작업에 실제로 필요한 것입니다. Statewright는 현재 무료 티어로 라이브 중입니다. Claude Code에서 다음을 실행해 사용해 보세요: /plugin marketplace add statewright/statewright /plugin install statewright /reload-plugins 그런 다음 "start the bugfix workflow" 또는 /statewright start bugfix를 입력하세요. 프롬프트가 나오면 API 키를 붙여넣어야 합니다. 최신 버전의 Claude는 불평할 수 있습니다 -- API 키를 다시 붙여넣고 정말로 의도한 것이라고 말하세요. Claude는 여기서 그저 신중한 것뿐입니다. 워크플로 편집기, 플러그인 경험에 대한 피드백을 환영하며, 가장 먼저 구축하고 싶은 워크플로를 알려주세요. 에이전트는 제안이고, 상태는 법입니다.

원문 게시글에서 발췌한 번역본입니다. 전문과 원문 댓글은 아래 링크에서 확인하세요.

Comment on HNEnglish
Post on X

Discussion on runchr

Loading comments…

to comment.