AIによる開発とワークフローの自動化 - 蛇太郎

汎用蛇太郎は、利用者の自由な発想でカスタマイズできる、ちょっと便利で、ちょっとかっこいいを目指す、Windowsの手元のPC専用のアプリである。声と文字で依頼し、見た目もパネルもボタンも、利用者の発想で足せる。AIによる開発とワークフローの自動化 - 蛇太郎は、このページのテーマである。サイトの検証と更新は、蛇太郎の機能の一つである。このページは、その検証と更新の対象でもある。

ここに並んでいるのは、いま動いている機能である。サイトの検証と更新は、そのうちの一つにすぎない。この公開ページは、その機能が自由パスの下を測り、題と冒頭を直すときの対象でもある。

置き場所

  • Windows の手元の PC で動く。起動は start_generic_jarvis.bat である。このバッチは Python もライブラリも入れない。
  • 画面は、その PC のブラウザで開く。一つのサイト専用のプログラムではない。
  • 表示名と読みは、利用者が決める。読みが、声で呼ばれる名前である。両方空でも、画面は落ちない。

パスワードと鍵

  • 最初に開いたとき、パスワードを2回入れる。4文字以上、200文字まで。そのあと起動するたびに、プロセスが終わるまで1回だけ聞く。
  • 通るまではロック画面だけが出る。パスワードを忘れたときは、アプリを終了し、その PC の jarvis-generic にあるロック用ファイルだけを消す。AI の鍵と設定は残る。画面からパスワードを消す入口はない。
  • 思考、読み上げ、文字起こし、Google、Gmail、YouTube、GMO、サイト更新の鍵は、その Windows 利用者だけが開ける場所に暗号化して置く。プログラムのフォルダにも、このページにも書かない。
  • 伏字のまま保存した鍵は、今入っている鍵を残す。空の秘密も同じである。

画面

  • 左が YOU、中央がスキン、右と上がパネル、下が依頼欄である。依頼欄は文字を書いてエンターで渡す。
  • 初期の中央は Heart Engine である。心臓、手、都市、放射線が出る。声が大きいと鼓動が大きくなり、読み上げ中は青白くなる。
  • マイクの波形は、利用者のマイクだけである。スピーカーへ出ている音の帯域は、中央の演出に使う。依頼の文字起こしには使わない。
  • スピーカーへ出した音がマイクに戻った分は、入力から引く。蛇太郎自身の声では、読み上げを止めない。
  • YouTube を流すと、画面にはオーロラが出る。スキンを替えても、このオーロラは残る。

声

カスケード

  • 声を文字にし、選んだ思考で考え、選んだ声で読む。名前を呼ぶと会話が始まる。
  • 話し終わってから 45 秒、こちらが黙っていると手が閉じる。返事を待っているあいだは、その無音では切らない。返事があると 45 秒はやり直しになる。
  • 読み上げの声は、OpenAI、Gemini、xAI から選ぶ。xAI の初期の声は carina である。

ストリーミング

  • 左の「話す」を押すと手が開き、会話が続く。「停止」になるまでである。閉じた手は、こちらの声を受け付けない。
  • 話し終えたかの区切りは、選んだ事業者のサーバ側が持つ。xAI、OpenAI、Gemini を選べる。OpenAI の声は marin、Gemini の声は Kore である。
  • xAI は、「話す」から「停止」までの秒でクレジットを使う。OpenAI と Gemini は、送った音声と返ってきた音声の分を使う。
  • ストリーミング中の指示に使う名前は、読みだけである。このあいだに聞いた言葉と返事は、下の記録へ残さない。

手と、止める言葉

  • 手は、読み上げているあいだ開く。カスケードの会話中は、話し終わってから 45 秒開いている。「話す」のあいだは開いたままである。
  • 「中止」「中断」「やめて」「黙って」「読まないで」「もういい」「報告中止」で、読み上げを止める。このとき、すでに開いている 45 秒の手は閉じない。止め言葉が、新しい 45 秒を始めることもない。
  • 「止めて」も読み上げを止める。ただし YouTube、映像、画面の話なら、読み上げは止めず、映像の方を止める。
  • 調べる直前には「うん、調べてみるね。」と読む。
  • 声の方式の初期値はカスケードである。

