Eve؛ فریمورک ورسل برای ساختن ایجنت
خلاصهٔ کاملتر
ورسل از Eve رونمایی کرده؛ فریمورکی برای ساختن ایجنت که خودش رو اینطور معرفی میکنه: مثل Next.js برای اپهای وب، ولی برای ایجنتها. فرمولش اینه — Markdown برای دستورالعملها و مهارتها، TypeScript برای ابزارها، و durable بودن بهصورت پیشفرض. شروعش هم با یه دستور npx eve@latest init my-agent ه.
ایدهٔ مرکزی این جملهست که «یه ایجنت یه دایرکتوریه». تو دستورالعملها و مهارتها رو تو Markdown و ابزارها رو تو TypeScript تعریف میکنی و دیپلوی میزنی؛ فریمورک خودش دایرکتوری رو کامپایل میکنه، ورکفلوهای بادوام رو سیمکشی میکنه و کانالها رو وصل میکنه. حتی یه فایل instructions.md تنها هم یه ایجنت کامله: نقشش رو تو Markdown توصیف میکنی و eve رو اجرا میکنی. اگه خواستی مدل رو انتخاب کنی یا رانتایم رو تنظیم کنی، agent.ts اضافه میکنی؛ وگرنه یه مدل پیشفرض کار میکنه.
مهارتها (skills) در واقع پلیبوکهای Markdown ان که فقط وقتی مرتبط باشن بارگذاری میشن، پس ایجنت راهنمای متمرکز میگیره بدون اینکه مجبور باشه تو هر پرامپت همهچی رو با خودش حمل کنه:
---
description: Research unfamiliar topics
---
When the task is novel or ambiguous,
gather evidence first, then answer.ابزارها هم قرارداد سادهای دارن: یه فایل TypeScript میذاری تو tools/ و مدل میتونه صداش بزنه. اسم فایل میشه اسم ابزار و هیچ ثبتودرج دستی لازم نیست. ورودی با zod تعریف میشه:
export default defineTool({
description: "Get the weather for a city",
inputSchema: z.object({ cityName: z.string() }),
async execute(input) {
const res = await fetch(`${process.env.WEATHER_API_URL}/current?city=${input.cityName}`);
const data = await res.json();
return data.current_condition[0];
},
});هر ایجنت بهصورت پیشفرض یه سندباکس ایزوله و ابزارهای کار با فایل داره و اگه بخوای بکاند سندباکس یا تنظیماتش رو عوض کنی، فایل sandbox/sandbox.ts رو اضافه میکنی — مثلاً برای انتخاب رانتایم node24. این بخش روی Vercel Sandbox سواره، همونطور که انتخاب مدل روی AI Gateway.
برای رسوندن همون ایجنت به کاربرها، فایلهای کانال اضافه میشن: Slack، Discord، Teams یا وب، از طریق Vercel Connect و Chat SDK. جدا از کانالها، «connections» احراز هویت سرویسهایی مثل GitHub و Stripe و Linear رو مدیریت میکنه تا ابزارها بتونن بدون دستوپنجه نرمکردن با توکن صداشون بزنن؛ اتصال به سرور MCP هم با defineMcpClientConnection تعریف میشه.
دو قابلیت آخر برای کارهای بزرگترن. زیرایجنتها اجازه میدن کار تخصصی رو جدا کنی — ایجنت اصلی وظیفهها رو واگذار میکنه و نتیجهها رو با هم ترکیب میکنه، و هر زیرایجنت میتونه مدل خودش رو داشته باشه. زمانبندیها هم با یه cron تو فرانتمتر تعریف میشن و برای کارهایی مثل گزارش روزانه یا خلاصهٔ هفتگی، ایجنت رو خودکار اجرا میکنن؛ به لطف Vercel Workflows کار بدون نشست فعال و به شکل بادوام ادامه پیدا میکنه.
نکات کلیدی:
- Eve یه ایجنت رو بهعنوان یه دایرکتوری تعریف میکنه: Markdown برای دستورالعمل و مهارت، TypeScript برای ابزار
- یه instructions.md تنها هم یه ایجنت کامله؛ agent.ts فقط برای انتخاب مدل و تنظیم رانتایم لازمه
- هر فایل توی tools/ خودکار میشه یه ابزار قابل فراخوانی، بدون ثبت دستی
- مهارتها فقط وقتی مرتبط باشن بارگذاری میشن تا پرامپت سنگین نشه
- سندباکس ایزوله، کانالهای Slack و Discord و Teams، احراز هویت سرویسها و MCP داخل فریمورکه
- زیرایجنت و زمانبندی cron با اجرای بادوام روی Vercel Workflows پشتیبانی میشن




