はじめに
BBsakura Networks でネットワークエンジニアをしている松下です。
ネットワークエンジニアというと「機器を触る側・運用する側」というイメージが強いと思います。 私自身もこれまで、日々の運用業務の中で発生する“面倒だけれど必要”な作業に対して、効率化を考えることはあっても、ツールを作るという発想はあまりありませんでした。
しかし最近、AI を使った開発支援ツールの進化に触れる中で、「エンジニアの専門領域に関係なく、誰でもツールを作れる時代になっている」という実感を得ることが増えました。
そして今回、「interface 情報から手順書を自動生成するツール」を作成しました。 結果としてできあがったものは非常にシンプルなアプリですが、自分にとって新鮮な体験でした。
本記事では、そのプロトタイプの内容と、作ってみて感じたことを紹介します。
今回作ったツールの概要
今回作成したのは、interface 情報を入力すると Markdown 形式の手順書が自動生成されるツールです。
構成は以下のような形になりました。
- Docker Compose
- Frontend(React)
- Backend(Flask)
- Database(ユーザー情報 & interface 情報)
- JWT 認証(ログイン機能)
- interface 情報入力フォーム
- 生成された Markdown をそのままコピー可能
Cursor へ入力したプロンプト
利用したプロンプトはこちらです。一般的にはPlanモードを駆使して作成するそうですが、今回は手軽さを重視してみました。LLM は Composer 1 を利用しています。
手順書自動作成ツールを作りたい Docker上のバックエンド、フロントエンド、DBで構成される 認証はjwt認証でやりたい DBにはログインユーザー情報とinterface情報 Interfaceの追加ボタンを押し情報を入力すると、新しく情報が追加され、mdファイルが生成され、それをコピーすることができる なるたけ単純な実装にして interface情報は以下 speed device interface名 interface名がport-channelの場合、メンバーinterfaceも
言語も指定せず、プロンプトエンジニアリング的な要素もほとんどありません。 流石にこれだけでうまくいくとは思っていなかったのですが、Cursor にこの指示を投げると、必要な Docker コンテナ構成、API、UI、JWT 認証、Markdown 生成処理まで一通り揃ったコードを生成してくれました。バックエンドはPython、フロントエンドはNode.jsで作成されました。これらの言語はネットでも良く見るのでLLM的にも使いやすいのかもしれません。
実際の動作イメージ
画面上に interface 情報を入力し、「追加」ボタンを押すと以下の動作が行われます。
- interface 情報が DB に保存される
- 保存された情報をもとに Backend で Markdown テンプレートを生成
- UI 上で Markdown が表示され、ワンクリックでコピーできる
lagを組むかどうかで場合分けも可能で、汎用性のあるものになっています。
生成される Markdown の例
以下は生成される Markdown の一部です。
Interface設定
channel-group 1 mode active exit interface Port-channel1 description port-channel1 - Port Channel no shutdown
メンバーInterface設定
ethernet1の設定
interface ethernet1 description Port-channel1 member 1 channel-group 1 mode active no shutdown exit
ethernet2の設定
interface ethernet2 description Port-channel1 member 2 channel-group 1 mode active no shutdown exit
作ってみて感じたこと
今回、実際にツールを作成してみて感じたポイントをまとめました。
✔ 想像以上に手軽にアプリを作成できる
言語の知識がなく、プロンプトエンジニアリングにも詳しくない状態でも、思っていた以上に簡単に動くアプリを作れたことに驚きでした。
もっと早く触れておくべきだったと感じるし、これは社内でも積極的に活用・浸透させていくべきだと改めて思いました。
✔ AIを活用するにも一定の知識は必要
簡単なアプリならすぐ作れるものの、今後しっかりしたツールに育てていくためのビジョンはあまり明確ではありません。
また、すべてをAI任せにすることはできず、「ここは人間が理解しておくべき」という基礎知識の重要性も強く実感しました。
今後やっていきたいこと
今回作成したのはあくまでプロトタイプですが、今後は以下のような拡張を予定しています。
- テンプレートを編集し、実際の手順書と同じものを作れるようにする
- Docker やGitを使ったデプロイの自動化
- ログ管理やユーザー権限管理の強化
- 社内ツールとして利用できる形へのブラッシュアップ
Cursor を使えば改良も素早く行えるため、業務に本格導入できるレベルを目指していきます。
おわりに
今回作ったツールは本当にシンプルなものですが、自分の業務の中のちょっとした不便を、自分で形にできたのは良い経験でした。
AI を使うことで、普段はアプリ開発に携わらないネットワークエンジニアでも、業務を少し便利にするツールを作ることが意外とできるという感覚を得られたのは大きかったです。
もちろん、生成されたコードを理解したり、必要な部分を調整したりするには一定の知識が必要です。それでも、プロトタイプを作るまでのハードルが大きく下がったことは実感しています。
今後は、今回のツールを少しずつ改善しながら、自分の業務や周りのチームが使いやすくなるような仕組みづくりにも取り組んでいきたいと思います。