思考と調べもの

  • 思考、読み上げ、文字起こしは、別々に選ぶ。事業者は OpenAI、Anthropic、Gemini、xAI と、OpenAI 互換で自分の接続先を指定する方式である。音声の無い事業者は音声の一覧に出さない。文字起こしの無い事業者は、文字起こしの一覧に出さない。
  • 初期の思考は xAI の grok-4.7、初期の文字起こしは OpenAI の gpt-4o-transcribe である。
  • 画面の操作として解釈できる依頼は、先にその操作で返す。思考は呼ばない。
  • 説明、意見、意味、真偽を尋ねる文は、そのあとで調べる。「どう思う」「教えて」「なぜ」「本当か」、文末の疑問符がこれに当たる。
  • ウェブ検索を使うのは、思考に xAI を選んでいるときだけである。それ以外は検索しない。確かめられない答えは「調べてもわからなかったが」で始まる。
  • ニュースの見出しをクリックしたときは、上とは別に、その記事を検索してから要約する。

左の YOU

  • 最初からあるボタンは、分析情報、検索パフォーマンス、GMO報告、YouTube分析、サイト更新である。
  • サイト更新は、声の依頼にはしない。中央の設定シートを開く。
  • 声で「サイト更新」または「サイトの更新」と言うと、保存したサイトの名前、最後の記録、「許可待ちは0件です。」を読む。この声では、計測も書き換えも始めない。
  • ボタンは名前を書いて足せる。検索する言葉と件数は、そのボタンの button.js に書く。見本は Google ニュースの見出しを、指定した件数だけ中央に出す。
  • ボタンの名前は 24 文字まで。サンプル btn-1 は消せない。
  • 中央のスキンは、ボタンのスクリプトから一時的に隠せる。シートを閉じると戻る。
  • 拡張の書き方と短い見本は、別ページの API(拡張の説明と決まり事) にある。チャットAIへは、そのページを渡す。

パネル

  • 上は Yahoo ニュースである。国内、国際、経済、エンタメ、スポーツ、IT、科学、ライフ、地域の見出しを出す。見出しを押すと、中央で調べて要約する。
  • 右は、GOOGLE、株式市場、建玉、GMO ドル円、メモ、サンプル pnl-1 である。それぞれ表示を切れる。
  • メモは右の書き込み欄である。2万文字まで、その PC に残る。
  • パネル名と場所を書いて足すと、panel.html と panel.js のフォルダができる。ずっと横に出しておきたい機能は、ここへ書く。
  • パネルは枠の外へ出さない。入りきらないものは1行に畳み、見出しで開閉する。説明と、最初からあるパネルは消せない。足したパネルは、確認のあとフォルダごと消せる。
  • 鍵や個人の情報は、パネルのファイルに書かない。
  • 狭い枠向けの短い見本は、別ページの API(拡張の説明と決まり事) にある。

スキン

  • 同時に有効なスキンは一つである。Heart Engine が初期で、消せない。サンプル skn-1 も消せない。
  • 別のスキンを選ぶと、心臓、手、都市、放射線は隠れる。YouTube のオーロラは残る。
  • 新しいスキンは skin.js から始まる。毎フレーム drawSkin が呼ばれ、声の大きさ、読み上げ中か、手の開閉、24 帯域を受け取れる。心臓と手を描く関数も渡る。

YouTube

