blog-write-sample · git:20260601.5c6414f · 2026-06-01 · sha256 8fa8dbcd71441ce7
blog-write-sample git:20260601.5c6414fA
Immutable. This exact content is served forever at /api/v1/blob/8fa8dbcd71441ce7.
--- name: blog-write-sample description: Sample skill — external delegation template. Copy this to ~/.geny/skills/ and adapt for your own external API delegation tools. allowed_tools: - blog_agent_delegate - blog_agent_status - blog_agent_cancel - blog_agent_list_posts - blog_agent_get_post model_override: claude-sonnet-4-6 execution_mode: inline category: example effort: medium examples: - "Write a sample blog post about LangGraph" - "Show progress on my last delegated task" --- # Blog Write — Sample / Template > **이 파일은 학습용 샘플입니다.** 실제로 사용하려면: > 1. SkillsTab → CUSTOM 샘플 섹션 → "Copy to my skills" 버튼으로 `~/.geny/skills/` 로 복사 > 2. 복사된 파일의 `name`을 자기 슬러그로 바꾸기 (예: `my-blog-write`) > 3. `allowed_tools` 의 도구 이름과 본문의 호출 예시를 자기 시나리오에 맞게 수정 > 4. SkillsTab 상단에서 `user_skills_enabled` 토글이 ON 인지 확인 — Off면 user-skills 자체가 로드되지 않습니다 이 샘플은 [`blog_write`](../bundled/blog_write/SKILL.md) (Geny-bundled) 와 동일한 동작을 하지만, **외부 API 위임 패턴을 직접 따라 쓰기 위한 주석이 풍부한 버전**입니다. --- ## 핵심 패턴 — **fire-and-poll 위임** 이 패턴은 다음 3가지 조건을 만족하는 외부 시스템에 적합합니다: 1. **시간이 걸리는 작업** (5초 이상): 답이 즉시 안 옴. 2. **사용자가 결과를 기다림**: 사용자는 알림이 필요. 3. **외부 시스템이 SSE / webhook 등으로 완료를 알릴 수 있음**: Geny의 inbox 로 결과 도착 가능. 블로그 위임은 위 3가지를 다 만족. 만약 본인이 만들 도구가 동기적으로 답하면(예: 단순 GET API), 굳이 이 패턴을 쓸 필요 없고 그냥 직접 호출 → paraphrase 하면 됩니다. --- ## A. 새 작업 위임 ``` <your_delegate_tool>( task="<외부 AI 에게 줄 지시문 — 자세히>", task_summary="<사용자에게 들려줄 한 줄, 5단어 이내>" ) ``` 위임 후: - 사용자에게는 **"맡겼어. 잠깐만 기다려."** 정도로만. - **당신의 turn 은 여기서 종료**. 백그라운드 진행. - 끝나면 `[EXTERNAL_TASK_RESULT]` 메시지가 새 turn 에서 도착 → 그때 결과를 paraphrase. ## B. 진행 상황 확인 사용자가 묻기 전에 status 를 폴링하지 말 것. **사용자가 물을 때만** 호출하고, JSON / task_id 를 노출하지 말고 자연어로: ``` <your_status_tool>(task_id="...") → 결과의 progress_hint, elapsed_s, last_event_age_s 를 보고 1-2 문장으로 답 ``` ## C. 취소 사용자가 명시적으로 "취소", "그만" 등을 표현하면: ``` <your_cancel_tool>(task_id="...") ``` ## D. 참고 조회 읽기 전용 lookup 도구 (이 sample 의 `list_posts` / `get_post`)는 사용자가 **명시적으로** 요청할 때만 호출. 위임의 사전 조사로 자동 호출하지 말 것 — 지연만 늘어남. --- ## 자신만의 외부 위임 skill 만들 때 체크리스트 - [ ] `allowed_tools` 에 외부 시스템의 모든 도구 이름이 들어갔는가? - [ ] `task_summary` 길이 제한이 description 에 명시되어 있나? - [ ] turn 종료 시점이 명확한가? (delegate 직후 종료, 결과 도착 시 paraphrase) - [ ] 사용자에게 내부 식별자 (task_id, UUID 등) 노출 금지를 명시했나? - [ ] 동시 위임 상한 / 중복 호출 금지가 description 에 있나? ## 추가 자료 - [docs/custom_tools.md](../../../docs/custom_tools.md) — 외부 API 자체를 도구로 등록하는 방법 (HTTP backend) - [docs/skills.md](../../../docs/skills.md) — SKILL.md 형식과 LLM 노출 메커니즘 - 실제 동작 참고: [blog_write SKILL.md](../bundled/blog_write/SKILL.md)