【要約】Claude Code SkillでGoogle Calendarの空き時間候補を探す [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
ユーザーがAIエージェントに日程調整を依頼する際、複雑な境界条件の処理が困難であるという課題がある。LLMの推論のみでは、以下の問題に直面する:
- ・前後15分の移動バッファなどの細かい条件の無視
- ・タイムゾーンの混同や稼働時間外の候補提示
- ・LLMが「なんとなく」で判断することによる、予定の重複や誤った作成
// Approach
開発者がClaude Codeの精度を高めるため、LLMに手順の制御を、計算にはPythonを割り当てる役割分担を採用した。具体的な構成は以下の通りである:
- ・Claude Code Skill: SKILL.mdにより、条件抽出と手順の実行を制御
- ・Google Calendar API: FreeBusy APIを用いて、予定の埋まっている時間帯を取得
- ・hmscalc: Pythonライブラリを用い、バッファや営業日を考慮した決定論的な計算を実行
- ・Pythonスクリプト: 取得したデータを整形し、計算結果をJSON形式で出力
// Result
この手法を導入することで、ユーザーは日程調整における精度の低さと、勝手な予定作成のリスクを排除できた。得られる成果は以下の通りである:
- ・バッファや刻み時間を厳密に守った、信頼性の高い候補提示
- ・「候補提示」と「予定作成」の分離による、人間による最終確認の担保
- ・複雑な条件(祝日、営業時間の制約)を再利用可能なSkillとして定義
Senior Engineer Insight
> LLMの非決定性を、外部ツールによる決定論的なロジックで封じ込める設計は、実運用において極めて重要だ。プロンプトのみに頼らず、エージェントに「道具」を持たせ、信頼性を担保している。ただし、Bash権限の付与にはセキュリティ上の配慮が必要であり、allowed-toolsの最小権限原則を徹底すべきである。