du-dum
정보
du-dum 스킬은 에이전트 루프에서 관찰과 행동을 분리하기 위해 이중 클록 시스템을 사용합니다: 빠른 클록이 데이터를 수집하여 요약본을 만들고, 느리면서도 비용 효율적인 클록은 실행 가능한 데이터가 있을 때만 LLM 처리를 트리거합니다. 이는 지속적인 모니터링이 필요하지만 LLM/API 호출 비용이 높아 최소화해야 하는 시나리오를 위해 설계되었습니다. 이 아키텍처는 행동 클록이 대기 중인 작업이 없을 경우 즉시 종료되도록 함으로써 유휴 사이클 비용을 제거합니다.
빠른 설치
Claude Code
추천npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/du-dumClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
咚咚:先積後行之法
以二鐘分觀於行。疾鐘(析)廉收數而書簡牘,緩鐘(行)讀牘而定行否。牘告無待,則行鐘即出——閒時無費也。
名取心跳之韻:咚、咚。首跳(du)觀之,次跳(dum)行之。多時唯首跳而已。
用時
- 築自主之體,須常觀而罕可行者
- 現有心跳之環,每拍皆呼 LLM,雖無變化
- 觀廉(API 讀、解文件、掃日誌)而行昂(LLM 呼、寫操作、通知)
- 需解耦之敗:若觀敗,舊牘仍可供行鐘
- 設 cron 之體,析行分為各職
入
- 必要:疾鐘所觀之源(API、文件、日誌、訂閱)
- 必要:牘示有待時緩鐘所行之事
- 可選:疾鐘之隔(默每四時)
- 可選:緩鐘之隔(默日一)
- 可選:日費之上限(以驗鐘之設)
- 可選:牘之式(markdown、JSON、YAML)
法
第一步:識二鐘
分所有工於觀(廉、頻)與行(昂、罕)。
- 列當前環或擬流中諸操作
- 各類為觀(讀數、生摘)或行(呼 LLM、寫出、送訊)
- 驗其分:觀宜零費或近零;行乃昂者
- 定頻:疾鐘足以捕事;緩鐘足以應時
| 鐘 | 費之概 | 頻 | 例 |
|---|---|---|---|
| 疾(析) | 廉:API 讀、解文件、無 LLM | 日 4-6 次 | 掃 GitHub 通知、解 RSS、讀日誌 |
| 緩(行) | 昂:LLM 推斷、寫操作 | 日 1 次 | 擬應、更面、送警 |
得: 二列之分,各操作歸一鐘。疾鐘無 LLM 呼,緩鐘無採數。
敗則: 若一操作兼讀與 LLM(如「摘新事」),分之:疾鐘收原事入牘,緩鐘摘之。牘者,界也。
第二步:設牘之式
牘者,通二鐘之低帶訊也。宜簡、可讀於人、可解於機。
- 定牘之路與式(markdown 便於人查)
- 頭含時戳與源之元數
- 定「待」節,列須行之事
- 定「狀」節,記當前狀(供面板或日誌)
- 明示空態(如
pending: none或空節)
牘構之例:
# Digest — 2026-03-22T06:30:00Z
## Pending
- PR #42 needs review response (opened 2h ago, author requested feedback)
- Issue #99 has new comment from maintainer (action: reply)
## Status
- Last analyzed: 2026-03-22T06:30:00Z
- Sources checked: github-notifications, rss-feed, error-log
- Items scanned: 14
- Items pending: 2
無待之時:
# Digest — 2026-03-22T06:30:00Z
## Pending
(none)
## Status
- Last analyzed: 2026-03-22T06:30:00Z
- Sources checked: github-notifications, rss-feed, error-log
- Items scanned: 8
- Items pending: 0
得: 一牘模板,待空二態明。行鐘察一字或一節即可定行否。
敗則: 若牘過大(逾五十行),疾鐘含原數過多。移其詳至別文,牘為摘與指也。
第三步:造疾鐘(析)
建隨疾程而行之觀本。
- 每源一本(令敗獨立)
- 各本讀其源,取其事,增或改牘
- 用文鎖或原子寫以防殘牘
- 記析之運行(時戳、所得、誤)於別日誌
- 勿呼 LLM,勿作更牘以外之寫
# Pseudocode: analyze-notifications.sh
fetch_notifications()
filter_actionable(notifications)
format_as_digest_entries(filtered)
atomic_write(digest_path, entries)
log("analyzed {count} notifications, {pending} actionable")
cron 程例:
# Fast clock: analyze every 4 hours
30 */4 * * * /path/to/analyze-notifications.sh >> /var/log/analysis.log 2>&1
0 6 * * * /path/to/analyze-pr-status.sh >> /var/log/analysis.log 2>&1
得: 一或數析本,各生或更牘。本獨立而運——一敗,諸本之節猶更。
敗則: 若源暫不可達,本宜記誤而留舊牘。勿於源敗時清牘——陳數勝於無數,以供行鐘。
第四步:造緩鐘(行)
建讀牘定行之本。
- 讀牘(每行循之第零步)
- 察待節:若空或「none」,即出並記之
- 若有待,呼昂操(LLM、擬訊等)
- 行後,清或存已處之牘條
- 記行之運行(所處之數、費、時)
# Pseudocode: heartbeat.sh (the slow clock)
digest = read_file(digest_path)
if digest.pending is empty:
log("heartbeat: nothing pending, exiting")
exit(0)
# Only reaches here if work exists
response = call_llm(digest.pending, system_prompt)
execute_actions(response)
archive_digest(digest_path)
log("heartbeat: processed {count} items, cost: {tokens} tokens")
cron 程例:
# Slow clock: act once per day at 7am
0 7 * * * /path/to/heartbeat.sh >> /var/log/heartbeat.log 2>&1
得: 閒循時,行本一秒內出(唯讀一文察空)。活循時,處諸待事並清牘。
敗則: 若 LLM 呼敗,勿清牘。待事留於下循。可於牘設重試計以防永敗之無限試。
第五步:設閒察
費省在閒察——行鐘須以最小耗明辨「無事」與「有事」。
- 定閒察為一速操作(讀文+對字)
- 驗閒徑無外呼(無 API、無 LLM、無網)
- 量閒徑之時——宜不足一秒
- 閒循與活循異記,以利監察
# Minimal idle check
if grep -q "^(none)$" "$DIGEST_PATH" || grep -q "pending: 0" "$DIGEST_PATH"; then
echo "$(date -u +%FT%TZ) heartbeat: idle" >> "$LOG_PATH"
exit 0
fi
得: 閒徑唯一讀一對。無網呼,無本身以外之進程開。
敗則: 若閒察不穩(誤肯致漏工、誤否致無益 LLM 呼),簡化牘式。頭置一布爾(has_pending: true/false)最可靠。
第六步:驗費之模
算預期之費以確二鐘之節省。
- 算疾鐘日運:
fast_runs = 24 / fast_interval_hours - 算緩鐘日運:通常一
- 算觀費:
fast_runs * cost_per_analysis_run(無 LLM 則近零) - 算行費:
active_days_fraction * cost_per_action_run - 算閒費:
(1 - active_days_fraction) * cost_per_idle_check(近零) - 與單環原費相較
費較之例:
| 架構 | 日費(活) | 日費(閒) | 月費(八成閒) |
|---|---|---|---|
| 單環(每半時一 LLM) | $13.74/37h | $13.74/37h | ~$400 |
| 咚咚(六析一行) | $0.30 | $0.00 | ~$6 |
得: 費模示咚咚架構於閒日至少十倍廉於原。
敗則: 若費模未示顯著節省,或為:(甲)疾鐘過頻;(乙)疾鐘含隱 LLM 呼;(丙)系鮮閒。咚咚益於高閒比之系。若常活,簡輪詢或更宜。
驗
- 疾緩二鐘清分,疾徑無 LLM 呼
- 牘式有明空態之標
- 閒察於一秒內出,無外呼
- 疾鐘敗不壞牘(陳數得存)
- 緩鐘敗不清待事(下循再試)
- 費模示閒日至少十倍廉於單環
- 二鐘皆記運行,供監察查錯
- 牘不無界增長(處後舊條存或清)
陷
- 牘無界長:若疾鐘增而緩鐘永不清,牘漸成長日誌。行循畢,必清或存所處之條
- 疾鐘過疾:事日一現而五分一析,浪 API 額與磁 I/O。疾鐘頻宜合源之實事率
- 緩鐘過緩:若行窗日一而事需同時應,緩鐘過緩。增頻或加急事捷徑以即行
- LLM 呼於疾鐘:若疾鐘含 LLM 推斷,費模盡破。審疾鐘每本以確無 LLM。若需摘,遞於緩鐘
- 疾鐘本相依:若一析本賴另一之出,首敗則連敗。疾鐘本宜獨立——各讀其源,各寫其節
- 閒無記:若閒循無日誌,不可辨「運而閒」與「崩而不運」。必記閒循,哪怕一時戳
- 析敗即清牘:若源斷,勿書空牘。緩鐘見「無待」而略實有之工。敗時存舊牘
參
manage-token-budget— 費控之框,咚咚使之可行;咚咚為架構,token budget 為計之層circuit-breaker-pattern— 處敗(工具破);咚咚處常(無事)。並用:咚咚司閒察,斷路司敗復observe— 疾鐘之觀法;咚咚結其於牘何時可行forage-resources— 策略探層;咚咚乃其所運行之節奏coordinate-reasoning— 臭跡信之式;牘乃臭跡(藉環境物之間接協調)
GitHub 저장소
연관 스킬
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을 선택하십시오.
