Spawn available local agents on a user's computer
이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.
사용자 컴퓨터에서 사용 가능한 로컬 에이전트를 실행합니다.
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