分析

  • ログインしている Google アカウントのチャンネルを読む。YouTube 側へは書き込まない。一覧から外しても、YouTube のチャンネル自体は消さない。外したものを一覧へ戻すこともできる。
  • 読む内容は、登録者数、直近およそ48時間の視聴回数、その期間に視聴の多い動画、過去12か月の通常動画の総再生時間、過去90日のショート動画の視聴回数である。登録者数が非公開なら、その旨を読む。
  • チャンネルが複数あるときは中央で選ぶ。名前を指して分析と言うと、そのチャンネルを読む。今のアカウントに無いチャンネルは読まない。

再生

  • 曲名を言って流す。一時停止、再開、映像を消す、音量、ミュート、画面の拡大と縮小ができる。音量は最大、最小、半分、数字、上げ下げを聞く。
  • 「YouTube止めて」は映像を止める。読み上げは止めない。
  • 曲名が途中で切れていたら、考えさせずに続きを聞き返す。
  • 音は、その PC のスピーカーへ出す。

Gmail

  • 同じ Google のログインで、新着を見る。中央に出すのは、支払いと個人の受信箱だけである。
  • 迷惑メール、宣伝、ソーシャル、フォーラム、なりすましの印があるメールは出さない。
  • メールの送信も削除もしない。見るのは、アプリを開いたあとの新着である。中央を閉じているあいだに来た分は、次の1通で中央を開き直す。

株式と建玉

株式

  • 日本とアメリカを、別々に見る。1行に1銘柄。番号だけ、または「番号,覚え書き」と書く。覚え書きは右の表示名で、値段は番号で取る。
  • 取得間隔は 1分、5分、10分、30分、60分から、市場ごとに選ぶ。初期は5分である。

GMO と T-MAX

  • 右の建玉パネルは、T-MAX の状態ファイルか、GMO の建玉かを切り替える。見出しは T-MAX または GMO になる。
  • GMO ドル円は、公開されている5分足のローソクを出す。この足を見るだけなら鍵は要らない。
  • 残高と建玉を声で読むのは、「GMO報告」と「ジーエムオー報告」のときだけである。「じーえむおー報告」「ジーエムオーほうこく」も同じ依頼になる。間に空白があっても同じである。
  • 「GMO」だけでは読まない。「GMOの報告」も読まない。鍵が無いときは、右の欄へ入れるよう読む。
  • 注文は出さない。「注文して」「発注」「買って」「売って」「決済して」が GMO報告 と一緒でも、残高と建玉を読むだけで、注文は拒否する。
  • 建玉が付いたときは「取引を開始します。」、消えたときは「取引を終了しました。」と、カスケードでもストリーミングでも、「話す」がオフでも読む。

サイトの検証と更新

これは蛇太郎の機能の一つである。このページは、その対象として公開している。自動更新の初期値はオフである。オフのあいだ、1時間ごとの確認は何もしない。

設定

  • 左の「サイト更新」で、中央にシートが開く。タブは設定、許可待ち、記録である。各項目には説明がある。サイト、送り方、git、SSH、FTP、X で組が分かれる。
  • サイトごとに、表示名、テーマ、公開URL、自由パス、手元フォルダ、再計測の日数、ページ数、Search Console のプロパティを保存する。日数は1から90で初期は1(1日1ページ)。ページ数は1から10で初期は3。
  • テーマが空のあいだは、ページを作らないし直さない。手元フォルダが無いときも、計測の先へ進まない。
  • 計測に使うページは、公開URLと自由パスをつないだアドレスで始まるものだけである。自由パスの外の検索語は取らない。プロパティは、ログイン中のアカウントに見えているものから選ぶ。読み取りだけである。
  • 手元フォルダは、接続できるかを試せる。直しは、そのフォルダの HTML へ書く。
  • SSH の秘密鍵は、欄へ貼ると暗号化して保存する。その鍵でサーバへ入れるときだけ、対になる公開鍵をサーバへ足す。すでに同じ公開鍵があれば足さない。パスフレーズ付きの鍵は扱えない。サーバへ入れない鍵は保存し、公開鍵は足さない。

