Dev

synctest を用いた Go の並行コードのテスト

synctest を用いた Go の並行コードのテスト

Goの並行テストで「睡眠」に頼るのをやめよう。

並行処理を行うGoコードのテストには、常に一定の規律が求められてきました。 Goroutineは安価であり、チャンネルは単純、そしてコンテキストのキャンセルは慣用的なものです — 実際のGoサービスでは、バックグラウンドワーカーやタイマーが至る所に存在しています。

開発者向け「Mermaidダイアグラム」クイックスタート&チートシート

開発者向け「Mermaidダイアグラム」クイックスタート&チートシート

コードによる図解、トラブルなし。

Mermaidは、キャンバス上でボックスをドラッグするよりも、図をテキストとして記述することを好む人々のためのテキストベースの図作成ツールです。Markdownのような構文を使用して、フローチャート、シーケンス図、クラス図、状態機械図、タイムライン、ガントチャート、エンティティ関係図などを記述します。

実践におけるLLMのガードレール:実際に有効な手法

実践におけるLLMのガードレール:実際に有効な手法

管理すべきはモデルではなく、リスクです。

LLM(大規模言語モデル)は予測不可能です。幻覚(ハルシネーション)を起こし、データを漏洩させ、有害なコンテンツを生成したり、正当なリクエストを拒否したりします。ガードレール(防護策)は、機能を損なわずにモデルの動作を制限します。

AIアシスタントアーキテクチャ:LLM、メモリ、ツール、ルーティング、オブザーバビリティ

AIアシスタントアーキテクチャ:LLM、メモリ、ツール、ルーティング、オブザーバビリティ

シリアスなアシスタントは実際にはどのように構築されているか。

本番環境で運用されるAIアシスタントは、「プロンプトを与えたLLM」ではありません。ユーザーの意図を受け取り、状態を保持し、検索やアクションを行うタイミングを判断し、障害のデバッグに必要なランタイムの詳細情報を公開するシステムです。

Pythonで堅牢なLLM構造化出力の検証

Pythonで堅牢なLLM構造化出力の検証

「雰囲気」に頼る解析をやめ、契約を検証せよ。

ほとんどのLLM「構造化出力」チュートリアルは、本気度にかけるものです。 それらは、JSONを丁寧な口調でリクエストし、モデルが適切に動作することを祈る方法を教えます。 それでは検証ではありません。 それは単に括弧で囲まれた楽観主義にすぎません。

実際に機能する分散システムにおける冪等性

実際に機能する分散システムにおける冪等性

重複する副作用を回避する

分散システムにおける冪等性(Idempotency)とは、ネットワークが嘘をつき、キューが再送を試み、クライアントがパニックし、オペレーターがリプレイボタンを押した際に、あなたを救済する性質です。本番環境では、重複したメッセージの配信は正常な挙動です。問題となるのは、重複した副作用の発生です。

開発者向け Claude Skills と SKILL.md:VS Code、JetBrains、Cursor

開発者向け Claude Skills と SKILL.md:VS Code、JetBrains、Cursor

本番環境で耐えるClaude Skillsの構築

ほとんどのチームは、Claude Skillsの使い方を2つのいずれかの誤った方法で運用しています。SKILL.mdを単なるゴミ箱のように使っているか、巨大なプロンプトの切り貼りから抜け出せずにいるかのどちらかです。

OpenClawスキルエコシステムと実務向けの推奨スキル

OpenClawスキルエコシステムと実務向けの推奨スキル

保持すべきスキルと、スキップしてよいスキル

OpenClawには2つの拡張ストーリーがあり、それらは混同されやすいものです。

プラグインはランタイムを拡張します。スキルはエージェントの振る舞いを拡張します。