LangChain 에서는 터미널, Slack, Linear, GitHub, CI 등 다양한 환경에서 소프트웨어 엔지니어링 에이전트와 상호작용합니다.
워크플로우마다 필요한 에이전트가 다릅니다. 로컬 코딩은 대화형(interactive) 방식이 적합하고, 클라우드 코딩은 백그라운드에서 실행되며 PR을 생성해야 합니다. 코드 리뷰는 신중해야 하며 GitHub와 긴밀하게 연동되어야 합니다. 레포지토리 문서는 코드와 가까이 있어야 하며 에이전트에게 유용한 컨텍스트를 제공해야 합니다.
저희는 이 시스템을 오픈소스 도구 모음으로 구축했습니다.
- 로컬 코딩을 위한 dcode
- 클라우드 코딩 에이전트를 위한 OpenSWE
- 자동화된 코드 리뷰를 위한 OpenSWE Review
- 레포지토리 문서 및 에이전트 메모리를 위한 OpenWiki
이 도구들은 함께 소프트웨어 엔지니어링 에이전트 팩토리를 구성합니다. 이것이 저희가 내부적으로 사용하는 구조입니다: 로컬 에이전트, 클라우드 에이전트, 리뷰 에이전트, 레포 메모리, 오픈 모델, 그리고 시스템 전반의 LangSmith 트레이스가 그 구성 요소입니다.
오픈소스가 중요한 이유
소프트웨어 엔지니어링 에이전트는 코드를 읽고, 코드를 편집하며, PR을 리뷰하고, 엔지니어링 워크플로우에 참여합니다. 팀은 이러한 에이전트가 어떻게 동작하는지 이해하고 통제할 수 있어야 합니다.
에이전트가 폐쇄형 시스템이라면 이는 어려운 일입니다. 제공업체가 지원하는 모델, 리뷰 동작, 통합 기능, 그리고 관찰 가능성(observability)에 제한을 받게 됩니다.
저희는 팀이 직접 검사하고, 수정하고, 자신의 워크플로우에 맞게 조정할 수 있는 에이전트를 원합니다. 여기에는 자체 리뷰 기준, 레포지토리 규칙, 모델 선택, 그리고 내부 도구에 대한 조정도 포함됩니다. 이것이 바로 이 프로젝트들을 오픈소스로 공개하는 이유입니다.
구성 요소
dcode
dcode는 터미널에서 사용하는 로컬 코딩 에이전트입니다.

CLI와 에이전트 런타임은 사용자 머신에서 로컬로 실행되지만, 모델은 여전히 호스팅될 수 있습니다. 이를 통해 개발자는 노트북에서 실행되지 않을 수 있는 대규모 코딩 모델을 사용하면서도 로컬 레포지토리에서 직접 작업할 수 있습니다.
저희는 dcode를 대화형 코딩 작업(레포지토리 탐색, 코드 편집, 터미널에서 구현 작업 실행)에 사용합니다.
OpenSWE
OpenSWE는 작업을 백그라운드에서 처리해야 할 때 사용하는 클라우드 코딩 에이전트입니다.
많은 엔지니어링 작업은 터미널 밖에서 시작됩니다. 버그는 Slack에서 접수되고, 기능 요청은 Linear에 있으며, 레포지토리 유지보수 작업은 정기적으로 실행되어야 합니다.
OpenSWE는 Slack, Linear, GitHub 또는 웹 UI에서 트리거할 수 있습니다. 클라우드에서 실행되며 코드 작업을 수행하고, 완료되면 풀 리퀘스트를 생성할 수 있습니다.
내부적으로 이 워크플로우는 가장 많이 사용되는 에이전트 워크플로우 중 하나가 되었습니다. 지난 일주일만 봐도 Linear나 UI 사용을 제외하고 Slack에서만 거의 1,000번의 OpenSWE를 트리거했습니다.
OpenSWE는 클라우드의 샌드박스에서 실행되기 때문에, 개인의 로컬 환경을 점유하지 않고도 많은 코딩 에이전트를 병렬로 실행할 수 있습니다.
OpenSWE는 또한 에이전트 작업을 검사하고, 클라우드 코딩 에이전트와 채팅하고, 모델과 프롬프트를 구성하고, 분석을 확인하고, 예약된 자동화를 설정할 수 있는 UI를 제공합니다.

OpenSWE Review
OpenSWE Review는 GitHub에 연결되어 풀 리퀘스트를 자동으로 리뷰합니다. 코드 병합 전에 버그와 회귀(regression)를 식별합니다.

