du-dum
Acerca de
La habilidad du-dum desacopla la observación de la acción en los bucles del agente mediante un sistema de dos relojes: un reloj rápido recopila datos en un resumen, mientras que un reloj lento y rentable solo activa el procesamiento de LLM cuando existen datos procesables. Está diseñada para escenarios donde se necesita monitoreo continuo, pero las llamadas a LLM/API son costosas y deben minimizarse. Esta arquitectura elimina los costos de ciclos inactivos haciendo que el reloj de acción salga inmediatamente cuando no se encuentran tareas pendientes.
Instalación rápida
Claude Code
Recomendadonpx 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-dumCopia y pega este comando en Claude Code para instalar esta habilidad
Documentación
咚咚:先積後行之法
以二鐘分觀於行。疾鐘(析)廉收數而書簡牘,緩鐘(行)讀牘而定行否。牘告無待,則行鐘即出——閒時無費也。
名取心跳之韻:咚、咚。首跳(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— 臭跡信之式;牘乃臭跡(藉環境物之間接協調)
Repositorio GitHub
Habilidades relacionadas
content-collections
MetaEsta habilidad proporciona una configuración probada en producción para Content Collections, una herramienta centrada en TypeScript que transforma archivos Markdown/MDX en colecciones de datos con tipado seguro mediante validación Zod. Úsala al construir blogs, sitios de documentación o aplicaciones Vite + React con mucho contenido para garantizar seguridad de tipos y validación automática de contenido. Abarca todo, desde la configuración del plugin de Vite y compilación MDX hasta la optimización de despliegue y validación de esquemas.
polymarket
MetaEsta habilidad permite a los desarrolladores crear aplicaciones con la plataforma de mercados de predicción Polymarket, incluyendo la integración de API para operaciones y datos de mercado. También proporciona transmisión de datos en tiempo real a través de WebSocket para monitorear operaciones en vivo y actividad del mercado. Úsela para implementar estrategias de trading o crear herramientas que procesen actualizaciones de mercado en tiempo real.
creating-opencode-plugins
MetaEsta habilidad ayuda a los desarrolladores a crear complementos de OpenCode que se conectan a más de 25 tipos de eventos, como comandos, archivos y operaciones LSP. Proporciona la estructura del complemento, las especificaciones de la API de eventos y los patrones de implementación para módulos en JavaScript/TypeScript. Úsala cuando necesites interceptar, monitorear o extender el ciclo de vida del asistente de IA de OpenCode con lógica personalizada basada en eventos.
sglang
MetaSGLang es un framework de alto rendimiento para el servicio de LLM que se especializa en generación rápida y estructurada para JSON, expresiones regulares y flujos de trabajo de agentes utilizando su caché de prefijos RadixAttention. Ofrece una inferencia significativamente más rápida, especialmente para tareas con prefijos repetidos, lo que lo hace ideal para salidas complejas y estructuradas, y conversaciones multiturno. Elige SGLang sobre alternativas como vLLM cuando necesites decodificación restringida o estés construyendo aplicaciones con uso extensivo de prefijos compartidos.
