karaage0703/xs-spontaneous-talk
| AIアシスタントが自発的に話しかけてくるスキル。 cronで定期発動し、確率判定で発話するか決める。 チャンネルの会話履歴・日記・メモリをもとに話題を選ぶ。 「話しかけて」「spontaneous-talk」で手動発動も可能。
npx skills add https://github.com/karaage0703/ai-assistant-workspace --skill xs-spontaneous-talk
AIアシスタントがユーザーに自発的に話しかける。
xangi-cmd discord_edit --channel <チャンネルID> --message-id <メッセージID> --content "発話内容のみ" で即編集する設定は check_speak.sh 内の変数で管理。環境に合わせて編集してください。
SPEAK_PROBABILITY: 20 # 発話確率(%)。cron 30分おきなら平均2.5時間に1回
QUIET_START: 23:00 # 静かにする開始時刻("none"で無効)
QUIET_END: 08:00 # 静かにする終了時刻("none"で無効)
MIN_INTERVAL_MINUTES: 60 # 前回発話からの最低間隔(分)
最初に必ず date で現在時刻を確認する。 前の流れや思い込みで判断しないこと。
date '+%Y-%m-%d %H:%M %Z'
> 時刻確認をサボると、深夜帯なのに話しかけてしまう事故が起きる。必ず date コマンドで確認すること。
スクリプトを実行して判定する。判定結果以外は一切出力しないこと。
bash [SKILL_DIR]/check_speak.sh [WORKSPACE]/memory/spontaneous-talk-state.json
NO_SPEAK が返ったら → 即座に終了。何も出力しない。ツール呼び出しもしない。SPEAK が返ったら → Step 2 に進む発話すると決まったら、以下を並行で収集:
date '+%Y-%m-%d %A %H:%M' で確認(曜日を間違えないこと!)[WORKSPACE]/memory/YYYYMMDD.md を読む以下のカテゴリからその時に自然な話題を1つ選ぶ:
| カテゴリ | 内容 | 例 |
|----------|------|-----|
| 会話の続き | チャンネル履歴の流れを拾って続ける | 「そういえばさっきの〇〇、気になって調べたんだけど…」 |
| 気づき・発見 | 日記やワークスペースから面白いネタ | 「今日のcommit見てたんだけど、あの機能いい感じだね」 |
| 雑学・小ネタ | ユーザーの興味に関連した豆知識 | 「知ってた?Pythonの〇〇って実は…」 |
| 気遣い | 時間帯・状況に応じた声かけ | 「お疲れ様〜今日も色々やってたね」 |
| 共有の話題 | ユーザーとの共通の話題 | 「最近あの話の続きどうなった?」 |
選択基準:
現在のチャンネルにそのまま発言する。
トーンガイド:
良い例:
お、今日のブログ記事よかったね。あの話、反応どうだった?
さっきの話の続きだけど、あれってどうなった?
悪い例(NG):
こんにちは!今日も一日頑張りましょう!何かお手伝いできることはありますか?
→ ロボット感満載。こういうのダメ
あなたの著書は素晴らしい本ですね!
→ 唐突なヨイショ。気持ち悪い
発話後、状態ファイルを更新:
// [WORKSPACE]/memory/spontaneous-talk-state.json
{
"lastSpoke": "2026-02-09T15:30:00+09:00",
"lastTopic": "会話の続き",
"speakCount": 42
}
xangiの場合、xangi-cmd で登録できます。
xangi-cmd schedule_add --input "cron */30 * * * * spontaneous-talk を実行" --channel <チャンネルID>
管理:
xangi-cmd schedule_list # 一覧表示
xangi-cmd schedule_toggle --id <ID> # 有効/無効切り替え
xangi-cmd schedule_remove --id <ID> # 削除
date コマンドで現在時刻を確認したか(思い込みで判断していないか)check_speak.sh を実行したかNO_SPEAK の場合、何も出力せず即終了しているか(ツール呼び出し・テキスト出力一切なし)SPEAK の場合、発話内容のみ出力しているか(判定過程や内部状態を含めていないか)xangi-cmd discord_edit で修正する「話しかけて」「spontaneous-talk」で確率判定なしに即座に発話する。
Take karaage0703/xs-spontaneous-talk from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.