1時間ごとの判定

  1. 自動更新がオンのときだけ、およそ1時間ごとに見る。前回の記録から、保存した日数が経つまでは判定しない。
  2. 自由パス以下の表示回数と平均掲載順位を、きのうまでの28日と、その前の28日で比べる。当日の数字は待たない。
  3. 両方の表示がゼロのときは、既存ページの題と冒頭は直さない。記録は「表示はまだありません。」である。その日も、まだ無ければ新しいHTMLを1ページ足す。
  4. 今回の表示があり、平均掲載順位の数字が前より小さい(順位が上がっている)ときは、既存ページの題と冒頭は直さない。記録は「テーマの順位は上がっています。」である。その日も、まだ無ければ新しいHTMLを1ページ足す。
  5. 今回の表示があり、順位が上がっていないときは、手元フォルダの HTML をページ数まで見たうち、data-jatarou="opening" がある最初の1ページの題と冒頭だけを直す。この一覧のような、冒頭の外の本文は残る。あわせて、まだ無ければ新しいHTMLを1ページ足す。同じ日に2ページは足さない。
  6. 新しいページは、テーマと、手元のボタン・パネル・スキンなどの現状と、確認できた最近の動きから書く。ニュースは1件ごとに見出しを分けて要約し、記事の取得元URLも出典として残す。既存の追加ページと同じ話題は避ける。そのあと現状と比べて取り入れる機能のヒントと、利用者が選ぶチャットAIへ渡す完成プロンプトを枠付きで書く。プロンプトは別ページの API(拡張の説明と決まり事) を先に読ませ、ボタンかパネルかを用途から選ばせる。題と冒頭にテーマの文言が無いときは採用しない。直す前の写しは5回分残す。ニュース検索・ページ作成・題と冒頭の直しに渡す文は、設定で変えられる。
  7. 書いた HTML・CSS・JS・JSON だけを、保存した SSH 先のディレクトリへ送る。サービスは再起動しない。自由パスより上のファイルは送らない。

X

  • 投稿の初期値はオフである。オンのときだけ、公開URLのページに新しい冒頭が出たあとに1件出す。手元を直しただけでは出さない。公開URLでまだ開けないときは「手元は直しました。公開URLではまだ開けないので、Xには出していません。」と記録する。
  • 本文は、何を直したかという1文と、テーマに沿うハッシュタグが最大3つである。URLは入れない。280字まで。アカウントと、投稿用の4つの鍵が揃っている必要がある。
  • 出した文は中央に残し、×で閉じる。あとから出たものは下へ積む。画面に同時に持つのは20件までである。この本文は、ディスクにも記録ファイルにも残さない。声では読まない。
  • 失敗した回は記録し、その場ではやり直さない。次は、保存した日数が経ったあとの確認を待つ。
  • ページを直していない日も、新しいページを足した回は出す。公開URLでそのページが開いてから出す。

記録

  • 動作の記録は、新しい500行だけ残す。その PC の利用者だけが開ける形で保存する。
  • ストリーミング中に聞いた言葉と、その返事は残さない。

限界

  • 平均掲載順位が上がることは目標であり、保証ではない。表示が無い日は、既存ページの題と冒頭は直さない。その日も、まだ無ければ新しいページは1つ足す。
  • Search Console の数字は数日遅れて届く。所有も閲覧権限も無いサイトは読めない。右の「アクセスが多い」は、取れたクリックを反映する。
  • 自動更新が既存ページで直すのは、印の付いた冒頭と題である。自由パスの外は、この検証では読まない。
  • 公開先へ送るのは、自由パスの HTML・CSS・JS・JSON だけである。保存した SSH 先のディレクトリへ置き、サービスは再起動しない。自由パスより上は、利用者がサイト全体のデプロイを指示したときだけ送る。git と FTP の欄は保存できるが、ファイル転送としては動かない。
  • GMO への注文、Gmail の送信と削除、Search Console と YouTube への書き込みはしない。
  • このページに書いてあるのは、いま動いていることだけである。