MCP HubMCP Hub
스킬 목록으로 돌아가기

manage-engagement-buffer

pjt222
업데이트됨 6 days ago
12 조회
17
2
17
GitHub에서 보기
메타general

정보

이 스킬은 여러 플랫폼에서 들어오는 참여 항목(예: 알림 또는 메시지)에 대한 우선순위 큐를 관리하며, 수집, 속도 제한, 중복 제거 및 상태 추적을 처리합니다. 주기적인 요약을 생성하고 쿨다운 기간을 적용하며, 관찰/행동 주기를 제어하는 별도의 간격 스킬(`du-dum`)과 조합하여 작동합니다. 다중 소스에서 대량의 입력을 통제되고 질서 있는 방식으로 처리해야 하는 자율 에이전트를 구축할 때 사용하세요.

빠른 설치

Claude Code

추천
기본
npx skills add pjt222/agent-almanac -a claude-code
플러그인 명령대체
/plugin add https://github.com/pjt222/agent-almanac
Git 클론대체
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/manage-engagement-buffer

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서

管投入緩

收、排、限速、去重、追跨平台投入項之態。生期摘並執冷卻。與 du-dum 組:du-dum 設觀/動節,此技管拍間之列。

  • 自主代理受逾週期可處之投入
  • 重或近重項費動預算
  • 投入須序於動鐘前
  • 需冷卻以阻過投或限速
  • 多平台源(GitHub、Slack、郵)饋單代理動環

  • buffer_path — JSONL 緩文件路
  • platform_config — 各平台限速與冷卻
  • digest_size — 摘頂項數(默 5)
  • ttl_hours — 未動項之生壽(默 48)
  • cooldown_minutes — 動後線冷卻(默 60)

一:定緩模

設投入項結。緩中各項為單 JSON 行含此字段:

{
  "id": "gh-notif-20260408-001",
  "source": "github:pjt222/agent-almanac",
  "timestamp": "2026-04-08T09:15:00Z",
  "content_summary": "PR #218 review requested by contributor",
  "priority": 4,
  "state": "new",
  "dedup_key": "github:pjt222/agent-almanac:pr-218:contributor-name",
  "thread_id": "pr-218",
  "ttl_hours": 48
}

字段定義:

