Loopها
کارهای تکراری را با اجرای زمانبندیشده، event-driven و دستی Pulse Agent خودکار کنید.
معرفی
Loop به Pulse Agent اجازه میدهد کارهای تکرارشونده را بدون شروع یک گفتوگوی تازه انجام دهد. هر Loop میتواند طبق یک برنامه اجرا شود، به تغییر پشتیبانیشدهای در Pulse واکنش نشان دهد یا منتظر اجرای دستی شما بماند.
هر Loop دستورالعمل، trigger، خروجی و مجموعهای صریح از permissionها دارد. Loop میتواند رکوردهایی را بخواند که مالک آن به آنها دسترسی دارد و، اگر اجازه داده باشید، entity آغازگر run یا سایر موارد مجاز را تغییر دهد. قابلیتهای اختیاری نیز web search، حافظهٔ runهای قبلی یا دسترسی به MCP connectorهای انتخابشده را اضافه میکنند.
ویرایش، رفتار زنده را همان لحظه تغییر نمیدهد. Pulse تغییرها را در draft ذخیره میکند و آخرین نسخهٔ منتشرشده همچنان اجرا میشود. هر بار Publish یک نسخهٔ ثابت میسازد؛ بنابراین میتوانید هر run را با همان دستورها و permissionهایی که واقعاً دریافت کرده بررسی کنید.
در workspaceهای منتخب در دسترس است و از AI allowance workspace استفاده میکند.
نمونهٔ Loopها
Loop زمانی بیشترین ارزش را دارد که کار شامل یک تصمیم تکرارشونده، منبع مشخص context و نتیجهای قابلبررسی باشد. برای مثال:
- هر صبح روز کاری، issueهای باز با اولویت بالا را مرور و heartbeatی شامل blockerها، مالکها و اقدام بعدی ارسال کند.
- وقتی issue وارد triage شد، description و commentها را بررسی کند، اطلاعات ناقص برای بازتولید را تشخیص دهد و فقط همان موارد را در comment درخواست کند.
- وقتی request جدید ثبت شد، آن را از روی محتوا دستهبندی کند، fieldهای مناسب را تنظیم کند و موارد نیازمند تصمیم انسانی را به مالک اطلاع دهد.
- هر جمعه، updateهای اخیر projectها و سؤالهای باز را مرور و خلاصهای کوتاه از ریسکها و کارهای بعدی ارسال کند.
الگوهای زیر نشان میدهند trigger، instruction و permission چگونه با هم کار میکنند.
بررسی bugهای ورودی
Loop را هنگام ساختهشدن issue در Team مربوط به triage یا با تغییر fieldهای مرتبطی مثل status، priority یا label اجرا کنید. در instruction بخواهید issue و بحثهای موجودش را بخواند، وجود expected behavior، actual behavior و reproduction steps را بررسی کند و فقط در صورت کمبود اطلاعات comment بگذارد.
برای بررسی، Read Pulse data را فعال کنید. تنها وقتی Loop باید comment بگذارد یا fieldی را تغییر دهد، Change Pulse data و اجازهٔ تغییر entity آغازگر را بدهید. Repository investigation و coding session در نسخهٔ فعلی Loops فعال نیستند؛ پس instruction را به آنها وابسته نکنید.
ساخت کارهای بعدی پس از incident
از issue event همراه با شرطهایی مثل label مربوط به incident و status تکمیلشده استفاده کنید. در instruction مشخص کنید چه چیزی follow-up حلنشده محسوب میشود و issueهای جدید چگونه نامگذاری، لینک و assign شوند.
چون نتیجه روی entity دیگری ساخته میشود، این الگو به permission تغییر سایر موارد نیاز دارد. برای جلوگیری از تولید تعداد نامحدود issue، action limit مناسبی تعیین کنید.
مسیردهی requestهای جدید
Loop را با ثبت request اجرا کنید. Loop میتواند request را بخواند، از fieldها و description برای تعیین مقصد مناسب استفاده کند و در صورت فعالبودن Pulse write access، request را بهروزرسانی کند. اگر فقط بخشی از requestها باید پردازش شوند، condition اضافه کنید.
اگر تصمیم مسیردهی به سرویس خارجی وابسته است، فقط MCP server موردنیاز را متصل کنید و تا جای ممکن toolهای در دسترس آن را محدود کنید.
آمادهکردن مرور دورهای projectها
یک schedule هفتگی بسازید و scope بررسی را دقیق بنویسید؛ مثلاً projectهای active متعلق به Product team. از Loop بخواهید updateهای ناقص، target dateهای گذشته، سؤالهای حلنشده و تغییرهای run قبلی را برجسته کند. Heartbeat برای این الگو مناسب است، چون وقتی نکتهٔ مفیدی وجود ندارد میتواند بیصدا بماند.
ساخت Loop با Pulse Agent
Pulse Agent میتواند توضیح سادهٔ شما را به draft یک Loop تبدیل کند. روش مطمئن این است که ابتدا outcome را توضیح دهید و سپس trigger و permissionها را در editor اصلاح کنید.
- از sidebar وارد Loops شوید و New loop را انتخاب کنید.
- scope فعلی Personal را نگه دارید و Agent را بهعنوان نقطهٔ شروع انتخاب کنید. همچنین میتوانید از draft خالی شروع و در editor از Compose with Agent استفاده کنید.
- نتیجهٔ موردنظر، رکوردهای لازم، زمان اجرا و کارهایی را که نباید انجام شوند توضیح دهید.
- draft پیشنهادی را بررسی کنید. trigger، conditionها، instruction، خروجی، connectorها و permissionها را مستقل از متن prompt تأیید کنید.
- Review and publish را بزنید، blockerها را برطرف و اولین نسخه را منتشر کنید.
بهجای «هر هفته projectها را خلاصه کن»، مخاطب، قاعدهٔ انتخاب، اطلاعات لازم، قالب خروجی و مرزها را مشخص کنید:
هر جمعه بعدازظهر، projectهای active متعلق به Product team را بررسی کن. تغییرهای آخرین updateها، target dateهای گذشته و سؤالهای باز را خلاصه کن. فقط وقتی projectی نیاز به توجه دارد heartbeat بفرست. fieldهای project را تغییر نده و issue نساز.
Pulse Agent فقط draft را ویرایش میکند و هرگز بهجای شما Publish نمیکند. بررسی و انتشار هر نسخه بر عهدهٔ شماست.
ساخت دستی Loop
اگر trigger و مرزهای کار را میدانید، Loop را مستقیماً تنظیم کنید.
- Loops را باز و New loop را انتخاب کنید.
- یک Loop با scope Personal بسازید. scope پس از ایجاد قابلتغییر نیست.
- trigger را انتخاب کنید:
- Schedule برای اجرای روزانه، روزهای کاری، روزهای مشخص هفته، ماهانه یا فاصلههای ساعتی.
- Event برای تغییرهای پشتیبانیشده روی issue، request، project، initiative یا cycle.
- Manual برای Loopی که فقط با اقدام شما اجرا میشود.
- برای event trigger، event و conditionها را انتخاب کنید. در event نوع updated، fieldهایی را تعیین کنید که واقعاً باید تغییر کرده باشند.
- outcome و instruction را بنویسید: چه چیزی بررسی شود، چه خروجی یا تغییری ایجاد شود و چه چیزهایی نباید دستکاری شوند.
- در صورت نیاز خروجی Heartbeat را فعال کنید. Pulse Agent فقط هنگام وجود گزارش مفید heartbeat میفرستد؛ notification را میتوان جداگانه فعال کرد.
- فقط در صورت نیاز به منبع یا action خارجی، MCP connector اضافه کنید.
- Team access، write access، capabilityها و سقف action و duration را بررسی کنید.
- Review and publish را انتخاب و نسخه را منتشر کنید.
Schedule از timezone نمایشدادهشده در editor استفاده میکند و زمانش تقریبی است: Pulse run را در بازهٔ نشاندادهشده شروع میکند، نه دقیقاً در یک ثانیهٔ تضمینشده. Conditionهای event پس از تغییر ارزیابی میشوند؛ همهٔ conditionهای یک group باید برقرار باشند و groupهای جدا جایگزین یکدیگرند.
تا پیش از اولین Publish هیچ چیز اجرا نمیشود. انتشار اولین نسخه، Loop را نیز فعال میکند.
بهروزرسانی Loop
تغییرهای Loop منتشرشده در draft ذخیره میشوند و نسخهای را که اکنون اجرا میشود تغییر نمیدهند.
- Loops را باز و Loop موردنظر را انتخاب کنید.
- Edit را بزنید.
- trigger، instruction، output، connector یا permission را تغییر دهید. editor بهصورت خودکار draft را ذخیره و وضعیت save را نمایش میدهد.
- با Review and publish، draft را با تنظیمات زنده مقایسه و همهٔ blockerهای انتشار را یکجا ببینید.
- draft را Publish کنید. runهایی که پس از انتشار پذیرفته میشوند نسخهٔ جدید را میگیرند؛ runهای قبلاً پذیرفتهشده با نسخهٔ شروع خود ادامه میدهند.
Disable کردن Loop فقط اجرای خودکار جدید را متوقف میکند و draft، نسخههای منتشرشده و run history را حذف نمیکند. برای ازسرگیری triggerهای خودکار آن را دوباره Enable کنید.
بررسی runهای یک Loop
هر Loop دارای run history است تا زمان اجرا، علت اجرا و نتیجهٔ آن قابلبررسی باشد.
- Loops را باز و یک Loop انتخاب کنید.
- Run history را بزنید.
- یک run را باز کنید تا trigger context، نسخهٔ منتشرشده، instructionها، outcome، effectها و usage ثبتشده را ببینید.
- اگر run به Pulse Agent رسیده است، conversation آن را برای دیدن context کامل اجرا باز کنید. runهایی که پیش از رسیدن به Agent skip شدهاند transcript ندارند.
History بین موفقیت، no-action، اجرای ناقص، failure، cancellation و occurrenceهای skipشده تفاوت میگذارد. همچنین نشان میدهد کدام action اجرا، رد یا ناموفق شده یا قابلتأیید نبوده است. در صورت failure، Pulse به مرتبطترین محل رفع مشکل لینک میدهد؛ مانند permissionهای Loop، capability settings، usage settings یا run limits.
از منوی Loop میتوانید Run now را نیز بزنید. برای Loopهای event-driven باید issue، request، project، initiative یا cycle سازگار را انتخاب کنید. اجرای دستی Loop غیرفعال یا paused یکباره است و وضعیت خودکار آن را Enable یا Resume نمیکند.
بازگرداندن نسخهٔ قبلی
نسخههای منتشرشده بهصورت snapshot ثابت نگه داشته میشوند. Restore کردن بلافاصله نسخهٔ زنده را عوض نمیکند؛ Pulse آن نسخه را در draft کپی میکند تا ابتدا بررسی شود.
- Loop را باز کنید و Edit را بزنید.
- Published versions را باز کنید.
- نسخهٔ موردنظر را انتخاب و Restore version را بزنید.
- draft بازگرداندهشده را بررسی کنید. connector یا capabilityهایی را که دیگر در دسترس نیستند دوباره authorize یا حذف کنید.
- وقتی draft آماده شد، آن را Publish کنید.
تا زمان Publish، نسخهای که قبل از restore زنده بود همچنان اجرا میشود.
MCP connectorها
MCP connector به Loop امکان استفاده از context و action سرویس دیگری را میدهد. بسته به server متصل، Loop میتواند مستندات را بازیابی کند، error report بخواند، pull request را بررسی کند یا بیرون از Pulse update بفرستد.
دسترسی connector دو لایه دارد: workspace policy تعیین میکند کدام MCP serverها مجازند و مالک Loop اتصالهای active مشخصی را به Loop میدهد. نسخهٔ منتشرشده فقط شناسهٔ connection و محدودیت اختیاری toolها را ذخیره میکند، نه credential کپیشده. اگر connection لغو شود، دیگر برای Loop resolve نمیشود.
connector شخصی به Loop اجازه میدهد با هویت شما عمل کند؛ فقط toolهای لازم را بدهید.
افزودن و مدیریت connectorها
- draft Loop را باز و بخش Connectors را پیدا کنید.
- یک connection موجود را انتخاب کنید یا به MCP server مجاز workspace متصل شوید.
- از منوی connector، toolهایی را که Loop میتواند استفاده کند محدود کنید.
- draft را Publish کنید تا connector برای runهای بعدی فعال شود.
runهای Loop نمیتوانند از connector محلی Bridge استفاده کنند که به روشنبودن Mac شما وابسته است. connector باید هنگام اجرای بدون نظارت از hosted runtime قابلدسترسی باشد.
Pulse در حال حاضر integration اشتراکی و اختصاصی Slack برای Loops ندارد. اگر Slack برای workspace شما موجود باشد، بهصورت MCP connector و با authorization و محدودیت toolهای خودش استفاده میشود.
راهاندازی
Loops فقط در workspaceهای حاضر در rollout نمایش داده میشود. اگر Loops در sidebar نیست، workspace در حال حاضر feature flag یا agent workflow capability لازم را ندارد.
مدیریت Loop مشترک هنوز موجود نیست. Loop جدید شخصی است و configuration، versionها، resultها و run history آن فقط برای مالک دیده میشود؛ حتی workspace admin نیز به آن دسترسی ندارد. Loop شخصی همچنان میتواند permission دسترسی به دادهٔ Team بگیرد، اما این دسترسی Loop را shared نمیکند.
Workspace policy میتواند capability یا MCP server مشخصی را مجاز یا مسدود کند. editor قابلیت unavailable را همراه دلیل نشان میدهد و اجازه نمیدهد draft وابسته به دسترسی غیرقابلاجرا Publish شود.
Permissionها
Permission حداکثر scope هر run را تعیین میکند، اما دسترسی مالک را گسترش نمیدهد. Loop نمیتواند دادهای را بخواند یا تغییر دهد که مالک آن مستقیماً به آن دسترسی ندارد. کمترین permission لازم برای outcome را بدهید.
Team access
Team access تعیین میکند Loop دادهٔ کدام Teamها را بخواند یا تغییر دهد. Loop شخصی میتواند به همهٔ Teamهای public یا مجموعهای مشخص از Teamها دسترسی بگیرد. انتخاب Team فقط data scope را محدود میکند و Loop را با آن Teamها به اشتراک نمیگذارد.
دسترسی به دادهٔ Pulse
Read Pulse data اجازه میدهد Loop رکوردهای مجاز Pulse مانند issue، request، project و document را بررسی کند. Change Pulse data ابزارهای نوشتن موجود را فعال میکند، اما write-scope پایین همچنان مشخص میکند کدام رکوردها قابلتغییرند.
Remember previous runs نتیجهگیری runهای قبلی را بهعنوان context در دسترس میگذارد. وقتی پیوستگی کیفیت نتیجه را بهتر میکند آن را فعال کنید؛ اگر هر run باید مستقل باشد خاموش نگه دارید.
Web access
Search the web به Loop اجازه میدهد اطلاعات عمومی و بهروز را جستوجو و sourceها را cite کند. این capability باید هم در deployment موجود و هم در workspace policy فعال باشد.
Web access ممکن است بخشی از context Loop را به website یا search service خارجی بفرستد. برای کاری که میتواند دادهٔ حساس workspace داشته باشد، فقط در صورت پذیرش این انتقال آن را فعال کنید.
تغییر entity آغازگر و سایر موارد
Write permission به دو کنترل مستقل تقسیم میشود:
- Change the item that triggered it اجازه میدهد run روی issue یا request آغازگر comment بگذارد یا آن را update کند.
- Change other items تغییر entityهای دیگر را در محدودهٔ Team access و permissionهای خود مالک ممکن میکند.
دومی بهصورت پیشفرض خاموش است و فقط زمانی باید فعال شود که outcome واقعاً به ساخت یا update کار مرتبط نیاز دارد. Loop زمانبندیشده entity آغازگر ندارد؛ در نتیجه رفتار نوشتن آن را Team access، capabilityها و permission تغییر سایر موارد تعیین میکنند.
محدودیت run
هر Loop سقف تعداد action و حداکثر duration دارد. با رسیدن به هرکدام، run متوقف و بهعنوان partially completed ثبت میشود. این limitها هزینه را محدود میکنند و جلوی تغییرهای بیش از انتظار از instructionهای گسترده را میگیرند.
قابلیتهایی که هنوز فعال نیستند
Repository knowledge، coding session و نوشتن روی issueهای externally synchronized در permission model تعریف شدهاند، اما در نسخهٔ فعلی Loops قابلاستفاده نیستند. Pulse آنها را unavailable نشان میدهد و تنظیمی را که اجرا نمیشود نمیپذیرد.
Pulse فعلاً برای triggerهای issue یا request بین external sourceهای trusted تفاوتی قائل نمیشود؛ بنابراین allowlist جداگانهای برای source خارجی در هر Loop وجود ندارد.
مصرف هوش مصنوعی
runهای Loop از AI allowance موجود workspace استفاده میکنند. صفحهٔ run، در صورت گزارش provider، token usage، model و duration را ثبت میکند. اگر allowance تمام شود، runهای خودکار بهجای failure تکراری pause میشوند. پس از رفع محدودیت usage توسط admin، Loop را از منوی آن Resume کنید.
Pulse از کنترلهای موجود usage و spend در workspace استفاده میکند، نه balance جداگانهٔ Loops.
پرسشهای رایج
مستندات مرتبط
- Pulse Agent — شیوهٔ کار Agent و منبع permissionهای آن
- Issueها — lifecycle مورد استفادهٔ issue-event Loopها
- Requestها — دریافت و مسیردهی request
- Projectها — context پروژه برای Loopهای event و schedule
- MCP server — مدل integration مبتنی بر MCP در Pulse
آخرین بهروزرسانی