AI4PKM helper for orchestrator configuration, worker management, and CLI workflow integration.
This skill provides guidance for configuring and managing AI4PKM orchestrator and workers. It helps users set up agents, configure multi-worker execution, and manage CLI workflows.
flowchart BT
subgraph Gobi["Gobi Desktop"]
subgraph Storage["Storage"]
FS[File System]
end
subgraph Interface["Interface"]
OBS[Obsidian]
CC[Claude Code]
end
subgraph Core["Core"]
ORC[Orchestrator]
CLI[AI4PKM CLI]
end
end
Storage --> Interface --> Core
3-tier model:
Claude should automatically load this skill when:
"μ컀 μ€μ " / "Worker config" β Worker Configuration Guide
"μμ΄μ νΈ μΆκ°" / "Add agent" β Add New Agent Node
"ν΄λ¬ μ€μ " / "Poller config" β Poller Configuration
"μ€μ 보기" β Show Current Config (ai4pkm --show-config)
"μμ΄μ νΈ λͺ©λ‘" β List Agents (ai4pkm --list-agents)
"Orchestrator μ€μ " β Orchestrator Setup Module
"νμ€ν¬ μΆκ°" β Task Management Module
Purpose: Configure orchestrator.yaml for event-driven automation
Key Concepts:
Setup Process:
Prompt: AI4PKM - Orchestrator Setup.md
Example Configuration (current format):
version: "1.0"
orchestrator:
prompts_dir: _Settings_/Prompts
tasks_dir: _Settings_/Tasks
logs_dir: _Settings_/Logs
skills_dir: _Settings_/Skills
max_concurrent: 3
poll_interval: 1
defaults:
executor: claude_code
timeout_minutes: 30
max_parallel: 3
task_create: true
nodes:
- type: agent
name: Enrich Ingested Content (EIC)
input_path: Ingest/Clippings
output_path: AI/Articles
executor: claude_code
- type: agent
name: Daily Driver Workflow (DDW)
cron: "15,45 * * * *"
output_path: Journal
completion_status: IGNORE
agent_params:
calendars:
- Default
- Work
past_hours: 24
future_days: 3
goals_file: _Settings_/Goals & Principles.md
roundup_lookback_days: 7
pollers:
limitless:
enabled: true
target_dir: "Ingest/Limitless"
poll_interval: 300
| νλ | νμ | μ€λͺ | μμ |
|---|---|---|---|
type |
β | λ Έλ νμ | agent |
name |
β | Agent μ΄λ¦ | Enrich Ingested Content (EIC) |
prompt |
ν둬ννΈ νμΌ μ°Έμ‘° (ABBR) | EIC |
|
input_path |
μ λ ₯ λλ ν 리 (νμΌ νΈλ¦¬κ±°) | Ingest/Clippings |
|
output_path |
μΆλ ₯ λλ ν 리 | AI/Articles |
|
executor |
μ€ν μμ§ | claude_code, codex_cli, gemini_cli |
|
cron |
μ€μΌμ€ μ€ν (cron ννμ) | "15,45 * * * *" |
|
enabled |
νμ±ν μ¬λΆ | true / false |
|
timeout_minutes |
νμμμ | 30 |
|
completion_status |
μλ£ ν μν | DONE, IGNORE |
|
agent_params |
Agent-specific νλΌλ―Έν° | (object) | |
workers |
Multi-Worker μ€μ | (list) |
| Type | Trigger | Example |
|---|---|---|
| File-triggered | New/updated file in input_path | EIC, GDR |
| Cron-scheduled | Time-based (cron expression) | DDW |
Multi-worker μ€μ μ κ° workerμ μ¬μ© κ°λ₯ν νλ:
| νλ | μ€λͺ | μμ |
|---|---|---|
executor |
μ€ν μμ§ | claude_code, gemini_cli |
label |
Worker μλ³ λΌλ²¨ | Claude, Gemini |
output_path |
Workerλ³ μΆλ ₯ κ²½λ‘ | AI/Summary/Claude |
agent_params |
Workerλ³ νλΌλ―Έν° | (object) |
Multi-Worker μ€μ μμ (μ¬λ¬ AI λͺ¨λΈ λΉκ΅/νκ°):
- type: agent
name: Article Summary Comparison
prompt: EIC
input_path: Ingest/Articles
workers:
- executor: gemini_cli
label: Gemini
output_path: AI/Summary/Gemini
- executor: claude_code
label: Claude
output_path: AI/Summary/Claude
- executor: codex_cli
label: Codex
output_path: AI/Summary/Codex
Pollers sync external data sources to your vault.
| Poller | μ€λͺ | μ£Όμ μ€μ |
|---|---|---|
limitless |
Limitless λΌμ΄νλ‘κ·Έ λκΈ°ν | target_dir, poll_interval |
apple_photos |
Apple Photos λκΈ°ν | target_dir, albums |
apple_notes |
Apple Notes λκΈ°ν | target_dir, folders |
Poller μ€μ μμ:
pollers:
limitless:
enabled: true
target_dir: "Ingest/Limitless"
poll_interval: 300
apple_photos:
enabled: false
target_dir: "Ingest/Photos"
albums:
- "Screenshots"
- "PKM"
apple_notes:
enabled: false
target_dir: "Ingest/Notes"
folders:
- "Quick Notes"
| Command | μ€λͺ |
|---|---|
ai4pkm --show-config |
νμ¬ μ€μ 보기 |
ai4pkm --list-agents |
μμ΄μ νΈ λͺ©λ‘ |
ai4pkm --run <agent> |
νΉμ μμ΄μ νΈ μ€ν |
ai4pkm --enable <agent> |
μμ΄μ νΈ νμ±ν |
ai4pkm --disable <agent> |
μμ΄μ νΈ λΉνμ±ν |
ai4pkm --status |
μ€ν μν νμΈ |
ai4pkm --logs |
λ‘κ·Έ νμΈ |
orchestrator.yamlnodes:: - type: agent
name: Your New Agent (ABBR)
input_path: Ingest/YourFolder
output_path: AI/YourOutput
executor: claude_code
_Settings_/Prompts/ - type: agent
name: Some Agent
enabled: false # Add this line to disable
executor with workers listPurpose: Add, update, and track tasks in AI4PKM system
Operations:
Prompt: AI4PKM - Add Task.md
Task Categories:
tts_model="gpt-4o-mini-tts" for natural pronunciationmin_listen_duration=8)vad_aggressiveness=0 for permissive voice detectionUser: μμ΄μ νΈ μΆκ°ν΄μ€
Agent: μ΄λ€ μμ΄μ νΈλ₯Ό μΆκ°ν κΉμ?
- νμΌ κΈ°λ° (input_path νμ)
- μ€μΌμ€ κΈ°λ° (cron νμ)
User: νμΌ κΈ°λ°, Ingest/Articles ν΄λ κ°μν΄μ AI/Summariesμ μμ½ μ μ₯
Agent: λ€μ μ€μ μΌλ‘ μΆκ°ν κ²μ:
- name: Article Summarizer
- input_path: Ingest/Articles
- output_path: AI/Summaries
- executor: claude_code
ν둬ννΈλ μ΄λ€ κ±Έ μ¬μ©ν κΉμ?
User: μ¬λ¬ λͺ¨λΈλ‘ λΉκ΅νκ³ μΆμ΄
Agent: Multi-worker μ€μ μ λμλ릴κ²μ.
μ΄λ€ λͺ¨λΈλ€μ λΉκ΅ν κΉμ?
- claude_code (Claude)
- gemini_cli (Gemini)
- codex_cli (Codex)
User: Claudeλ Gemini
Agent: κ° λͺ¨λΈ κ²°κ³Όλ₯Ό μ΄λμ μ μ₯ν κΉμ?
μ: AI/Compare/Claude, AI/Compare/Gemini
Each prompt is independent but connected:
_Settings_/Skills/ai4pkm-helper/
βββ SKILL.md # This file
βββ modules/ # (Future: detailed module guides)
βββ orchestrator.md
βββ tasks.md
_Settings_/Prompts/
βββ AI4PKM - Orchestrator Setup.md
βββ AI4PKM - Add Task.md
βββ ...
orchestrator.yaml # Main config file (vault root)
orchestrator.yamlai4pkm --help[[AI/Analysis/2025-12-10 AI4PKM Onboarding Agent Design - Claude Code]]"μμ΄μ νΈκ° μ€ν μ λΌμ"
β ai4pkm --statusλ‘ μν νμΈ ν, λ‘κ·Έ νμΈ: ai4pkm --logs
"ν΄λ¬κ° λμ μ ν΄μ"
β pollers: μΉμ
μμ enabled: true νμΈ, poll_interval κ° νμΈ
"Multi-worker κ²°κ³Όκ° μμ¬μ"
β κ° workerμ λ€λ₯Έ output_path μ§μ νλμ§ νμΈ
"cronμ΄ νΈλ¦¬κ±° μ λΌμ"
β cron ννμ λ¬Έλ² νμΈ, ai4pkm --statusλ‘ λ€μ μ€ν μκ° νμΈ
"μ€μ λ³κ²½μ΄ λ°μ μ λΌμ"
β orchestrator μ¬μμ νμ: ai4pkm --restart