millionco/spawn-agent

Spawn available local agents on a user's computer

GitHub에서 열기 ↗ agentlocalspawn-agent
167
GitHub 스타
9
포크
TypeScript
언어
MIT
라이선스
2026.04.26
최근 푸시
2026.05.04
별표한 날

AI 분석

설치 난이도: 쉬움
큐레이터 노트
Vercel AI SDK를 사용하는 프로젝트에서 다양한 로컬 AI 에이전트를 쉽게 통합하고 싶다면 채택할 가치가 높습니다. 특히 다중 턴 대화나 MCP 서버 연동이 필요한 경우 유용합니다.

강점

  • Vercel AI SDK와 통합되어 기존 AI SDK 사용자에게 친숙함
  • 다양한 로컬 에이전트(Claude Code, Codex, Cursor 등)를 단일 인터페이스로 지원
  • 상태 저장 세션을 지원하여 다중 턴 대화에서 에이전트 메모리 유지 가능
  • MCP 서버 설정 및 권한 제어 등 세부 설정 옵션 제공

약점

  • 일부 에이전트(Claude Code, Codex)는 추가 패키지 설치가 필요하여 초기 설정이 번거로울 수 있음
  • README에 성능이나 안정성에 대한 벤치마크 정보가 없음
  • 에이전트별 기능 차이에 대한 상세한 문서 부족

주의사항

  • 로컬 에이전트를 실행하므로 사용자 컴퓨터의 리소스를 사용함
  • 권한 설정('auto-allow' 등)에 따라 보안 위험이 있을 수 있으므로 주의 필요
  • 일부 에이전트는 네이티브 ACP를 지원하지 않아 추가 의존성이 필요함

시작 가이드

  • npm install spawn-agent ai로 설치 후 기본 사용법 테스트
  • 지원되는 에이전트 중 사용하려는 에이전트의 추가 패키지 설치 확인
  • 상태 저장 세션을 활용한 다중 턴 대화 구현 검토
  • MCP 서버 설정 등 고급 옵션 문서화 및 테스트

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

spawn-agent

사용자 컴퓨터에서 사용 가능한 로컬 에이전트를 실행합니다.

Vercel AI SDK를 위한 프로바이더로, Claude Code, Codex, Cursor, GitHub Copilot, Gemini, OpenCode, Factory Droid, Pi를 Agent Client Protocol을 통해 스트리밍합니다.

설치

npm install spawn-agent ai

사용법

import { streamText } from "ai";
import { spawnAgent } from "spawn-agent";

const { textStream } = streamText({
  model: spawnAgent("claude"),
  prompt: "Refactor src/auth.ts to use the new session API",
});

for await (const chunk of textStream) {
  process.stdout.write(chunk);
}

호출 지점에서 인라인으로 설정을 전달하거나, createSpawnAgent로 사전 구성된 프로바이더를 빌드할 수 있습니다:

import { generateText } from "ai";
import { spawnAgent } from "spawn-agent";

const { text } = await generateText({
  model: spawnAgent("codex", {
    cwd: "/Users/me/project",
    permission: "auto-allow",
    mcpServers: [
      {
        type: "stdio",
        name: "filesystem",
        command: "npx",
        args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
      },
    ],
  }),
  prompt: "Summarize README.md in three bullets",
});
설정 효과
cwd 에이전트가 작업하는 디렉터리입니다.
permission "auto-allow" (기본값) / "auto-allow-once" / "auto-reject" / "stream".
mcpServers 추가 도구를 위해 에이전트가 연결하는 MCP 서버 설정입니다.
additionalDirectories 에이전트가 읽고 쓸 수 있는 추가 절대 경로입니다.
systemPrompt 사용자 프롬프트 앞에 추가됩니다.
inactivityTimeoutMs 에이전트가 응답하지 않을 때 턴을 종료합니다 (기본값 3분).

지원되는 에이전트

ID 표시 이름 참고 사항
claude Claude Code @agentclientprotocol/claude-agent-acp 필요
codex Codex @zed-industries/codex-acp 필요
cursor Cursor Agent 네이티브 ACP
copilot GitHub Copilot CLI 네이티브 ACP
gemini Gemini CLI 네이티브 ACP
opencode OpenCode 네이티브 ACP
droid Factory Droid 네이티브 ACP
pi Pi 네이티브 ACP

사용자 정의 ACP-말하기 하위 프로세스의 경우 spawnAgent.fromAdapter(...)를 사용하세요.

상태 저장 세션

단일 하위 프로세스에서 여러 턴의 대화를 위해 createSpawnAgentSession을 사용하세요. session.model에 대한 각 streamText 호출은 하나의 session/prompt 턴을 보내므로, 에이전트의 대화 메모리가 턴 간에 유지됩니다:

import { streamText } from "ai";
import { createSpawnAgentSession } from "spawn-agent";

await using session = await createSpawnAgentSession("codex");

await streamText({ model: session.model, prompt: "list TODOs" });
await streamText({ model: session.model, prompt: "now fix the highest one" });

// providerOptions를 통한 슬래시 명령어
await streamText({
  model: session.model,
  prompt: "agent client protocol",
  providerOptions: { spawnAgent: { command: "web" } },
});

사람이 개입하는 권한 프롬프트, 터미널 핸들러, 세션 재개를 위해 session.agent 필드는 기본 SpawnAgent를 노출합니다. 전체 API는 packages/spawn-agent/src/index.ts를 참조하세요.

기여

기여 가이드 · 이슈

라이선스

MIT

원본 저장소: millionco/spawn-agent

라이선스: MIT

게재 제외를 원하시면 삭제 요청을 보내주세요.