dsh-agent-team: DeepSeek Harness를 위한 영속적인 에이전트 팀
요약
dsh-agent-team은 DeepSeek Harness 환경을 위한 영속적인 에이전트 팀 기능을 제공합니다. 각 에이전트는 자체 메모리, 노트, 스킬을 가진 독립적이고 지속 가능한 멤버로 작동하며, 세션 종료 후에도 상태를 유지합니다. 이 시스템은 워크스페이스와 채널 개념을 도입하여 프로젝트별 협업과 책임 분배를 체계화합니다.
핵심 포인트
- 에이전트를 단순한 세션이 아닌 1급 팀 멤버로 정의했습니다.
- 워크스페이스는 독립적인 프로젝트 환경을 구성하며, 각 팀을 관리합니다.
- 사용자가 채널과 책임을 명시적으로 분배하여 작업의 흐름을 제어할 수 있습니다.
- 컨텍스트 전환(context_rollover) 및 체크포인트 기능을 통해 작업 상태를 영속적으로 유지합니다.
dsh-agent-team — Persistent Agent Teams for DeepSeek Harness
dsh-agent-team은 DeepSeek Harness 에이전트가 초기화되지 않도록 합니다. 각 에이전트는 자체 메모리, 노트, 스킬을 가진 영속적인(durable) 멤버입니다. 지난주에 설정한 멤버는 세션이 종료되거나, 컨텍스트가 롤오버되거나, DSH가 재시작된 후에도 여전히 동일합니다. 사용자가 방향을 설정하면; 워크스페이스(Workspaces)가 프로젝트별로 팀을 구성하고, 채널(Channels)이 책임을 분배하며, 태스크 스레드(Task Threads)가 하나의 진행 흐름을 유지합니다.
DeepSeek Harness를 위한 옵트인 플러그인입니다: 팀 모드가 필요한 곳에만 설치하세요; 일반적인 DSH 세션은 평소의 사전 설정된 로스터를 유지합니다.
핵심 아이디어 (Core ideas)
-
에이전트는 단순한 세션이 아닌, 1급(first-class) 팀 멤버입니다. 각 멤버는 자체 메모리, 책임 경계, 그리고 사적인 공간(메모리, 노트, 스킬)을 유지하며, 모든 에이전트가 하나의 공유 프로젝트 워크스페이스에서 협업합니다; 여러 개의 워크스페이스는 여러 개의 팀을 관리합니다.
-
워크스페이스가 모든 것을 구성합니다. 서로 다른 프로젝트들은 서로 다른 워크스페이스에 존재하며, 각각 자체적인 에이전트와 채널을 관리합니다.
-
인간(Human)이 채널과 책임을 분배합니다. 누가 어떤 채널에 속하고 무엇을 소유하는지 사용자가 결정합니다; 멘션(@mention)은 작업을 적절한 에이전트에게 전달합니다.
-
태스크 스레드가 하나의 진행 흐름을 담고 있습니다. 클레임(Claims)이 방향을 설정하고, 스레드(Threads)가 컨텍스트를 유지하며, 여러 세션 에이전트들이 서로 대화하지 않으면서 동일한 작업 라인을 진전시킵니다 — 작업의 사실들은 하나의 스레드에 존재합니다.
-
컨텍스트 관리의 자유로움. 멤버들은 자체 컨텍스트를 관리합니다: 새로운 컨텍스트로 전환하여 임무를 수행할 수 있고 (
context_rollover), 과거의 앵커 지점으로 돌아갈 수도 있으며 (context_status/context_checkpoint), 현재 컨텍스트를 제자리에서 축소할 수도 있습니다 (context_compact); 보류 중인 작업은 스위치와 재시작을 거쳐도 유지되며, 메모리와 노트는 계속 쌓입니다. — 멤버는 모든 새로운 컨텍스트에 자신의 전체 기억을 가지고 들어갑니다.
미리보기 (Preview)
팀 모드는 일반적인 DSH Web UI 내에서 작동합니다: 채널(Channels)은 논의를 담고, 받은 편지함(Inbox)은 필요한 것을 모아두며, 태스크 스레드(Task Threads)는 진행 상황을 한 줄로 유지합니다.

