پرسونا و لحن گفتمان
هر قالب میتواند هویت گفتاری و نوشتاری دستیار خود را تعریف کند: نام نمایشی، نقش، زبان و در صورت فعال بودن کانال، ویژگیهای صوتی. این مقادیر توکن هستند، نه منطق: شکل بیان را تعیین میکنند و هرگز قصد، سیاست، مجوز یا پاسخ امنیتی را تغییر نمیدهند.
قرارداد در کپی کد است (بدون اثر جانبی، امن برای SSR و سرور ایجنت). هر قالب فایل کپی کد دارد و با کپی کد تعریف میشود.
۱. پلیگراند
یک preset را انتخاب کنید؛ نمونهٔ پاسخ، مقادیر resolve شده و کد قابلکپی همراه با انتخاب شما تغییر میکنند.
ناراحت نباشید، این اتفاق زیاد پیش میآید. روی «فراموشی رمز» بزنید تا کدی به ایمیلتان برود.
| توکن | مقدار |
|---|---|
| tone.formality | neutral |
| tone.address | formal-you |
| tone.warmth | warm |
| tone.directness | balanced |
| tone.verbosity | standard |
| tone.humor | none |
| tone.emoji | sparse |
| tone.clarification | ask |
import { definePersona } from '@tokapps/tokens/persona';export const persona = definePersona({ version: 1, id: 'persona.playground', preset: 'warm-supportive', displayName: { fa: 'راهنما' }, role: 'assistant', domain: 'general',});۲. توکنهای لحن
| توکن | مقادیر | پیشفرض |
|---|---|---|
| کپی کد | کپی کد · کپی کد · کپی کد | کپی کد |
| کپی کد | کپی کد (شما) · کپی کد (تو) · کپی کد (بیضمیر) | کپی کد |
| کپی کد | کپی کد · کپی کد · کپی کد | کپی کد |
| کپی کد | کپی کد · کپی کد · کپی کد | کپی کد |
| کپی کد | کپی کد · کپی کد · کپی کد | کپی کد |
| کپی کد | کپی کد · کپی کد | کپی کد |
| کپی کد | کپی کد · کپی کد | کپی کد |
| کپی کد | کپی کد · کپی کد | کپی کد |
زبان (کپی کد): کپی کد (کپی کد · کپی کد)، کپی کد (کپی کد · کپی کد)، کپی کد (کپی کد · کپی کد).
۳. presetهای استاندارد
| شناسه | عنوان | کاربرد |
|---|---|---|
| کپی کد | حرفهای خنثی (پیشفرض) | پیشفرض همهٔ قالبها |
| کپی کد | رسمی سازمانی | بانک، دولتی، حقوقی |
| کپی کد | گرم و حمایتی | پشتیبانی، آموزش |
| کپی کد | آموزشی و صبور | آموزش گامبهگام |
| کپی کد | موجز و متخصص | ابزار توسعه، داشبورد |
| کپی کد | صمیمی و محاورهای | جامعه، محتوا |
| کپی کد | شوخطبع سبک | سرگرمی، محصول مصرفی |
| کپی کد | راهنمای آرام صوتی | راهنمای مرحلهبهمرحله (پایهٔ کپی کد) |
| کپی کد | دستیار چابک صوتی | دستورهای کوتاه (پایهٔ کپی کد) |
presetها غیرقابل تغییرند؛ قالب فقط نام آنها را میبرد و override مجاز اعمال میکند.
۴. قیود ثابت
این قیدها در هر قالب و هر preset اعمال میشوند و قابل بازنویسی نیستند:
- افشای هوش مصنوعی: دستیار خود را انسان معرفی نمیکند.
- دامنههای حساس (کپی کد، کپی کد، کپی کد، کپی کد): طنز و اموجی روی کپی کد قفل میشوند.
- صدا: پخش خودکار خاموش است، کاربر همیشه میتواند میان پاسخ صحبت کند، هر پاسخ صوتی متن معادل دارد و مارکداون یا URL خوانده نمیشود.
- کلیدهای ممنوع: جنسیت، سن، قومیت، لهجه و کپی کد در پرسونا نمیآیند. کپی کد نام معنایی است، نه شناسهٔ سرویس صدا.
۵. ترتیب اعمال
از کماولویت به پراولویت: هستهٔ پیشفرض، preset، قالب، پیکربندی محصول، ترجیح ذخیرهشدهٔ کاربر، درخواست همان گفتگو، و در آخر قیدهای ثابت. درخواستی مثل «کوتاهتر بگو» فقط برای همان گفتگو اعمال میشود و ذخیره نمیشود.
۶. تعریف در قالب
// theme/persona.tsimport { definePersona } from '@tokapps/tokens/persona';export const persona = definePersona({ version: 1, id: 'persona.support-guide', preset: 'warm-supportive', displayName: { fa: 'راهنما' }, role: 'support', domain: 'support', tone: { verbosity: 'standard' }, language: { primary: 'fa', numerals: 'fa', latinTerms: 'keep' },});دستیار صوتی همان قالب با یک بلوک کپی کد (فقط کپی کد الزامی است):
export const voicePersona = definePersona({ version: 1, id: 'persona.voice-guide', preset: 'voice-calm-guide', displayName: { fa: 'راهنمای صوتی' }, role: 'guide', domain: 'education', voice: { voiceRef: 'voice.calm-guide', maxSentences: 2 },});۷. استفاده در زمان اجرا
import { resolvePersona } from '@tokapps/tokens/persona';import { persona } from './theme/persona';const active = resolvePersona(persona, { product: { voiceEnabled: true }, user: { voiceMuted: false },});// active.tone، active.voice و active.diagnostics را مصرف کنیدتعریف نامعتبر در زمان اجرا پرتاب نمیکند؛ به پیشفرض امن کپی کد برمیگردد و خطاها در کپی کد دیده میشوند.
۸. ایجنتها
ابزار کپی کد در سرور MCP همین presetها، قیود و نمونهٔ کد را برمیگرداند. گیت کپی کد قاعدهٔ کپی کد را اجرا میکند: کلیدهای ممنوع، نقض قیود صوتی، شناسهٔ سرویس صدا و طنز در دامنهٔ حساس را رد میکند.
۹. پرسش از کاربر در پروژهٔ جدید
در پروژهٔ جدید، ایجنت پیش از نوشتن کپی کد باید این موارد را از توسعهدهنده بپرسد و پاسخ را دقیقاً به مقادیر قرارداد نگاشت کند:
- preset: یکی از نه preset فهرست کپی کد.
- دامنه (کپی کد): کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد یا کپی کد. دامنههای حساس طنز و اموجی ندارند.
- نام نمایشی فارسی و نقش (کپی کد): کپی کد، کپی کد، کپی کد یا کپی کد.
- زبان و اعداد: کپی کد، کپی کد (کپی کد یا کپی کد) و کپی کد.
- خطاب و لحن: کپی کد، کپی کد، کپی کد و کپی کد در محدودهٔ مجاز همان preset.
- صدا: فعال بودن کانال صوتی و کپی کد معنایی (مثل کپی کد).
- رفتار گفتاری (توسعهدهنده تعیین میکند؛ در کپی کد ثابت میشود): سقف اموجی (کپی کد)، میزان تملق (کپی کد: کپی کد، کپی کد یا کپی کد)، فهرست واژگان ممنوع (کپی کد)، سقف کلمه در هر نوبت (کپی کد، ۴۰ تا ۶۰۰) و سقف پرسش در هر نوبت (کپی کد، ۱ تا ۳). در دامنههای حساس اموجی ۰ و تملق کپی کد است.
بدون پاسخ کاربر پرسونا ساخته نمیشود. اگر کاربر دربارهٔ موردی نظری نداد، پیشفرض را پیشنهاد بده و تأیید بگیر.
۱۰. قفل در AGENTS.md پروژهٔ مقصد
پس از ثبت پاسخها، ابزار کپی کد بلوک «پرسونای پروژه (قفلشده)» را میسازد و بین نشانگرهای کپی کد در کپی کد پروژه مینویسد. این بلوک شناسه، preset، لحن، زبان، صدا و رفتار گفتاری را دقیق نقل میکند. ایجنت رابط کاربری پیش از طراحی آن را میخواند و همان لحن و خطاب را در متنهای رابط به کار میبرد. با تغییر کپی کد بلوک بازتولید میشود و بقیهٔ کپی کد دستنخورده میماند.
۱۱. چیدمان پویا (Generative UI)
ایجنت پروژهٔ مقصد قواعد چیدمان را از کپی کد میگیرد و در کپی کد خود مینویسد. ترتیب چهار اسلات ثابت است: خلاصه، ویجت اصلی، پاورقی و اقدامها. تصمیم In-line، Side-Panel یا Full Canvas بر اساس اندازهٔ داده و viewport گرفته میشود و دلیلش ثبت میشود. پیش از نمایش هر خروجی کامپوننتی، ابزار کپی کد ترتیب، حدود، چیدمان و دلیل را بررسی میکند.