字段
id獨識(源前綴+日+序)
source平與道(github:reposlack:channelemail:inbox
timestampISO 8601項收時
content_summary投入項之一行述
priorityint 1-5合排(見步四)
stateenumnewacknowledgedactedcooldownmergedexpired
dedup_key合鍵:源+線+作者
thread_id話線識以追冷卻
ttl_hoursint未動過期時(默 48)

存為 JSON Lines(各行一 JSON 象)。此格支僅追寫、行處、易按重寫除過期行而清。

得:於 buffer_path 初 JSONL 緩文件附模於伴註或頭。模穩足支諸下游步。

敗:緩文件不可造(權、路)→當週回內存列並記文系誤。勿默棄項——存於某處,即臨。

二:施收

受平適配器之項並加至緩附初排:

按項型之初排:

直提(@agent)5有人明求注
審請4阻他人工
追線中之應3代理參之活話
通知(派、訂)2信息,或需動
廣播(發、通)1僅覺,少可動

各新項:

  1. 由模字段構項 JSON
  2. 按上表按型賦初排
  3. statenew
  4. timestamp 為當 UTC
  5. 由源+線+作者生 dedup_key
  6. 加 JSON 行至緩文件
# Pseudocode: ingest from GitHub adapter
for notification in github_adapter.fetch():
    item = build_item(notification)
    item.priority = priority_by_type(notification.reason)
    item.state = "new"
    append_jsonl(buffer_path, item)
    log("ingested {item.id} priority={item.priority}")

得:新項現於緩附正排與 state=new。各適配器獨生合格項——適配器敗不阻他。

敗:平適配器敗(認過期、限速、網斷)→記敗並略此週之源。勿清現緩項——前成功取之陳項較空緩佳。

三:去重

掃緩於可配窗(默 24 時)內共 dedup_key 之項。保最高排並他標為合:

  1. dedup_key
  2. 各組按排降、時降排
  3. 保首(排最高、時最近);他標 state=merged
  4. 察線潮:同 thread_id 於 1 時內異作者示活動潮——合為單項附參者計加於 content_summary
# Dedup logic
groups = group_by(buffer, "dedup_key", window_hours=24)
for key, items in groups:
    if len(items) > 1:
        keeper = max(items, key=lambda i: (i.priority, i.timestamp))
        for item in items:
            if item.id != keeper.id:
                item.state = "merged"

# Thread burst detection
thread_groups = group_by(buffer, "thread_id", window_hours=1)
for thread_id, items in thread_groups:
    active_items = [i for i in items if i.state == "new"]
    if len(active_items) >= 3:
        keeper = max(active_items, key=lambda i: i.priority)
        keeper.content_summary += f" ({len(active_items)} participants)"
        for item in active_items:
            if item.id != keeper.id:
                item.state = "merged"

得:緩無窗內重 dedup_key 項。線潮縮為單項附參者計。合項保於文件(審用)而除下游處外。

敗:去重生意外合(合法異項共鍵)→窄去重窗或精鍵構。加容散於去重鍵可辨共源+線+作者而容真異之項。

四:排序

按合分(含近衰與升級)重排緩:

合分式:

score = base_priority * recency_weight * escalation_factor

recency_weight = 0.9 ^ hours_since_ingestion
escalation_factor = 1.0 + (resubmission_count * 0.2)

# Cap effective priority at 5
effective_priority = min(5, score)

行為:

  • 排 3 項收 0 時前:3 * 1.0 * 1.0 = 3.0
  • 排 3 項收 8 時前:3 * 0.43 * 1.0 = 1.29(衰下於排 2 項)
  • 排 2 項二次重提:2 * 1.0 * 1.4 = 2.8(升近排 3)

排諸 state=new 項按 effective_priority 降。此排序即摘(步六)呈予 du-dum 者。

得:緩按合分排。新高排項於頂。老項衰。重提項升。無項逾排 5。

敗:若分式生反直覺排(如 1 時前排 2 項排上於新排 3)→調衰率。0.95/時 較和;0.85/時 較激。調以匹投入節奏。

五:執限速與冷卻

以各平寫限與線冷卻阻代理過投:

平限速(由 platform_config 配):

默限
GitHub 評1/20 秒
GitHub 審3/時
Slack 訊1/10 秒
郵回5/時

線冷卻:代理動線後,該線入冷卻 cooldown_minutes(默 60)。冷卻中新項收而不於摘現。

誤退:受任平之 429/限速應→翻該平冷卻。成動後重設默。

# Rate limit check before action
def can_act(platform, thread_id):
    if rate_limit_exceeded(platform):
        return False, "rate limited"
    if thread_in_cooldown(thread_id):
        return False, "thread cooldown active"
    return True, "clear"

# After action
def record_action(platform, thread_id):
    increment_rate_counter(platform)
    set_cooldown(thread_id, cooldown_minutes)

# After rate-limit error
def handle_rate_error(platform):
    current_cooldown = get_platform_cooldown(platform)
    set_platform_cooldown(platform, current_cooldown * 2)

得:代理永不逾平限速。線有執冷卻。限誤觸自退。緩冷卻中積項不失。

敗:即有執而限被觸(鐘偏、並代理)→加安全餘——設限為平實限之 80%。冷卻過激(失時敏線)→僅為高排線減 cooldown_minutes

六:生摘

生 du-dum 動拍之緊要。摘乃交點:du-dum 讀之非原緩。

摘容:

  1. 總待state=new 項計
  2. 頂 N 項:最高排項(默 N=5 由 digest_size
  3. 將期:於 TTL 之 20% 內項
  4. 冷卻中線:活冷卻附餘時
  5. 緩健:總項、合計、期計
# Engagement Digest — 2026-04-08T12:00:00Z

## Pending: 12 items

### Top 5 by Priority
| # | Priority | Source | Summary | Age |
|---|----------|--------|---------|-----|
| 1 | 5.0 | github:pr-218 | Review requested by contributor | 2h |
| 2 | 4.2 | github:issue-99 | Maintainer question (escalated) | 6h |
| 3 | 3.0 | slack:dev | Build failure alert | 1h |
| 4 | 2.8 | github:pr-215 | CI check feedback (3 participants) | 3h |
| 5 | 2.1 | email:inbox | Collaboration inquiry | 8h |

### Expiring Soon
- github:issue-85 — 4h remaining (TTL 48h, ingested 44h ago)

### Cooldowns Active
- pr-210: 22 min remaining
- issue-92: 45 min remaining

### Buffer Health
- Total items: 47 | New: 12 | Merged: 18 | Acted: 11 | Expired: 6

寫摘至已知路(如 buffer_path.digest.md)供 du-dum 動鐘讀。

得:摘 < 50 行,du-dum 一讀解。摘含決動何之信息,非全緩。無待→摘明言。

敗:摘 > 50 行→減 digest_size 或更激總期/冷卻節。摘乃總——若近緩之大→失目。

七:追態轉

du-dum 由摘處項後,更態並維審跡:

態機:

new → acknowledged → acted → cooldown → expired
         ↑                       │
         └───── (re-ingested) ───┘

merged → (終,無轉)
expired → (終,歸檔)

各態轉:

  1. 更緩文件中項 state 字段
  2. 加轉日誌條:{"item_id": "...", "from": "new", "to": "acknowledged", "timestamp": "...", "reason": "du-dum digest pickup"}
  3. 動後設線冷卻(饋回步五)

保留與修剪

  • state=actedstate=expired 逾 7 日之項歸檔(可配)
  • 以移至別文件歸檔(buffer_path.archive.jsonl),非刪
  • state=merged 逾 24 時項修剪(已服去重目)
  • 各週終運修剪,於態更後
# End-of-cycle maintenance
for item in buffer:
    if item.state == "new" and age_hours(item) > item.ttl_hours:
        transition(item, "expired", reason="TTL exceeded")
    if item.state in ("acted", "expired") and age_days(item) > retention_days:
        archive(item)
    if item.state == "merged" and age_hours(item) > 24:
        archive(item)
rewrite_buffer(buffer_path, active_items_only)

得:各態轉記時戳與理。緩文件僅含活項(new、acknowledged、cooldown)。歸項別存供審。緩不無界長。

敗:緩文件重寫時壞(部寫、崩)→由重寫前備恢。必寫臨文件並原子改名——勿原地重寫。歸過大→月壓或輪。

  • 緩模含諸必字段(id、source、timestamp、content_summary、priority、state、dedup_key、thread_id、ttl_hours)
  • 收按項型賦正初排
  • 去重合窗內共 dedup_key 項
  • 線潮察並合附參計
  • 合分用近衰與升級,上限排 5
  • 任寫動前執平限速
  • 線冷卻阻冷卻窗內重投
  • 摘緊(< 50 行)、含頂 N 項、有明空態
  • 態轉記時戳供審
  • 期與動項歸檔,非刪
  • 緩文件跨週無界長

  • 項無 TTL:緩無界長;陳項排擠新。各項需 TTL,修剪步各週當運
  • 忽線冷卻:同線連應於他參覺 spam。冷卻為社範非僅限速技
  • 排無衰:老高排項無限阻新。近衰確緩反當前相關非歷要
  • 去重窗過窄:1 時窗失隔時達之重(如通知後提醒)。始以 24 時僅於合項誤合時窄
  • 緩邏輯耦於單平:始時為適配器式設。各平適配器生標緩項;緩本平無關
  • 略摘步:du-dum 需總非原緩。傳全緩至動鐘失雙鐘架之目——動鐘當讀緊摘速決

  • du-dum — 此緩組之節式;du-dum 決何時觀動,此技決何值動
  • manage-token-budget — 本算;緩設摘尺並限動吞吐時守令牌約
  • circuit-breaker-pattern — 饋緩之平適配器敗處;適配器斷路開時收優雅降
  • coordinate-reasoning — 緩與動系間之群痕信號;緩文件本為群痕物
  • forage-resources — 察饋緩收適配器之新投入源

GitHub 저장소

pjt222/agent-almanac
경로: i18n/wenyan-ultra/skills/manage-engagement-buffer
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

연관 스킬

content-collections

메타

이 스킬은 콘텐츠 콜렉션(Content Collections)을 위한 프로덕션 검증된 설정을 제공합니다. 콘텐츠 콜렉션은 Markdown/MDX 파일을 Zod 검증이 포함된 타입 안전한 데이터 콜렉션으로 변환해주는 TypeScript 최우선 도구입니다. 블로그, 문서 사이트 또는 콘텐츠 중심의 Vite + React 애플리케이션을 구축할 때 타입 안전성과 자동 콘텐츠 검증을 보장하기 위해 사용하세요. Vite 플러그인 구성과 MDX 컴파일부터 배포 최적화 및 스키마 검증에 이르기까지 모든 것을 다룹니다.

스킬 보기

polymarket

메타

이 스킬은 개발자들이 Polymarket 예측 시장 플랫폼을 활용한 애플리케이션을 구축할 수 있도록 지원하며, 거래 및 시장 데이터를 위한 API 통합 기능을 포함합니다. 또한 WebSocket을 통한 실시간 데이터 스트리밍을 제공하여 실시간 거래와 시장 활동을 모니터링할 수 있습니다. 이를 통해 거래 전략을 구현하거나 실시간 시장 업데이트를 처리하는 도구를 생성하는 데 활용할 수 있습니다.

스킬 보기

creating-opencode-plugins

메타

이 스킬은 개발자들이 명령어, 파일, LSP 작업 등 25개 이상의 이벤트 유형에 연결되는 OpenCode 플러그인을 만들 수 있도록 돕습니다. JavaScript/TypeScript 모듈을 위한 플러그인 구조, 이벤트 API 명세, 구현 패턴을 제공합니다. OpenCode AI 어시스턴트의 라이프사이클을 사용자 정의 이벤트 기반 로직으로 가로채거나, 모니터링하거나, 확장해야 할 때 사용하세요.

스킬 보기

sglang

메타

SGLang은 RadixAttention 프리픽스 캐싱을 활용하여 JSON, 정규식, 에이전트 워크플로우를 위한 고속 구조화 생성에 특화된 고성능 LLM 서빙 프레임워크입니다. 특히 반복되는 프리픽스가 있는 작업에서 상당히 빠른 추론 속도를 제공하여 복잡한 구조화 출력 및 다중 턴 대화에 이상적입니다. 제약 디코딩이 필요하거나 광범위한 프리픽스 공유가 있는 애플리케이션을 구축할 때는 vLLM과 같은 대안보다 SGLang을 선택하십시오.

스킬 보기