spawn-agent: اجرای ایجنتهای هوش مصنوعی روی کامپیوتر شخصی
خلاصهٔ کاملتر
spawn-agent یه پکیج متنباز با لایسنس MIT هست که به عنوان یه provider برای Vercel AI SDK عمل میکنه و بهت اجازه میده ایجنتهای هوش مصنوعی که روی سیستم خودت نصبشن رو از داخل کد Node.js صدا بزنی. این پکیج از پروتکل استانداردی به اسم Agent Client Protocol (ACP) استفاده میکنه و خروجی رو به صورت استریم در اختیارت میذاره.
ایجنتهایی که spawn-agent ازشون پشتیبانی میکنه شامل Claude Code، Codex، Cursor، GitHub Copilot CLI، Gemini CLI، OpenCode، Factory Droid و Pi میشن. بعضی از اینا مثل Claude Code نیاز به نصب پکیج جداگانهای دارن، ولی بقیه به صورت native از ACP پشتیبانی میکنن.
سادهترین حالت استفاده اینه که با تابع spawnAgent یه مدل میسازی و اون رو به streamText از Vercel AI SDK پاس میدی:
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);
}علاوه بر این، میتونی تنظیمات بیشتری هم موقع ساخت مدل بهش بدی؛ مثلاً دایرکتوری کاری، نحوهی مدیریت مجوزها، سرورهای MCP برای ابزارهای اضافه و حتی یه system prompt از پیش تعریفشده:
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",
});یکی از قابلیتهای جالب این پکیج، پشتیبانی از session های stateful هست. یعنی میتونی یه session بسازی و چند بار پشت سر هم باهاش صحبت کنی و ایجنت حافظهی مکالمه رو نگه میداره. این برای سناریوهایی که نیاز به چند مرحله دستور داری خیلی به درد میخوره:
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" });تنظیماتی مثل inactivityTimeoutMs بهت اجازه میده مشخص کنی اگه ایجنت برای مدتی ساکت موند، تورن فعلی بسته بشه. پیشفرضش ۳ دقیقهست. همچنین میتونی با spawnAgent.fromAdapter یه ایجنت سفارشی که پروتکل ACP رو پیادهسازی کرده هم بهش وصل کنی.
در کل spawn-agent برای توسعهدهندههایی جذابه که میخوان از قدرت چند ایجنت مختلف AI در پروژههاشون استفاده کنن، بدون اینکه کد جداگانهای برای هر کدوم بنویسن. رابط یکپارچهای که با Vercel AI SDK هماهنگه کار رو خیلی سادهتر میکنه.
نکات کلیدی:
- با Vercel AI SDK یکپارچهست و از streamText و generateText پشتیبانی میکنه
- از ۸ ایجنت محبوب از جمله Claude Code، Copilot، Gemini و Codex پشتیبانی میکنه
- قابلیت session های چندمرحلهای با حافظهی مکالمه
- تنظیمات کامل: دایرکتوری کاری، مجوزها، سرورهای MCP و system prompt
- امکان اتصال ایجنتهای سفارشی از طریق fromAdapter




