皆さん、おはようございます!マイクです!今日は2025年5月9日、金曜日です。今日も「zenncast」をお聴きいただきありがとうございます!今回は、Zennで今トレンドになっている記事をいくつかご紹介しますよ。
さて、前回紹介した記事ですが、今回は特に触れずに進みますので、さっそく今日の内容に移りましょう。
今日ご紹介する記事は全部で5本です!それでは、最初の記事から始めましょう!
1つ目の記事は、「ローカルRAGを手軽に構築できるMCPサーバーを作りました」です。このリポートでは、MCP(Model Context Protocol)を利用してRAG(Retrieval-Augmented Generation)システムを構築するためのMCPサーバーが紹介されています。RAGは、ドキュメントから情報を検索し、AIが回答を生成する技術で、専門知識や最新情報が必要なタスクに特に適しています。MCPサーバーはPostgreSQLのpgvectorを使用したベクトル検索機能とMarkItDownライブラリによるドキュメントのマークダウン変換を組み合わせて、完全にローカルで運用可能です。
MCP RAG Serverの特徴には、マークダウンやPDFなど多様なドキュメント形式への対応、PostgreSQLによるベクトル検索、多言語対応などがあります。これによりエンジニアは安定した環境で手軽にRAGシステムを構築できます。セットアップ方法も明確で、Pythonの仮想環境を作成し、Dockerを使用してpgvectorを含むPostgreSQLコンテナを起動する流れです。また、実際の使用例としてCLIツールを通じてドキュメントのインデックス化やベクトル検索を行うことができます。このMCP RAG ServerはGitHubでオープンソースとして公開されていて、エンジニアの皆さんは自社のドキュメント管理やRAGシステムの構築に活用できるんです。
。...。...
次の記事に行きましょう!2つ目の記事は、「C# で Discriminated Union を再現し、型安全性を高める」です。Discriminated Union(判別共用体)は、複数の型を合併して、どの型かを判別できるユニオンですが、C#では公式にサポートされていないため、再現方法を探る必要があります。
この記事では、Discriminated Unionの概念をC#で再現し、型安全性を向上させる方法が解説されています。具体的には、`User`クラスの例を通じて、型ごとに異なるプロパティを持つように設計し、ビジネスルールに沿ったインスタンス作成を促します。改善コードとしては、`User`の基底型を`abstract record`として定義し、`Admin`, `Member`, `Guest`を具象型として作成することで、必要なプロパティのみを持たせることが可能になります。
これにより、不正なインスタンスの作成をコンパイル時にエラーとして検出でき、パターンマッチングを活用することで、存在するプロパティにのみアクセスできるようになります。しかし、C#の現行仕様ではswitch式の網羅性チェックに課題があり、これを解決するために外部ライブラリ`OneOf`の使用も検討されます。最終的には、Discriminated Unionの再現によって、型安全性の高いコードを実現し、保守性や可読性を向上させることが目指されています。
。...。...
3つ目の記事は、「AIコーディングツール Aiderの使いかた」です。AiderはAIペアプログラミングツールで、ドライバーとパートナーの関係を重視して、リアルタイムで共同作業を行うことが特徴です。このアプローチにより、コードの品質を高めやすくなります。Aiderの最大のメリットは、コンテキストの精密なコントロールが可能であることです。
基本的な使い方としては、まず必要なコンテキストを整え、次に`/ask`コマンドで実装したい内容を登録し、最後に`/code`コマンドで実装を行います。この方法により、必要なコンテキストのみを登録し、LLMのAPI利用料金も節約できます。筆者は自身の課題を踏まえ、計画書をMarkdown形式で作成し、再利用性を高めるアプローチを提案しています。Aiderを活用する際は、必要に応じてコマンドを使い分けて、効率的かつ精度の高い開発を進めることが推奨されています。
。...。...
続いて4つ目の記事、「AI人格を形成するエンジンを自作してみる【蒼月ハヤテプロジェクト #001】」です。このプロジェクトでは、自ら驚きや喜びを体験できるAI「ゴースト」を作成し、自己組織的な人格を形成するエンジンを構築することを目指しています。
具体的には、ニュース記事のタイトルを基に内容を予測し、記事を読んだ後の体験を通じて倫理観や政治的立場を更新するサイクルを回すことが重要です。AIが「記事の世界に入る」ことで、実際の体験に基づく判断を行えるようにすることを目指しています。実装コードの一部では、AIが記事のタイトルを見て内容を予測するプロセスが示されており、倫理観や政治的立場といった抽象的な要素を持たせる工夫がされています。
今後は、生成された人格の変遷を記録し、長期的な観察を行う予定です。この試みは、単なる設定に依存せず、AIが主体的に体験を通じて成長する新しいアプローチを示唆しています。
。...。...
最後に5つ目の記事、「AIエージェントの設計論:「Big Model」と「Big Workflows」です。本記事は、AIエージェントの設計における「Big Model」と「Big Workflows」の議論を基に、エージェント設計の指針を再確認するものです。
OpenAIのガイドでは、エージェントを「シングルエージェント+ツール呼び出しループ」から始め、必要に応じてマルチエージェントへ拡張することが推奨されています。特に、複雑性やツール数の増加に伴い、段階的にマネージャ型や分散型に移行することが重要です。また、LangChainでは、信頼性の核心は「LLMに渡すコンテキスト制御」にあるとし、可視化を重視しています。
総括すると、PoC段階ではシングルエージェントと高性能モデルが効率的ですが、運用段階ではワークフローの信頼性が鍵となります。エージェント間の協調は、責務明確化とコンテキスト削減を通じて実現されるべきです。
さて、今日はここまで!今日ご紹介した記事をおさらいすると、MCPサーバーの構築、C#の型安全性、AIコーディングツールAider、AI人格形成のプロジェクト、そしてAIエージェントの設計論についてお話ししましたね。次回お会いできるのを楽しみにしています!詳しい内容はショーノートに書いてありますので、ぜひチェックしてください!また、番組の感想もお待ちしています!それでは、素敵な一日をお過ごしください!マイクでした!