mktoho のアイコン

mktoho

mktoho.dev

AIと一緒に、いろんなことをやっています

最近ループエンジニアリングというのをやってます
放っておいても勝手に改善が進むような仕組みを作って、あとはAIに任せるみたいな感じ
実際に無人で動くループを組んで、Webサービスを開発してもらい続けています

最近は大学の授業も、スマホの買い替えも、AIに聞いて進めています
なるべくそのまま記録に残すようにして、あとから振り返ったり会話のネタになればいいなあという気持ち

いま一番おもしろいこと

ループエンジニアリング — 人間を、プロンプトを打つ役から外す

loop-engineering

AIにプロンプトを打つ「仕組み」のほうを設計する

発見ループと修正ループの2本を GitHub Issue でつなぎ、launchd で毎時、無人で回しました。 発見ループが問題を見つけて Issue を立て、修正ループがそれを拾って worktree の中で直し、PR を出す。 人間の仕事はマージボタンを押すことだけになります。

10マージされたPR
3実在の脆弱性を発見
$501日分のコスト
7日静かに停止していた

おもしろいのは、うまくいった話より壊れ方のほうでした。 最初の実験では停止条件が3箇所とも壊れていて、test も lint も typecheck も全部緑なのに、 「何も実装していないコード」が通り、重大な認可欠陥がそのまま見逃されました。 機械的な検証は「壊れていないこと」しか見てくれない。

無人運転で一番怖かったのは、失敗が静かに永続化することです。 API接続が切れて空のブランチが残り、それが「着手済み」と誤判定されて、その Issue は永久に処理されなくなりました。 ループは exit 0 を返し続けていたので、7日間、誰も気づきませんでした。

調査ノートから実験ログ、無人運転の障害記録、復旧までを全部残しています。 → リポジトリを見る

つくったもの

動いているもの、止まっているもの、実験で終わったもの。

World Issue Tracker

稼働中

「地球のバグを、みんなで可視化して、みんなで直す」。ソフトウェア開発の Issue Tracker を現実世界に持ち込んで、個人の困りごとから国際問題までを同じ仕組みで扱う。上のループが実際に働いている対象でもあります。

HonoNext.jsCloudflare WorkersD1Clerk

スマホを買うまでの全記録

公開中

老眼で文字が読めない親向けの大画面Androidと、開発検証用のiPhone。条件の違う2台を予算15万円で選び切るまで。前提が2回ひっくり返って結論が変わった過程も、検索が間違った価格を返した事例も、そのまま残しました。

Claude CodeGitHub Pages

AIと大学の授業を進める

進行中

解析学をAIと一緒に。ポイントは「教わる」のではなく教わり方を設計すること。答えを即出しさせず、自分の仮説を先に言ってから欠落を診断させる。過去に線形代数で挫折した原因を言語化して、そこから逆算しました。

MarkdownObsidianmatplotlib

Discord リアクション集計

運用中

コミュニティのリアクションを「もらった数 / 付けた数」で月次集計してレポート化。毎月1日に自動で走ります。日本時間の朝6時を月の始まりにする、自己リアクションは除く——人を数字にするときの気遣いのほうが設計の本体でした。

TypeScriptdiscord.jsNeonCloudflare Pages

12役のマルチエージェント

実験終了

PM・アーキテクト・バックエンド・法務・税務まで12の役割を作って、7フェーズのパイプラインで協調させ、シェアハウス管理システムを作らせる実験。動くところまでは行きました。この「大掛かりな組織」路線から、小さいループの反復へ考えが変わっていきます。

PythonClaude APItool_use

ごみの日 通知Bot

稼働中

収集日の前日18時に「明日は可燃ごみ」とDiscordへ流すだけのBot。自分が忘れるから作りました。サーバーは立てず、GitHub Actions の cron だけで無料で動かしています。小さいけれど、生活の困りごとが実際に消えました。

Node.jsGitHub ActionsDiscord Webhook

やってみて分かったこと

AIと長く作業して、繰り返し効いてきた考え方。

停止条件が嘘をつくと、ループは「何も検証せずに緑を返す装置」になる

回す前に、止まる仕組みのほうが本当に動くか確かめる。テストが緑であることと、正しいことは別物でした。

作り手と検証役は分ける

同じエージェントに作らせて確認させると、自分の作ったものを甘く見ます。役割を分けるのが一番効きました。

失敗は、派手に落ちるより静かに残るほうが怖い

無人で回すなら、成功の観測より「失敗が観測されているか」を先に作る。7日間気づかなかった話がこれです。

過程を残すと、結論が変わったときに理由が追える

買い物でも学習でも同じでした。「なぜその案を捨てたか」を書いておかないと、同じ検討を何度もやり直します。