또한 외부 벤치마크에서 뛰어난 성능을 보여줍니다. 오프라인 코드 리뷰 벤치마크에서 OpenSWE Review는 GPT-5.5 (중간 수준 추론) 사용 시 47% 의 점수를 기록했습니다. 이는 전체 6위이자 오픈소스 코드 리뷰 에이전트 중 1위입니다.
코드 리뷰는 조직별 특성이 매우 강합니다. 팀마다 중요하게 생각하는 이슈, 리뷰 코멘트를 작성하는 방식, 에이전트가 리뷰를 차단, 제안 또는 침묵해야 하는 시점이 모두 다릅니다.
OpenSWE Review는 프롬프트, 워크플로우, 모델 선택 및 레포지토리별 동작을 변경하여 조정할 수 있는 강력한 기본값을 제공합니다.
OpenWiki
OpenWiki는 Google의 오픈 지식 포맷(Open Knowledge Format)을 사용하여 코드베이스 문서를 생성하고 유지 관리합니다.
문서는 코드와 함께 제공되며 GitHub 액션을 통해 자동으로 최신 상태로 유지됩니다. 이를 통해 인간과 에이전트 모두 문서 유지 관리에 신경 쓸 필요 없이 레포지토리에 대한 최신 지식 레이어를 확보할 수 있습니다 (OpenWiki가 대신 처리합니다!).

에이전트가 실행될 때마다 레포지토리의 아키텍처를 처음부터 다시 파악해야 한다면, 토큰 낭비가 심하고 중요한 규칙을 놓치기 쉽습니다. OpenWiki는 코딩 및 리뷰 에이전트에게 더 나은 시작점을 제공하며, 자동 업데이트 흐름을 지원하므로 에이전트 문서 유지 관리에 대해 다시는 고민할 필요가 없습니다.
기술 스택
Deep Agents
dcode, OpenSWE, OpenSWE Review, OpenWiki는 모두 Deep Agents를 기반으로 구축되었습니다.
워크플로우는 다르지만, 모두 동일한 기본 에이전트 기반을 공유합니다. 이를 통해 로컬 코딩, 클라우드 코딩, 리뷰, 문서화 전반에 걸쳐 일관된 방식으로 에이전트를 구축, 커스터마이징 및 개선할 수 있습니다. 모두 동일한 프레임워크로 구축되어 코드, 리소스 및 엔지니어링 노하우를 공유하는 것이 훨씬 더 쉬워집니다.
오픈 모델
저희는 스택을 오픈 모델에 최적화했습니다.
SWE 에이전트는 조직 전체에서 사용될 때 비용이 빠르게 증가합니다. 로컬 코딩, 클라우드 코딩, 코드 리뷰, 문서화, 예약된 유지보수, 반복적인 레포지토리 분석 등 모든 작업이 토큰을 사용합니다.
오픈 모델을 사용하면 비용 (주요 이유), 지연 시간 및 배포 선택에 대한 더 많은 통제력을 확보할 수 있습니다. 또한 팀이 서로 다른 작업을 다른 모델에 라우팅하고, 오픈 코딩 모델을 실험하거나, 자체 레포지토리와 워크플로우에 맞게 모델을 파인튜닝할 수 있습니다.
LangSmith
저희는 이러한 에이전트들을 LangSmith로 추적(trace)합니다.
에이전트가 PR을 생성하거나, 리뷰 코멘트를 남기거나, 작업에 실패할 때, 트레이스는 에이전트가 검사한 파일, 로드한 컨텍스트, 수행한 도구 호출, 그리고 어디서 막혔는지 보여줍니다.
이러한 트레이스는 개별 실행을 디버깅하고 시간이 지남에 따라 시스템을 개선하는 데 도움이 됩니다. 저희는 이를 사용하여 실패 모드를 식별하고, 프롬프트를 개선하고, 모델을 비교하며, LangSmith Engine을 통한 지속적인 개선 워크플로우에 더 높은 품질의 예제를 제공합니다.
코딩 에이전트를 위한 Engine은 저희가 실험해온 새로운 워크플로우입니다. Engine이 코딩 에이전트 트레이스를 분석하여 부족한 점을 식별하고 최적화 방안을 제안합니다. LangChain의 모든 직원이 수행하는 모든 코딩 에이전트 실행이 추적되기 때문에, Engine은 특정 엔지니어의 트레이스에 개별적으로 접근하는 대신 전체적인 시각에서 이러한 최적화를 식별하고 수행할 수 있습니다.
자체 소프트웨어 엔지니어링 에이전트 팩토리 구축하기
이 스택은 LangChain 에서 소프트웨어 엔지니어링 에이전트를 사용하는 방식을 반영하지만, 모든 구성 요소는 오픈소스이므로 다른 팀이 이를 자체적으로 조정하고 소프트웨어 팩토리에 대한 완전한 통제권을 유지할 수 있습니다.
작게 시작할 수 있습니다.
- 로컬 코딩을 위해 dcode를 사용하세요.
- Slack, Linear, GitHub 또는 웹 UI에서 코딩 에이전트를 실행하려면 OpenSWE를 추가하세요.
- 자동화된 PR 리뷰를 위해 OpenSWE Review를 활성화하세요.
- 인간과 에이전트 모두를 위한 레포지토리 지식을 유지 관리하려면 OpenWiki를 사용하세요.
- 시스템 전반에 대한 관찰 가능성과 개선 루프를 원한다면 트레이스를 LangSmith에 연결하세요.
목표는 모든 엔지니어링 워크플로우를 하나의 에이전트 인터페이스로 옮기는 것이 아닙니다. 목표는 적절한 에이전트를 엔지니어링 작업이 이미 이루어지고 있는 적절한 위치에 배치하고, 팀의 레포지토리, 모델 및 규칙에 맞게 조정할 수 있는 충분한 통제력을 제공하는 것입니다.





