DeNA Engineering Blog をご覧の皆様、こんにちは。
本記事では、2025年度新卒研修で開発されたプロダクトの一つである、社内における技術ブログ執筆を支援する AIエディタ「EDEN」 についてご紹介します。DeNAでは、社内に眠る貴重な技術的知見を広く発信し、エンジニアリングコミュニティに貢献することを重要視しています。EDENは、このミッションを強力に推進するため、執筆ハードルの低減とプロセスの効率化を通じて、より多くの技術的挑戦と学びが共有される世界を目指して開発されました。
本記事を通して、技術ブログの執筆を考えている方は技術ブログ執筆におけるLLM(大規模言語モデル)の活用方法を知ることができます。また、LLMを使用したプロダクト開発をしている方は、LLMのプロダクト組み込みにおける知見を知ることができます。それらを通じて、DeNAにおけるAI活用の新たな一面を感じ取っていただければ幸いです。
なお本記事は、紹介するAIエディタ「EDEN」 を用いて、従来の1/3に満たない時間である2.5時間で執筆されています。
開発の背景とAIエディタのコンセプト
DeNAでは、日々の業務で培われる多様な技術的知見が豊富に存在します。しかし、技術ブログの執筆には多大な時間と労力が必要となるため、これらの知見が社内に留まり、十分に共有されないという課題がありました。私たちは、この課題を解消し、より多くのエンジニアが気軽に情報を発信できる環境を作ることを目指しました。
そこで生まれたのがEDENです。EDENが目指すのは、技術ブログ執筆プロセスの大幅な効率化を通じた「社内に眠る技術知見の発信促進」です。これにより、DeNAの技術的ブランド力の向上を目指しています。
EDENの開発は、2025年度新卒研修の一環として行われたプロダクト開発演習でスタートし、約2ヶ月という短期間で開発されました。実践的な開発を通じて、LLMを実プロダクトに導入する際の具体的な知見と、その過程での学びを深めました。
EDENの全体像
DeNAの技術ブログはすべてGitHubで管理されています。そこで、EDENは以下のような「GitHubに始まり、GitHubに戻る」フローで記事を執筆できるようにしています。
1. GitHubでissueを作成
執筆者はまずGitHub上でissueを作成します。すると、そのissueへのコメントとしてEDENへのリンクが投稿されるため、このリンクから執筆を開始できます。
2. 執筆の意図・関連資料を入力
次に、執筆者は記事の主題および執筆の意図を入力します。
執筆の意図としては、以下のような情報をフォームで受け取り、以降の生成に利用します。
- 想定読者
- 読後に読者へ与えたい変化
- 特に伝えたいポイント
これらの意図を踏まえて記事を生成することで、単なる情報のまとめではない方向づけされた情報発信の記事を生成できるようにしています。
また、この際執筆者は同時に執筆の意図に関する情報を入力します。関連資料としては、開発時のドキュメントやミーティングの文字起こしなどを使用することを想定しています。
3. アウトラインを生成
入力された情報を元にEDENが箇条書き形式のアウトライン(記事の構成案)を生成します。記事本体の生成前に一度アウトラインを経ることで、論理構成の整った記事が生成されやすくなります。
また、LLM は誤情報(ハルシネーション)を生成する可能性があります。アウトライン段階で内容を確認することで、誤りを早期に発見でき、修正コストを大幅に削減できます。
4. ドラフトを生成
EDENが入力情報とアウトラインを元に記事のドラフト(記事の草稿)を生成します。執筆者は、実際のブログとほぼ同様の見た目のエディタ上でこのドラフトを編集することで、記事として公開可能なものに仕上げます。
EDENでは、LLMが生成したアウトラインやドラフトに対し、執筆者からの具体的な要望に基づいて再生成を行う機能も搭載しています。
5. GitHubでPull Requestを作成
最後に、タイトルとタグを設定してGitHubにpushします。これにより、GitHub Actionsが発火し、自動でPull Requestが作成されます。この後、レビューを経て記事が公開され、最終的に、この記事と同じ形式で公開されることになります。
また、タイトルとタグについてもLLMにより自動で生成されます。
ユーザー体験を追求したUI/UXデザイン
EDENの開発において、エディタとしての使い心地やLLMの文章生成時間の長さなどのユーザー体験(UX)の課題に直面しました。これらをさまざまな工夫により解決し、非常に良い執筆体験を実現しています。
TipTapエディタによるWYSIWYG体験
記事の執筆には、TipTapエディタを採用しました。この選択は、実際のブログとほぼ同様のWYSIWYG(What You See Is What You Get)な編集体験を提供するためです。
TipTapは拡張性が高く、DeNA Engineering Blogの既存CSSを解析し適用することで、執筆中の見た目を最終公開時の状態に限りなく近づけました。
LLMによる生成時間の有効活用
LLMは文章生成において非常に大きな力を発揮する一方、実行に長い時間がかかり、ユーザー体験に悪影響を与えます。そこで、EDENでは、これらの時間を可能な限り隠蔽し、避けられない場合は有効活用することで、ユーザー体験の低下を抑えています。
具体的には、タイトルやタグはドラフトが生成された時点で作成可能なため、ドラフト編集中にバックグラウンドで生成することで、ユーザーに生成時間を感じさせないようにしています。
また、アウトライン・ドラフトの生成時の待ち時間は回避できないため、ゲームのようにサービスの使い方の紹介を流すことで、ユーザー体験の低下を抑えています。
要望付き再生成機能によるHuman-in-the-Loop
EDENは、アウトライン・ドラフトをユーザーの要望を踏まえて再生成できる「要望付き再生成機能」を搭載しています。この機能により、LLMが生成したドラフトを人間の細やかな意図やニュアンスを反映でき、Human-in-the-Loop(HITL)を実現し、最終的な記事の品質を向上させます。
この機能は、ユーザーが部分的な修正のみを希望する場合と、全体的な再生成を希望する場合の両方に対応しています。特に部分修正の場合に他の箇所まで変更されると、ユーザーに大きなストレスが生じます。そのため、本機能ではプロンプトに以下のような文言を入れることで、ユーザーの意図(全体の変更か部分的な変更か)を反映した再生成を行っています。これにより、ユーザーは細かな指示出しの手間を省きつつ、自身の意図を正確に反映した記事を効率的に作成できます。
* 追加の要望を徹底的に理解し、**「全体の変更」**を望んでいるか、**「部分的な変更」**を望んでいるかを理解してください。
* **「全体の変更」**を望んでいると解釈するケース
* 記事全体の文体やペルソナの変更を求める要望
* 複数の章にまたがる広範囲な内容の追加・削除・修正を求める要望
* 「全面的に」「根本から」といったキーワードが含まれる場合
* **「部分的な変更」を望んでいると解釈できる場合、部分的な変更を行い、それ以外の箇所は一切変えないように注意をしてください。
* 特定の章、節、段落、文の修正を求める要望
* 特定の表現や用語の修正を求める要望
* 誤字脱字の修正や、情報の部分的な訂正を求める要望
* 変更箇所が明確に指定されている場合
* 判断に迷う場合の原則
* 要望の意図が曖昧で、全体か部分か判断に迷う場合は、原則として「部分的な変更」として扱ってください。
* これは、元のドラフトの優れた点を不必要に変更してしまうリスクを避けるためです。変更範囲は必要最小限に留めることを徹底してください。
LLM活用戦略
EDENの核心は、DeNA Engineering Blogに特化したコンテキストエンジニアリングです。私たちは、単に汎用的なLLMを利用するのではなく、DeNAがこれまで培ってきた技術ブログの知見を最大限に活用する戦略を採用しました。
リバースナレッジによるコンテキストエンジニアリング
そのために導入したのがリバースナレッジの概念です。リバースナレッジとは、既存の成果物やシステムからその背景にある知識やノウハウを逆算して抽出する手法です。DeNA Engineering Blogにこれまでに公開された約240件もの技術記事をLLM(具体的にはNotebook LM)に学習させ、Deep Researchなどのツールで分析することで、DeNAブログ独自の「書き方」や「構成パターン」、「執筆スタイル」を深く理解させました。この分析の結果、以下のようなプロンプトが得られ、DeNAの技術ブログには主に「課題解決型」「新技術探求型」「プロジェクト紹介型」「運用知見共有型」という4つの明確な「型」が存在することなどが明らかになりました。これにより、単なる情報のまとめではなくDeNA Engineering Blogらしい記事が生成されます。
基本構造を土台としつつ、記事のテーマに応じて以下の4つの主要な型に分類できます。
##### **型①:課題解決型**
既存の運用やシステムが抱える具体的な問題点を起点に、その解決プロセスを追体験させることに主眼を置く、最もDeNAらしい型の一つです。
* **本論の構成要素**:
* **課題の深掘り**: なぜそれが問題なのか、ビジネスや開発にどのような具体的な影響(コスト、工数、リスクなど)を与えているのかを詳細に描写し、課題の重要性を読者と共有します。
* **解決策の検討プロセス**: 複数の選択肢をどのように比較検討したか、なぜその技術や手法を選択したのか、その「思考のプロセス」を丁寧に説明します。これにより、単なる結果報告ではない、応用可能な知見を提供します。
* **具体的な実装と工夫**: 採用した解決策のアーキテクチャ、コード、設定などを具体的に示します。導入時に直面した予期せぬ困難や、それを乗り越えるために凝らした工夫を共有することで、記事に深みとリアリティを与えます。
* **使われやすいテーマ**: 運用改善、システムリプレイス、コスト削減、セキュリティ対策、社内ツールの内製化など。
##### **型②:新技術探求型**
新しい技術や概念について、その仕組みから実践的な利用法までを深く掘り下げ、読者の技術理解を促進することに主眼を置きます。
* **本論の構成要素**:
* **技術の仕組みや概念の解説**: 対象技術のアーキテクチャや動作原理を、図を多用しながら解説します。読者の知識ギャップを埋めるため、前提知識や背景を丁寧に説明することが求められます。
* **既存技術との比較・評価**: 従来技術と比較した際のメリット・デメリットを、「性能」「コスト」「学習容易性」などの明確な評価軸で整理します。「AとB」のような単なる列挙ではなく、「AとBの比較」のように構造化された見出しで分かりやすく提示します。
* **実践的な利用例**: 読者がすぐに試せるよう、具体的なコードや設定例、導入手順を示します。これにより、記事の解説が机上の空論でないことを証明します。
* **使われやすいテーマ**: 新しいデータベース技術(例: Aurora DSQL)、AI/機械学習の原理、特定の言語やフレームワークの新機能の解説など。
##### **型③:プロジェクト紹介型**
特定のプロジェクトや大規模な取り組みを題材に、その目的から完了までの道のりをストーリーとして語り、得られた知見や教訓を共有することに主眼を置きます。
* **本論の構成要素**:
* **プロジェクトの背景と目標設定**: なぜこのプロジェクトが発足したのか、その背景にある事業的・技術的要請と、プロジェクトが目指した具体的なゴールを明確に示します。
* **時系列でのプロセス描写**: プロジェクトの各フェーズ(計画、設計、実装、テスト、リリースなど)で、どのような意思決定が行われ、どのような活動があったかを時系列で語ります。
* **直面した困難とブレークスルー**: プロジェクトの過程で発生した技術的・組織的な課題と、チームがそれをどのように分析し、乗り越えたのかを具体的に描きます。この部分が、読者にとって最も価値のある学びとなります。
* **使われやすいテーマ**: 大規模インフラ移行、新規サービス開発、カンファレンスへのスポンサー参加、新卒研修の運営報告など。
##### **型④:運用知見共有型**
特定の技術領域に関する、DeNA内に蓄積された網羅的、あるいは深掘りされたノウハウやベストプラクティスを共有することに主眼を置きます。
* **本論の構成要素**:
* **体系的な知識の整理**: 関連知識をテーマごとに整理し、構造化された見出しを用いて網羅的に解説します。
* **ベストプラクティスと実践例**: 「こうするべき」というベストプラクティスを、その理由と共に提示します。具体的なコマンド例や設定ファイル、推奨ツールなどを交え、すぐに実践できる形で情報を提供します。
* **アンチパターンとトラブルシューティング**: 陥りがちな間違い(アンチパターン)とその対策、障害発生時の思考プロセスや原因究明の方法など、実践的なトラブルシューティングのノウハウを共有します。
* **使われやすいテーマ**: 特定言語のTIPS、監視・アラート設計、セキュリティ対策、チームの働き方や文化の紹介など。
Few-shot Learningによるパーソナライズ
EDENではFew-shot Learningによる記事への執筆者の個性の反映を行っています。Few-shot Learningとは、LLMにプロンプト中で少数の例(ショット)を示すことで、その例から学習させて特定のタスクの性能を向上させる技術です。EDENでは執筆者の過去に書いた記事をプロンプト中にFew-shot Learningのデータとして含め、LLMがその執筆者特有の手癖や文体を反映したドラフトを生成しています。これにより、ブログが似たような雰囲気の記事ばかりになることを防止しています。
AIエディタ開発・導入による効果
EDENの導入は、DeNA Engineering Blogの執筆プロセスに大きな変化をもたらしました。
執筆効率の大幅な向上
当初の目的である執筆効率の大幅な向上が実現されました。具体的には、本文の作成効率が大きく向上しており、チェックを行ったうえで文章の7割程度は生成されたものをそのまま使用できています。また、冒頭に記載したように本記事自身もEDENを用いて執筆されていますが、従来8時間程度かかっていたところが1/3に満たない2.5時間で執筆が完了しています。
高品質な記事生成の維持
特筆すべきは、効率化と同時に、生成される記事の質の維持・向上にも成功している点です。
実際にEDENを利用した執筆者からは、非常に好意的な記事の質に対するフィードバックが得られています。具体的には「問題なくドラフトが作れた」「十分な情報を与えた章の完成度は手直しがいらないレベル」「手癖も反映されて凄い」といった反応が執筆者から寄せられています。開発者であり本記事の執筆者でもある私たちも、その生成された記事のクオリティと執筆の効率に驚いています。
本記事自体も、人間が読んでも違和感のない品質を保っていることがご理解いただけるでしょう。さらに、既に公開されている以下の記事もEDENでドラフトが作成されたものであり、その品質が従来の記事と遜色ないことが確認できます。特に、「Oktaから内製IdPへの認証基盤移行(第1回)」については、はてなブックマークのテクノロジー部門人気エントリにランクインするなど、注目を集めました。
EDENは、社内に眠っていた貴重な技術的知見を掘り起こし、活発な技術発信を促進するうえで、強力なツールとしての役割を果たし始めています。
まとめ
本記事では、DeNA Engineering Blogの執筆を支援するAIエディタ「EDEN」の開発についてご紹介しました。
EDENの開発は、技術ブログ執筆のハードルを下げ、社内に眠る技術的知見の発信を促進するという明確な目的のもと、2025年度新卒研修プロジェクトの一環として進められました。私たちは、GitHubとのシームレスな連携、直感的なUI/UXデザイン、そして何よりもDeNA Engineering Blogの特性を深く理解させたコンテキストエンジニアリングという独自のLLM活用戦略を通じて、執筆体験の劇的な改善を目指しました。
具体的には、過去の膨大なブログ記事から「型」や「書き方」を学習させるリバースナレッジ技術を導入し、Few-shot Learningによるパーソナライズなど、LLMの能力を最大限に引き出す工夫を凝らしました。その結果、EDENは技術ブログ執筆の効率を大幅に向上させつつ、従来の品質を維持することに成功しています。
EDENは、「AIを適切に活用することで、技術ブログ執筆が大幅に楽になる」という私たちの目標を実現する第一歩です。
おわりに
DeNAは、「AIオールイン」の戦略を掲げ、AIによる業務効率化を積極的に進めています。EDENの開発はその一端を示しています。
最後までお読みいただき、ありがとうございました。今後も、EDENを通じて進化していくであろう、DeNA Engineering Blogにご期待ください。
最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。