ARCHIVE
아카이브
기존에 공개한 글을 원래 주소 그대로 보관합니다.
과거의 글에는 작성 당시의 기술과 관점이 담겨 있습니다.
356개 글 · 3 / 12 페이지
· JA
AIクローラーをrobots.txtで正しく制御する — 学習は拒否、引用は許可する2026年の戦略
GPTBotを一行ブロックして「AI遮断完了」と思っているサイトは多い。学習・検索・ユーザー要求のクローラーを分けて制御するrobots.txtを実際に書き、標準パーサーで検証した。Google-ExtendedがAI Overviewsを止められない落とし穴と、llms.txtの正直な現状まで。
· JA
アクセシビリティ55点から100点へ — LighthouseでWCAG違反を実際に直す
架空のベーカリーのランディングページをLighthouseのアクセシビリティ監査にかけて55点。6つのWCAG違反を1つずつ直して100点にした実測ログと、自動ツールが見逃したキーボードの罠までまとめた。
· JA
ローカルLLMにエージェント8個を同時接続してみた — Ollama同時実行スループット実測
サブエージェントを並列で回せばローカルモデルもその分速くなると思っていた。実際に測ると既定のOllamaはリクエストを順番待ちで捌くので、8個つないでも総スループットは変わらなかった。OLLAMA_NUM_PARALLELを上げたときの利得とその代償をM1 16GBで実測した。
· JA
LocalBusiness構造化データ、JSで入れてもいいがサーバーサイドの方が確実な理由
店舗検索ページのLocalBusiness JSON-LDをJSで注入すると、生のHTMLにはブロックが0個。サーバーサイド出力と直接比較し、Google公式見解と順位の限界まで整理した。
· JA
ローカル推論モデルは推論の元が取れるのか — gemma4:12bでthinking ON/OFFを実測した記録
前回の記事でgemma4:12bの空応答をパッケージングのバグと断定した。違った。推論モデルだったのだ。そこで推論ON/OFFで13問を回した。 推論は正解を1つ多く出したが、出力トークンを68倍、時間を19倍消費した。エージェントでいつ点けていつ消すかを実測でまとめる。
· JA
ローカルエージェントがシステムプロンプトを忘れた理由 — Ollama num_ctx無言truncationを実測
ローカルエージェントが長い会話で急に指示を無視しはじめた。プロンプトの先頭に秘密コードを隠し、長さを伸ばしながらrecallを測った。 num_ctxを超えるとOllamaはエラーも出さずプロンプトの前方を切り落とす。そして「既定値は4096」という通説も私のMacでは外れていた。
· JA
ローカルLLMの最初の応答はなぜ時々10秒もかかるのか — コールドスタート(load_duration)を実測した
少し離れてからエージェントを呼び直すと、最初の応答だけやけに重い。Ollamaが応答ごとに返すload_durationをモデルサイズ別に 分解すると、2GBで1.5秒、9.6GBで最大9.7秒だった。しかも「コールド」には二種類あった。keep_alive一つでこの費用が どう分かれるかを実測してまとめた。
· JA
ローカルLLMはなぜ会話が長くなると遅くなるのか — prefillとgenerationを分解して測った
同じ9,700トークンのプロンプトが私のノートPCで最初のトークンまで55秒かかったのに、2回目の呼び出しは65ミリ秒だった。Ollamaのタイムスタンプを直接取り出してprefillとgenerationを分離測定し、prefixキャッシュがなぜ396倍速かったのか、エージェントのコンテキスト設計にどう活かすかをまとめた。
· JA
同じ記事なのに韓国語はトークン1.4倍 — 自分のブログ285本で非英語トークン税を実測した
同じ記事をko/ja/en/zhの4言語で出している自分のブログ285本を、実トークナイザー3種でトークン化し非英語のトークン費用を測った。 韓国語は英語の1.38倍、日本語1.34倍、そしてトークナイザーの世代交代が実質的に非英語向けの割引だったことまでデータで確かめた。
· JA
ローカルLLMは同じ答えを二度返すか — temperatureとseedで出力再現性を実測した
同じプロンプトをローカルのGemma 4へ数十回投げ、出力がどれだけ再現するかを測定した。temperature=0は決定的で、 temperatureを上げてもseedを固定すると出力は一行に収束した。評価とCIにすぐ使える結論までまとめる。
· JA
JSONをそのままLLMに渡すな — データ形式9種のトークンコストを実測した
同じ50件のレコードをJSON・YAML・CSV・TSV・XMLなど9形式に直列化し、tiktokenでトークンを実測した。平坦なデータはTSVがpretty JSONより62%安く、ネストすると結論が逆転する。
· JA
TypeScriptでMCPクライアント自作 — @modelcontextprotocol/sdk v1.29
@modelcontextprotocol/sdk v1.29.0を実際にインストールしてTypeScript MCPクライアントを作った。 Claude Desktopなしでサーバーのツールをプログラムから呼び出す実践ガイド。 実際の実行ログとエラー処理パターンも含む。
· JA
AgnoでAIエージェントを作る — GeminiとビルトインツールでPythonエージェントを実際に動かした
phidataからリブランドされたAgno v2.6.17をサンドボックスで検証。Calculator・Wikipedia・構造化出力・マルチエージェントチームまで実際の実行ログと共に記録。output_schema vs output_model の混同、非推奨モデルID、Team API変更点など実際に遭遇したトラップも正直に残す。
· JA
Ollama構造化出力実践ガイド — PydanticでローカルLLMのレスポンスを型安全に受け取る方法
Ollama 0.3+のJSONスキーマ強制モードとPydanticを組み合わせ、ローカルLLMのレスポンスを型安全にパースする実践ガイド。 直接測定した結果、構造化出力は通常テキストより6倍速く、パース成功率もほぼ100%。
· JA
sentence-transformersでRAG埋め込みを直接実験 — 韓国語クエリで精度が67%落ちる理由
all-MiniLM-L6-v2をローカルで動かし、コサイン類似度・ミニRAG・多言語モデル比較まで直接測定した。英語最適化の 埋め込みモデルで韓国語RAGを構築すると精度が67%低下するという実測結果と解決策を共有する。
· JA
InsightForgeを作った理由: AI消費者リサーチを検証優先度の道具にするまで
InsightForgeとは何か、なぜ作ったのか、synthetic panelとSSR的な方法論を責任あるプロダクトにする中で苦労した点をまとめました。
· JA
Mastra.ai 実践ガイド — TypeScriptでAIエージェントを5分で動かす方法
Mastra.ai TypeScript AIエージェントフレームワークを実際にインストールしてGoogle Geminiと連携し、天気エージェントを作ってみた。インストールから実際のツール呼び出しまでの実験記録。
· JA
AnthropicとOpenAIが同じ月にIPOを申請した — トークン価格戦争が開発者に意味すること
2026年6月、Anthropic(6/1)とOpenAI(6/8)がそれぞれSECに非公開S-1を提出した。二社の同時IPOがAPIトークン価格をどう揺らしているのかを、モデル別の実単価比較と、開発者がいま決めておくべき対応まで含めて整理する。
· JA
Claude Fable 5リリース分析 — MythosがついにGA、API費用2倍は払う価値があるか
Anthropicが2026年6月9日にClaude Fable 5をリリース。SWE-bench Pro 80.3%、$10/$50/MTok。Mythos Preview一般公開版のFable 5が実開発でOpus 4.8より価値があるか、API変更・安全ルーティング・コスト構造から分析する。
· JA
Claude Code 2026年6月アップデート分析 — Safe Mode、Opus 4.8デフォルト、レート制限2倍
2026年6月Claude Codeアップデートを完全解説 — Safe Mode権限分離、/cdコマンド追加、Opus 4.8デフォルト化、 /usageコスト細分化、レート制限2倍まで。開発者が今すぐ把握すべき全変更点と実務移行チェックリストを整理した。
· JA
Drizzle ORM完全ガイド — PrismaなしでTypeScript型安全DBレイヤーを作る
Drizzle ORM 0.45とdrizzle-kitでSQLite・PostgreSQLをTypeScriptで型安全に扱う方法。スキーマ定義からマイグレーション、トランザクションのasync落とし穴まで実行ログとともに解説。
· JA
Node.js 内蔵 SQLite 完全ガイド — 外部パッケージなしで即使える実践DB
Node.js 22.5.0から npm install 不要で使えるnode:sqliteモジュール。DatabaseSync、StatementSync、トランザクション、ユーザー定義関数まで、実際に実行したコードとログで整理した。
· JA
LlamaIndex vs LangChain vs Haystack — 2026年RAGフレームワーク実践比較
LlamaIndex 0.14、LangChain 1.3、Haystack 2.30を実際にインストール・テストした。langchain-community deprecation警告、コード複雑度測定、InMemory検索の実行結果を含む実測比較ガイド。
· JA
Amazon Kiro 実戦分析 — スペック駆動AI IDEはClaude Codeを代替できるか
AWSが作ったスペック駆動AI IDE Kiroを公式ドキュメントとコミュニティレビューで徹底分析。EARS記法による要件生成、Agent Hooks、Steering Filesの実際の価値と、Claude Codeとの決定的な違いを正直にまとめた。
· JA
Deno 2 vs Bun 1.3 — 2026年Node.js代替ランタイム実践比較: TypeScript・速度・セキュリティ
Deno 2.8.2とBun 1.3.14を実際にインストールして、起動時間・HTTP処理量・npm互換性・セキュリティモデルを実測した。どちらが自分のプロジェクトに合うか、データを基に結論を出す。
· JA
Hono.js + TypeScript でエッジ REST API を作る — Cloudflare Workers 実践
Hono v4 + Bun 1.3 + Zod v4 で型安全な REST API を実際に構築した。ルーティング定義・Zod 入力バリデーション・CORS/logger/timing ミドルウェア・Cloudflare Workers デプロイ設定まで、実際のターミナルログと実行コードで解説する。
· JA
TypeScript Zod v4 + Claude API 構造化出力ガイド — LLM応答の型安全パース
Zod v4のsafeParse()と変更されたスキーマAPIでClaude API応答を型安全にパースするパターンを実際に検証した。v3比の性能数値、z.string().check()新API、ネストスキーマ設計戦略をClaude API統合コードとともに整理する。
· JA
Vitest 4でAIエージェントをテストする — LLM呼び出しモック、ストリーミングレスポンステストの実践パターン
Vitest 4.1.7でAnthropic SDKのmessages.create()とストリーミングレスポンスをモッキングする実践パターンを直接検証した。vi.fn().mockImplementation(function(){...})がアロー関数と異なる理由、async function*ジェネレーターでSSEストリームを再現する方法まで、9テストが142ms以内に通過する過程をステップバイステップで解説する。
· JA
TypeScriptでMCPサーバーを作る — @modelcontextprotocol/sdk 実践チュートリアル
@modelcontextprotocol/sdk v1.29.0とZod v4でTypeScript MCPサーバーをゼロから構築する実践チュートリアル。ツール登録、InMemoryTransportテスト、公開API連携まで30分以内に動作するサーバーを完成させる手順をステップごとに解説します。
· JA
Gemini API Managed Agents 実践ガイド — 隔離サンドボックスでエージェントをワンコールで実行する
Google I/O 2026発表のGemini Managed Agentsを実際に動かした記録。client.interactions.create()一発でエージェントを起動する仕組み、Claude・OpenAIとの違い、マルチターン会話の実装までコードで解説する。