휴먼 인박스(Human Inbox)는 사용자가 처리해야 할 읽지 않은 스레드를 가장 먼저 보여주고, 그 뒤를 최근 활동한 스레드가 따릅니다:

태스크 스레드 (Task Threads)
태스크 스레드는 클레임(Claims), 에이전트 인계(Agent handoffs), 인간의 승인(Human acceptance), 그리고 후속 답장을 하나의 지속적인 컨텍스트에 보관합니다.

만약 이 기능이 유용해 보인다면, GitHub에서 별표를 눌러 다른 DSH 사용자들이 찾을 수 있도록 도와주세요.
빠른 시작 (Quick start)
1. DSH 확인하기
이 릴리스는 DSH 0.2.0-rc.2에 대해 인증되었습니다. latest를 따르기보다는 DSH 버전을 명시적으로 설치하세요: 고정되지 않은(unpinned) 설치는 이 번들이 선언하는 범위 밖에 있는 라인으로 해결될 수 있습니다. DSH 0.1.7-rc.2에서는 @wowyuarm/dsh-agent-team 0.1.15를 사용하세요. DSH 0.2.0-rc.1에서는 @wowyuarm/dsh-agent-team 0.2.0을 사용하세요.
npx @deepseek-ai/[email protected] web
아래 단계를 위해 dsh 명령어를 원한다면 전역으로 설치하세요: npm i -g @deepseek-ai/[email protected].
이를 중지한 다음, web 프로필에 Agent Team을 설치합니다:
dsh plugin --profile web add @contexera/[email protected]
버전이 의도적으로 고정되어 있습니다: pnpm은 24시간 이내에 게시된 릴리스는 건너뛰기 때문에, 고정되지 않은 @latest 설치는 릴리스 당일의 이전 릴리스로 해결됩니다.
이 플러그인은 @contexera/dsh-agent-team으로 게시되며, 저장소는 Contexera/dsh-agent-team입니다. 이전의 @wowyuarm/dsh-agent-team은 0.2.1 버전에서 유지되며 새로운 이름에 의해 사용 중단됩니다. 기존 프로필은 플러그인의 이름을 변경할 뿐, 데이터를 변경하지는 않습니다.
2. Web UI 시작하기
dsh web
소스 체크아웃(pnpm dsh web)에서 DSH를 시작하지 마십시오: 소스 모드는 스코프 모듈의 두 번째 복사본을 로드하므로, 모든 멤버가 selected preset is not team-enabled라고 보고합니다. 항상 컴파일된 CLI를 시작하십시오.
Agent Team은 선택적(opt-in) 기능입니다. 이를 설치하면 web 프로필에 번들(bundle)이 추가될 뿐이며, Harness 설치나 기본 설정값(shipped defaults)을 수정하지는 않습니다.
3. 확인 및 사용해 보기
UI를 시작하기 전에 구성된 프로필을 검사할 수 있습니다:
dsh --profile web --dump-config
출력에는 wowyuarm-agent-team-scope 및 wowyuarm-agent-team-client와 같은 Team 행이 포함되어야 합니다. 브라우저에서 DSH 탐색(navigation)을 통해 Team mode로 진입합니다. 첫 번째 유용한 경로는 다음과 같습니다:
Team mode
└── Workspace 선택 -> 채널 -> 새 채널 생성 -> 첫 메시지 전송
...
에이전트는 신뢰할 수 있는 Workspace에서만 생성하십시오. Team Member 프리셋은 의도적으로 관리되는 에이전트 세션(managed Agent Sessions)에 danger-full-access를 부여합니다.
혼동해서는 안 되는 것들
유사한 이름을 가진 다른 DSH 플러그인 3가지가 있으며, 이들은 서로 다른 문제를 해결하므로 다음 중 하나가 더 적합할 수 있습니다:
| Plugin | 설명 | 작업 단위 |
|---|---|---|
NanmiCoder/dsh-agent-teams | 현재 DSH 세션을 여러 서브 에이전트를 조립하고, 목표를 의존성 인식 작업으로 분할하며, 다이렉트 메시지를 통해 이를 조정하는 '캡틴' 역할을 하도록 변환합니다. | 하나의 세션 |
| ... | ||
| The practical difference: 지난주에 생성한 멤버가 오늘날에도 여전히 동일한 멤버라는 점입니다 — 세션이 종료되거나, 컨텍스트가 롤오버하거나, DSH가 재시작된 후에도 동일한 메모리, 책임, 개인 노트가 유지됩니다. 다른 세 가지 경우에서는 현재 진행 중인 작업(세션, 워크플로우 실행 또는 리더 주도 팀)을 중심으로 팀이 조립됩니다. |
제거 (Uninstall)
프로필에서 번들을 제거하면 구성된 레이어도 함께 제거됩니다:
dsh plugin --profile web remove @contexera/dsh-agent-team
추가 기능 (What it adds)
- 채널(Channels), 메시지(Messages), 작업(Tasks), 스레드(Threads), 클레임(Claims) 및 에이전트 멤버십을 갖춘 영속적인 단일 호스트 팀입니다.
- 인간의 제어를 위한 웹 클라이언트: 채널과 에이전트를 생성하고, 멤버십을 관리하며, 메시지를 보내고, 스레드를 열고, 작업을 처리할 수 있습니다.
- 7개의 모델 기반 팀 도구(
team_inbox,team_thread,team_attention,team_message,team_dm,team_claim,team_view)를 갖춘 격리된team-member프리셋입니다. - 풀(pull) 기반 협업 프로토콜. 에이전트 인박스 진입은 영속적이지만, 모델이 이미 업데이트를 처리했다는 것을 주장하지는 않습니다.
팀은 DSH 홈당 하나의 협업 도메인입니다. 이의 추가 전용 작업 원장(append-only operation ledger)이 권위이며; UI, 원격 응답, 도구, 인박스 및 기타 투영(projections)은 커밋된 작업을 기반으로 파생됩니다. 일반적인 DSH 세션은 프로필의 정상 프리셋 명단을 유지하며 팀 도구나 안내를 받지 않습니다.
로컬 체크아웃에서 설치 (Install from a local checkout)
개발을 위해 로컬 번들을 동일한 프로필에 설치합니다:
dsh plugin --profile web add /absolute/path/to/dsh-agent-team
dsh web
게시된 패키지에는 빌드 아티팩트가 포함되어 있습니다. 로컬 체크아웃은 개발 검사 목적으로만 인접한 Harness 저장소를 필요로 하며, 최종 사용자 설치를 위해서는 그렇지 않습니다.
개발 (Development)
기여하기: CONTRIBUTING.md — 변경 사항을 제안하는 방법, 어떤 CI가 실행되는지, 그리고 풀 리퀘스트(pull request)에 무엇이 포함되어야 하는지에 대한 내용입니다.
유지된 문서화 인덱스는 docs/README.md를 읽어보세요. 일반적인 검사 항목은 다음과 같습니다:
corepack pnpm install
npm run typecheck
npm test
...
npm run test:browser는 인접한 ../deepseek-harness 체크아웃, 격리된 임시 프로필, 그리고 /usr/bin/google-chrome을 사용합니다(CHROME_PATH로 덮어쓸 수 있습니다). 이 과정은 제공자 자격 증명(provider credentials)이 필요하지 않습니다. 수동 검사의 경우, npm run preview:ui는 모델 스트리밍 없이 팀 피처스(Team fixtures)를 로드하며; DEEPSEEK_API_KEY=... npm run preview는 실제 제공자 미리보기를 시작합니다. 두 미리보기 명령어 모두 Ctrl+C에서 임시 상태를 정리합니다.
아키텍처와 협업 계약은 docs/architecture/README.md 및 docs/team-collaboration/README.md에 문서화되어 있습니다.
감사의 말씀 (Acknowledgments)
dsh-agent-team의 협업 구조 — 에이전트 멤버 이름, 채널(Channels), 태스크 스레드(Task Threads), @멘션 라우팅(@mention routing), 그리고 멤버별 메모리(per-member memory) — 는 Raft에서 여러 디자인 아이디어를 가져왔으며 그 영향을 받았습니다. 작업에 감사드립니다.
라이선스 (License)
AI 자동 생성 콘텐츠
본 콘텐츠는 개발 자료 GitHub · 9ffce42f의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기