生成AIを活用した開発テクニック:ライブラリのコードを「文脈」として使いこなす
生成AIを活用した開発テクニック:ライブラリのコードを「文脈」として使いこなす
生成AIを活用すれば、難解なライブラリ調査が劇的に効率化できます。
その鍵は、「ライブラリ本体のコードを文脈として生成AIに提供する」というテクニックです。
最近、2025年に新しく登場したPythonのAIエージェントフレームワーク「Agno」の学習をしていたのですが、エージェントチームが内部で処理を行う際に、現在どのエージェントが動作中かをリアルタイムで可視化したいと考えましたが実現方法がよくわからない状態でした。
Agnoの公式ドキュメント(Agno公式サイト)にもエージェント名を直接取得する機能は明記されていない。
さてどうするか?
今までならここで諦めて終了でしたが、生成AI時代は違います。
Agnoのライブラリ本体のコードを生成AI(Claude3.7 sonnet)に提供して、エージェント名取得機能の有無を調査させました。
生成AIはコードの内部構造を分析し、「レスポンスコンテンツ内の特定パターン(例:"transfer_task_to_agentname")を正規表現で抽出してエージェント名を取得する」という巧妙な手法を提案してくれました。
ホントに賢い。
実際のコード例
import re
for response in support_team.run(message=question_content, stream=True):
if response.event == "RunCompleted":
print("処理が完了しました。"); continue
current_agent = None
if response.content:
match = re.search(r'transfer_task_to_(\w+)', str(response.content))
if match:
agent_raw = match.group(1)
current_agent = ' '.join(word.capitalize() for word in agent_raw.split('_'))
if current_agent:
print(f"エージェントが切り替わりました: {current_agent}")
何も考えずに、やりたいことを生成AIに伝えるのではなく、使っているライブラリ本体のコードを文脈として与えてあげれば、生成AIがライブラリの内部実装を理解した上で回答してくれます。
このやり方は、今回のように新しいライブラリーが出てきて生成AIがまだその内容を理解してない場合に効果的です。
Agnoをアプリ化してみた
こんな感じでやりたいことを生成AIと相談し、実際にDjangoとAgnoを組み合わせてIT問い合わせ機能を構築したデモ動画が以下になります。
調査結果例
このデモアプリは以下のロジックを使用しています。
- Agnoライブラリ: Agnoの各種ツール(OpenAIChat、SQLTools、ExaToolsなど)を使用。
- キーワード抽出エージェント: 問い合わせ内容から技術的なキーワード(システム名、エラーコード、機能名等)を抽出。
- SQLクエリー提案・実行エージェント: 抽出したキーワードでデータベースを実際に検索。
- Web検索エージェント: データベース検索で結果が0件の場合のみ外部Web検索を実施。
- レポート生成エージェント: 問い合わせと検索結果を元に詳細なMarkdownレポートを作成。
これらを組み合わせたエージェントチームが連携し、問い合わせ調査からレポーティングまで全自動でこなしてくれるエージェントサービスです。
生成AIの助けを借りれば、こんな見た目の素晴らしいアプリも比較的短時間で開発できてしまいます。
ライブラリのコードを提供する際のポイント
生成AIを用いたライブラリ調査を成功させるためには、以下のポイントを意識します。
- 関連する箇所を適切に切り出す(全体を提供するとトークン上限溢れになるため)
- 具体的なコードの断片を明確に提供する
- 必要に応じてエラーや実行結果もセットで提供する
これにより、生成AIがより正確に解決策を提案してくれる確率があがります。
注意点
- 提案されたコードは必ず動作検証を行い、そのまま採用しない
- セキュリティ面でも生成AIからの提案コードを慎重に検証する
まとめ
生成AIにライブラリのコードを文脈として提供する手法は非常に便利で、ライブラリの難解な調査作業を劇的に効率化できるこのテクニックなので、ぜひ開発に取り入れてみてください。
Discussion