ホーム ブログ

エンジニア文化の道筋を作る。VPoE鈴木利夫インタビュー

0

社内では「利夫さん」の愛称で親しまれている鈴木学部長兼VPoEに、エンジニアの育成に対する思いや知られざる利夫さんの素顔に迫ります・・!(2025年7月取材)

チーム一体で作り出す面白さを。これまでの経験を若いエンジニアへ。

ーーまずはVPoEご就任おめでとうございます!多岐にわたってご活躍されている利夫さんですが、業務内外で”面白い”と感じる瞬間はどんなときですか??

「この技術を使ったら将来どんなことが実現できるのか」を企画して実験を行っているときですかね。研究機関にいた頃は、当時研究されたいたことが近年でサービス化されているのを見ると感慨深いものがあります。あとは、チーム一丸となってプロジェクトをリリースしたときですね。アピリッツに入ってからは、限られた時間とリソースの中で、チームメンバーと切磋琢磨しながらサービスを完成させることには、やはり達成感があります。

ーーチームでプロジェクトを成功に導くために、チームをまとめるリーダーの役割も重要になってきていると思いますが、利夫さんはどのようにお考えでしょうか?

お客様の前に立ったり役割を持つと、これまでと違う責任感を感じる事も事実です。そこに立ち向かうためには、本人の頑張りに加えて、周りのバックアップの体制も必要だと自分は思います。プロジェクトを成功させるためには、この両方のバランスが大事だと思いますね。だから、プロジェクトのリーダー達が困ってると言っていたら、それに対して少なからず経験がある自分達みたいな人間が、しっかり状況を把握して、その解決方法を導き出してあげる。ただヒアリングするだけで終わらせない。そこを意識しています。

ーーそういう考えを持っている方がマネージャーにいるということはメンバーも心強いですね。「人を動かす」という観点で、プロジェクトマネージャー、部長、それぞれのポジションで考え方の違いはありますか?

難しい質問ですね。笑 部長もプロジェクトマネージャーも、チームメンバーが動きやすい環境を作る・問題になっているところを手当てする、という点では基本一緒だと思います。ただ、部長になると自分の部が良ければ終わりじゃなく、Webセグメント全体の影響範囲を考えて、そこも責任を負う必要があるんじゃないかなと思いますね。

ーーこれまで様々な経験をされてきた利夫さんから見て、人の成長の過程を感じる瞬間はどのようなときでしょうか。

主語が「私」から「チーム」や「組織」に発言が変わるときだと思います。周りを見ながら自主的に動こうと思う人が出てくると、それは成長に繋がっているんじゃないかなと。

「自分で、自分たちで掴みにいく」そんなエンジニア文化の道筋を作る。

ーー利夫さんが考えられているVPoEの役割について教えてください。

「こういう方向でやっていこうね」という標準化、エンジニアとしてのカルチャーを担うことが本来の役割だと認識しています。その中で、直接自分が手取り足取り教えるのではなく、年齢の近い人達同士で教え合うことができるように、その道筋を自分が作っていければいいなと思っています。

ーー今年から若手エンジニアの育成カリキュラムを大幅に変えたとお伺いしましたが、具体的にどのように変えられたのでしょうか。

今までは「教える」というカリキュラムだったのですが、「自分で答えを出して解決を見つけ出す」というカリキュラムに変更しました。答えを探すヒントを提示するところまでにして、自分で調べて自分で解決することで、仕組みや周辺の理解を知るきっかけにもなり、自走力がより得られるのではないかと考え変更に至りました。人に聞いて答えを求める前に、自分で少し深く考えてみるのも一考だなと思います。

ーー利夫さんは、今後どういう人が「デジタル人材」になると思いますか?

「ビジネスの成功が何なのか?」をイメージできて、アプリケーション+ハードウェア+マネージメント+業界知識+コミュニケーション能力+主体性を持っている人材やチーム編成だと考えています。これら全部の要素を1人の人間が持ち合わせるには、かなり広い範囲の知識や経験が必要になるので、時間と労力がかかると思います。チームで、という話であれば、これらの要素のうち何かに秀でていればいいということになります。最近はAIの精度が上がり、ドキュメントやプログラムの生成精度も上がってきているので、この領域のみの知識や経験値に特化していると、AIに置き換わる可能性が高いと思います。AIのミスを補えるぐらいの精度の能力を持つか、別の領域のスキルが必要になってくるのではないでしょうか。

ーー最後に、VPoEとしての抱負を教えてください

まずは業界全体としてAIを使っていく動きがあるので、特に経験数が若い人たちにとっては、AIを使って個人のパフォーマンスを高められる時代が来たなと感じています。その中で近い将来に来る社会の変化に台頭できる組織でありたいです。待っていても始まるわけじゃない、何事も自分で掴みに行く必要があると思っているので、AIを駆使した形で物事を進めていけるような部隊ができればいいなと思います。

ーー利夫さんありがとうございました!利夫さんの5年前のインタビュー記事他のメンバーの記事もぜひご覧ください!

【WBCカレッジ#1】AIレボリューション~①生成AIと向き合うための第一歩~

0

この度、アピリッツで社員同士の知識知見を共有し合うワーキンググループ「WBCカレッジ」が7月より発足されました!今回は、WBCカレッジ発足の背景と、第1回目となる講義の様子をお届けします!(2025年7月取材)

WBCカレッジって??

WBCカレッジとは、各個人のノウハウを「言語化して他者へ共有・実践する」というサイクルを作ることで、技術の標準化や浸透を図ることを狙いとしたワーキンググループです。参考:SECIモデル

WBCカレッジでは、毎月1回~2回、社内メンバーがプレゼンターとなって、テーマに沿った講義を実施。参加メンバーは講義の後に、今回の講義で気づいたことや振り返りを提出して、知識のアウトプットを行います。

ちなみに、WBCは「ウェブ・ブート・キャンプ」の略称で、ビリーズブートキャンプの様に「組織も筋肉質にする」という意味で命名されました!💪

記念すべき第1回目のテーマは、生成AI!

第1回目となるWBCカレッジは、AIソリューション学部学部長の浅田大輔さんによる、『AIレボリューション~①生成AIと向き合うための第一歩』!

講義では、「そもそも生成AIって?」といった基本的な内容から生成AIの歴史やトレンド、各個人のパフォーマンスを向上させるためのAI活用術や注意点等が紹介されました。講義の後半では参加者からの質疑応答の時間もあり、実際の案件における生成AIの活用についてや、浅田さんおすすめのプロンプトについて等、たくさんの質問が上がっていました!

どの質問にも丁寧に回答している浅田さんの姿が印象的でした!

参加者は200名!エンジニアから、コンサル、バックオフィスまで

第1回目となる浅田さんの『AIレボリューション』では、Zoom・対面含めて、なんと約200名のメンバーが参加しました!参加者は、エンジニアだけでなく、WebコンサルタントからWebデザイナー、バックオフィスのメンバーなど様々!業務内容に関わらず、アピリッツメンバー、一人一人の生成AIへの興味関心の高さを感じます。

講義が終わったら、参加メンバーで懇親会を開催!軽い食事を取りながら、講義の内容について浅田さんに質問をしに行ったり、職種の垣根を超えて普段関わらないメンバーと話していたりと、懇親会も大盛況に終えました!

参加したメンバー同士で懇親会!

講義が終わった後もキャッチアップは続く!

今回、講義に参加したメンバーの感想を、振り返りシートから一部抜粋してご紹介します!

AIが最新になるに従い(浅田さんの体感ベースで)プロンプトエンジニアリングの比重が減っているというお話は、とても意外で勉強になりました。また、懇親会時に伺った生成AIに対するプロンプト(コンテキスト)における英語の優位性についても、コストを下げるために有用であるとの観点は目から鱗のものでした。

モデルによってMarkdownやXMLなど得意なフォーマットがあることに、学習データの特徴や設計方針の違いが感じられ興味深いと感じました。またチャットAIのサービスによってもプロンプトや会話の履歴の扱い方が変わるのでそれぞれのサービスに応じたプロンプト構成の使い分けなども考える必要があると思いました!

モデルの進化に連れて、プロンプトのベストプラクティスの重要性が薄まっているのは体感としてもあり、序盤に浅田さんがおっしゃっていた「人間に指示するように」、これに尽きると考えています。エンジニアさん側のように、営業やコンサル職種についても、例えば資料生成の部分までAIを活用するなど、もう少しAIを活用する業務範囲を広げていきたいのが本音です。

結局AIを使いこなすために(AIに合わせたテクニックの習得は必要だが)本質的に求められるのは結構「自分のタスクを分解してAIに任せる部分を見つける能力」や「タスクの目的を大局的な観点で理解する能力」のような、社会人スキルの延長だな、と思いました。「これ、AI使えるかも?」と気づくためにどんどん生活にAIを馴染ませて使っていくことが重要だろうなと感じました。

最後に、今回プレゼンターを担当していただいた浅田さんからもコメントをいただきました!

ーー第1回目のWBCカレッジを終えて、いかがでしたか?

第一に感じたのは、社員みなさんの熱量でした。それだけ、生成AIの活用ということに対し各自向き合おうとしているのだと感じました。フィードバックを受ける中で、私自身も含め各自の課題感をより認識できたことは大きな収穫でした。今後における社内の生成AI活用促進にむけての方針に活かしつつ、今後もみなさんに「学びがあった」と思われるような活動ができるように、自分自身も精進していこうと思います。

参加者もプレゼンターも含め、皆さん、今回の講義で色々な気づきや新しい学びがあったようです。^^

次回はPM編!

第2回目となるWBCカレッジは8月20日(水)に開催!

次回は、執行役員CMO兼AO学部学部長の長谷さんによる『PMナビゲーター~動いてこそ意味があるー社内全員がミニPM①~』です!

1人のPMがすべてを担うのではなく、皆が動くことでより強い組織を作ることに繋がればと思い開講します。
大規模案件に限らず、案件の透明性を上げ、顧客との関係、プロジェクトメンバー間での認識齟齬を減らし、自律的に問題を紐解いていけるヒントを一緒に学んでいきましょう!

次回のWBCカレッジもアピスピで取材予定ですので、ぜひお楽しみに!

AWS全冠取得!2025 Japan All AWS Certifications Engineers受賞者インタビュー

0

今年もAWS JAPAN APN ブログにて、「2025 Japan All AWS Certifications Engineers」が発表されました。
アピリッツからは今年度10名のメンバーが選出!今回は、その中から中尾さんと渡邊さんに、気になる勉強方法や今後のキャリアについてインタビューしてきました!(2025年7月取材)

AWS全冠取得!気になるその勉強方法は・・?!

ーーまずは、AWS認定資格全制覇おめでとうございます!AWSの資格を取得しようと思ったきっかけをお聞きしようと思うのですが、中尾さんは飲み会がきっかけだったんですよね・・??

そうです。笑 月1回ぐらいで、AWSの資格を全て取得したメンバーとSS学部の鈴木学部長とよく飲みに行くのですが、AWSが話題になることが多く、会話の中で「そういえば、まだ取得してないの中尾君だけだよね。全制覇しようよ!」という話になり、資格勉強を始めました!

ーー中尾さんらしいきっかけですね!渡邊さんは、昨年初めてAWS JAPAN APN ブログで表彰されたとのことですが、資格取得のきっかけは何だったのですか?

1つ目の資格であるSAA(Solutions Architect – Associate)の認定を取得した2018年は、まだ社内でAWSの資格取得者が数人しかおらず、これは周りにアピールできる強みになると思い受験しようと思いました。AWSの他にもGCPの資格も並行して勉強していましたが、勉強のモチベーションはやはり社内のAPN表彰手当でしたね。私は昨年表彰されましたが、たくさん手当がもらえて嬉しかったです。

ーーAPN表彰手当は大きいですよね・・!実際、資格勉強は大変でしたか?

リフレッシュする時間があまりなかったことが大変でしたね。2024年8月から2025年3月末までに8つの資格を取得する必要があったので、休日はほとんど毎日勉強していました。ただ、休日の午前に早く起きて、問題集を使って5時間以上勉強して、分からない部分があったら社内のChatGPTツールを利用して調べる等して、知識を定着させるように工夫していました。

AWS認定は3年ごとに再認定が必要なので、過去に合格した資格も再受験しなければならなかった点が大変でしたね。サービスも増えて出題内容も変わっていくので、一度合格したからと言って安心はできなかったです。ちなみに私は中尾さんと違って、通勤時間や空き時間を活用して問題集の問題を解いていました。

ーーお二人とも資格取得のきっかけも違えば、勉強方法もバラバラなのですね!

自分は平日仕事から帰って勉強しようと思ってもやる気が起きなかったので、割り切って休日に全振りして勉強をしていました。個人的に短い期間に詰め込んで一気に取得したほうが楽かなと思います。午前に集中して勉強した分、午後は友達と遊んだり、夜飲みに行ったりしてリフレッシュしていました!

自分の場合は、まとまった長時間の勉強が得意ではないので、電車の中で問題集を解いたり、少しずつでも継続して学習することを意識していました。私は2018年から2024年まで約6年かけてAWSの資格を全制覇しましたが、自分の知識がどんどん増えていくことが楽しくて資格勉強も楽しみながらできていたと思います。

資格取得で終わらない。この経験を活かしてさらにその先へ。

ーーAWSの資格勉強が、実際の業務にどのように生かされていると感じますか?

資格を勉強する過程で、システム全体を頭の中でイメージしながら作業できるようになったことが1番の成果だと感じています。アプリケーションの一連の処理がどのように流れるかを俯瞰して理解できるようになったので、資格を取って良かったです。

インフラ関係の案件を任せてもらえる機会が増え、技術の幅が広がりました。エンジニアとしての経験が少ないうちから、AWSに関しては自信を持って取り組むことができたと思います。

ーーAWSの資格を全て取得された経験を、今後ご自身のキャリアにどう繋げていきたいですか?

AWSに特化するだけでなく幅広い技術を身につけて、技術面から開発を成功に導ける、「この人がいれば安心」と思ってもらえる存在を目指しています。AWSについては自分の中で一定の自信と実績がついたと感じているので、今後は他の技術の学習に手を広げていき、AWSの経験を活かしつつ、より広い視野でキャリアを築きたいです。

私も渡邊さんと同じく、幅広い技術を身につけ、将来的にはフルスタックエンジニアとして大型案件に携わりたいと考えています。そのためにもまずは、AWS 認定資格で得た基礎知識を土台に、現場での設計業務に関わり、可用性・セキュリティ・コスト効率の高いインフラを構築できるエンジニアを目指します。

ーーお二人ともありがとうございました!今年度AWS JAPAN APN ブログにて表彰された10名の皆さん、改めておめでとうございます!今後もAWS全冠取得者の活躍にご期待ください!

祝!AIソリューション学部設立!AIのスペシャリストである学部長の思いに迫る。

0

この度、アピリッツでAI領域に特化した部署「AIソリューション学部」が新設されることになりました。
その記念に、学部長に就任された浅田さんへ、これまでのご経歴や新設される学部への思いについてインタビューしてきました!(2025年7月取材)

文系からAIエバンジェリスト。好奇心の強い性分

ーー簡単にご経歴を教えてください!

アピリッツに入社する前は大手通信キャリアのシステム内のDWHチームで、集計処理の開発や結合試験以降のシステムの正常性を検査するツールの開発を行っていました。2014年にアピリッツに入社してからは、Rubyエンジニアとして1年ほど保守開発を行い、その後AWS向けのクラウドエンジニアに。2019年にAIチャットボットの開発やAIを利用したシステム開発チームにも参加し、2023年にAIエバンジェリストとして社内の生成AI利用環境の整備・普及活動を行ってきました。

ーーアピリッツは2社目なのですね!どうしてアピリッツに転職しようと思われたのですか?

Ruby開発がメインの会社であること、Web開発だけでなくスマホアプリやSaaS、セキュリティ等色々な事業を行っていたことが、入社の決め手です。当時、1社目がバックオフィス向けのサービスだったので、表に出るようなサービスの開発をしてみたかったのと、当時Rubyの自由さに惹かれて独学で勉強していたのでRubyでの開発をしたいと思っていました。そこでちょうど、toC向けの開発を行っているアピリッツの求人が目に入ったんです。また、Web開発にとどまらず幅広い事業を行っていることを知り、好奇心の強い自分の性分でも、進みたい方向が変わった時に、何か道がありそうだと思い入社を決めました。

ーー「好奇心の強い性分」。確かに、アピリッツに入社されてからも、Rubyの開発からクラウド、AIまで幅広く担当されていらっしゃいますもんね!当時アピリッツの選考を受けていて印象に残っていることはありますか?

当時、Webとゲームどちらにも興味があったのですが、面接に参加されていた和田社長の「課金した者勝ちみたいな札束で殴り合うようなゲームは作りたくないよね」というお話が印象的で、自分自身とても共感したことを覚えています。

ーー当時はゲームにも興味があったようですが、エンジニア自体は元々興味があったのですか?

実は大学時代、文学部で歴史を学ぶゴリゴリの文系でして・・・。就活生時代は、ゲーム会社のプランナーや映像制作会社、出版社等を受けていました。

ーー浅田さん文系なんですか!びっくりです。そこからどうしてエンジニアの道に?

大学卒業後、映像のコンテ等を工学的に制作する研究をしている大学院の研究室に在籍していたのですが、そこでシステムを作ること自体に興味を持ったことがきっかけです。エンジニアになってからは、想定外の動きが起こると、「どうしてこうなっているんだろう?」と考えることが面白くて、どんどんプログラミングに没頭していきました。おそらく、試行錯誤しながら攻略法を見つける、そのプロセスが楽しいんだろうなと思います。

ーー未経験でプログラミングを習得することは、かなり大変だったのではないですか?

そうですね。ただ1社目も長めの研修があり、そこまで苦労はなかったです。またIT関係の本を読むことが好きなので、積極的に本を読んで学習をしていました。本は体系的な勉強ができるので初心者には向いていたと思います。最近は、Udemy等の動画学習サイトを使っています。大変だったこととしては、アピリッツに入社して少し経ってから携わったスマホアプリの開発です。スマホアプリはWebの開発と全く方法が違うので、最初は右も左も分からず苦労しました。ですが、自分で調べたり、周りのスマホエンジニアの方々に聞いて親切に教えていただいたおかげで、なんとか乗り越えていった覚えがあります。毎回毎回何かしら学ばないといけないことがありますが、その都度自分から積極的に情報を集めにいくことを意識して行動しています。

ーー最近はネットやSNSでも情報収集をされているとのことですが、何か意識していることはありますか?

書いてあることを鵜呑みにするのではなく、「まずは自分で一度実験してみる」ことを意識しています。実際に自分で試してみて、その情報が正しいと自分自身が腹落ちできるように。これはAIとの関わり方でも言えますが、常にネットやAIの情報が正しいわけじゃないという意識を念頭に持つということが重要だと考えています。

さすがAIエバンジェリスト!PCの持ち方も一味違う!

AIのポテンシャルを価値に変えるギアに

ーーそもそも浅田さんがAIに興味を持ったきっかけは何だったのですか?

友人から教えてもらったあるアプリがきっかけです。アピリッツに入社して1年ほど経ったとき、友人と代官山にある氷室京介のコラボカフェに行ったのですが(浅田さんは氷室京介のファン)、そこで「アキネーター」という自分の頭の中にイメージしたものを当てていくアプリを友人に教えてもらい、AIを使ってそのようなことができるんだと衝撃を受けました。そこからAIを勉強し始めて、徐々にAI関連の案件や業務に携わらせていただいたという流れになります。

ーー7月からAI領域に特化したAIソリューション学部が新設されるとのことですが、どのような背景で設立されることになったのでしょうか。

生成AI関連のニュースを目にしない日がないことからも分かるように、AIは業界や社会を変えていくポテンシャルを持っている技術として認識されていると思いますし、実際に利用していく中で、その可能性をひしひしと感じています。そのポテンシャルをより引き出し、顧客へ価値提供するため、そして社内の業務に対して活用していくために、それを専門的に担う部署が必要とされた結果だと認識しています。

ーー学部のミッションを教えてください。

車に例えると、AIはすごく馬力がでるエンジンだと思います。ただ、すごいエンジンがあるだけではダメで、実際に生活に役立つ車として走るためには、その力をタイヤに伝えるための“ギア“が必要になります。AIも同じで、AIが持っているポテンシャルを実際に活用していくため、クライアントや社内等の業務における価値に変えるための“ギア“が必要だと思います。それはシステム化であったり、利用方法の標準化だったりすると思いますが、そのような活動をクライアントや社内に向けて行なっていくことがミッションだと思っています。

ーー浅田さんはAIソリューション学部をどのような学部にしていきたいですか?

クライアントや社内の課題があったときに、それをAIで解決するためのアイデアを考え、実行できる組織にしていきたいと考えています。そのために、「AIに対して興味があり、AIのポテンシャルを信じている人」「自ら情報収集を行える人」「試行錯誤を行うことが面白いと感じられる人」と一緒に、新しい学部を作り上げていきたいです。

ーー最後に、アピリッツ入社11年目の浅田さんが思うアピリッツの魅力やカラーを教えてください!

色々な方面へのチャレンジができる、ということが魅力の一つだと思っています。私自身、Webエンジニアという立場ではありながら、入社当時からスマホ開発やゲーム開発などに興味があり、この11年の間にスマホアプリ開発に関わる経験ができたり、間接的ながらゲーム開発の部署との連携を経験することができました。また、入社後AWSに興味をもち、そちらの方面の仕事でスキルを深めることができたことも、アピリッツのチャレンジできる風土ゆえなのかと思っています。

ーー浅田さん、素敵なお話をありがとうございました!アピリッツでは、これからの時代を担うAI開発に携わりたいという方、そして浅田さんと一緒にAIソリューション学部を作り上げていきたいという方を募集しています。少しでも興味をお持ちいただけたら、ぜひ弊社採用HPもしくはWantedlyよりご応募ください。

NotebookLMで5分完成!音声で伝える「データエンジニアアサインサービス」の魅力

0

生成AIの力ってすごいですよね。普段私はアピリッツでWebコンサルタントをしているのですが、ここ数ヶ月で社内の生成AIチャットボットを使った業務効率化やアイデアの壁打ちをする頻度が劇的に上がってきています。データ分析基盤の構築やデータ活用のご相談をいただくにはどうすればいいか、など・・・。

今回は、2025年4月にリリースしたデータエンジニアアサインサービスを記念して、以前から気になっていたNotebookLMをいじって紹介してもらうことにしました。まずは、さっそく以下の音声をお聞きください。

2025年4月にリリースした新サービス『データエンジニアアサインサービス』をNotebookLMに読み込ませた音声

1. NotebookLMとは ─ 資料特化型AIアシスタント

音声を聞いていただきながら、まずは簡単にNotebookLMについて説明しておきます。

Google が提供する NotebookLM は、ユーザーがアップロードした資料や URL を “ノート” として取り込み、要約・質疑応答・アイデア出しを一気通貫で支援する AI アシスタントです。生成系 AI(Gemini など)と同様に自由対話が可能でありながら、ソースを自分でコントロールできる ため、専門資料に即した高精度なアウトプットが得られるのが特長です。

今回は 2025 年 4 月にリリースした新サービス データエンジニアアサインサービス の LP を NotebookLM に読み込ませ、ポッドキャスト形式の紹介音声を生成しました。本記事では、その手順と活用ポイントを解説します。


2. STEP 1:LPのURLを取り込み、AIに学習させる

  1. NotebookLM のダッシュボードで New Notebook を作成。
  2. “Add sources” ボタンから、データエンジニアアサインサービスの LP URL を追加します。
  3. 追加後、NotebookLM が LP 全体を自動でインデックス化し、チャット画面右側に「Studio」ペインが出現します。

これで準備完了。NotebookLM は、アピリッツのLPを熟読済みのスーパー営業マンに早変わりしました。

NotebookLMは、Geminiなどの生成AIとは異なり、ソースを追加することで自分に合った回答を得られるという特徴があります。そのため、まずは要約したい情報をアップロードして、NotebookLMを自分色に染め上げていきましょう。

NotebookLMにデータエンジニアアサインサービスのURLをソース追加

Information

PDF やスライド、FAQ ページなど複数の資料を一括投入すれば、より深掘りした Q&A も可能になります。


3. STEP 2:6分のポッドキャスト風音声を自動生成

  1. 「Studio」ペインで “Generate(生成)” をクリック。
  2. 表示される カスタマイズフォーム に、以下のようなプロンプトを記入すると精度が向上するのでおすすめです。
  3. 最後に“Create audio” ボタンを押すと、NotebookLM が自動ナレーション付きの mp3 を生成してくれます。
データエンジニアアサインサービスを 2 人のパーソナリティが会話形式で紹介する 6 分程度の台本を作成してください。
ターゲット:社内営業メンバー
トーン:フォーマル 70% + 親しみやすさ 30%
盛り込みたいキーワード:BigQuery、データ分析基盤、データエンジニアアサイン
生成を押すだけで音声が自動的に作成開始

Information

台本生成〜音声出力まで約 5 分。コーヒーを取りに行く間に出来上がります。


4. ビジネス活用アイデア3選

今回の音声は、主に社内の営業さんに向けてサービス理解を促進してもらうために作成いたしました。また、自分自身もこの音声を聞くことでアピリッツのデータエンジニアアサインサービスについて改めて特徴を再認識することができ、LPやサービス資料の改善につなげることができそうです。

ちなみに普段のWebコンサルタントの仕事に置き換えると、新しいクライアント様のビジネス理解を深め、競合他社との比較・ポジショニングを考えることにも使えそうだと感じています。今後もNotebookLMを活用した業務改善を検討しようと思います!


  • 社内営業教育:各営業が 6 分の音声を聴くだけでサービス要点を把握。勉強会前の予習にも最適。
  • 自己リマインド:自分自身がサービスの「推しポイント」を再確認できるため、提案書や LP のブラッシュアップに直結。
  • マーケ応用:クライアント企業のサイトや競合 LP を読み込ませれば、ポジショニング分析やカスタマージャーニー整理もスピーディー。

5. まとめ&無料相談のご案内

NotebookLMを使えば、5分で音声LPを自動生成し、社内外への情報共有を一気に効率化できます。株式会社アピリッツでは、生成AIを活用したデジタルマーケティングコンサルはもちろん、UIUXデザイナー、データエンジニアを連携可能なチームとしてサービス提供しており情報共有の効率化は得意分野。マーケティング・デザイン・データ分析基盤をそれぞれ別会社に依頼しているケースは多いのではないでしょうか。

そうした事例によくある、連携ミスによる責任の所在が分からないスケジュール遅延やコミュニケーションコストの増大を、弊社アピリッツでは未然に防ぐことが可能です。60分の無料相談オンラインMTGを受け付けておりますので、ぜひ一度課題についてご相談ください。

【2025上半期】アピスピ注目記事まとめ!

0

早いもので、2025年ももう半分を過ぎましたね!
というわけで、アピスピ2025上半期注目された記事をご紹介します!

~生成AI、ChatGPT編~

ここ最近で、ChatGPTの勢いが急速に発達しましたね。

実はアピスピでも、以前からAIに関する社員記事を多数投稿しているんです!

興味深い記事もたくさん掲載されているのでぜひチェックしてみてください!

「ChatGPTをAPIサーバー化しつつ恋愛したかった件」。気になるタイトルですね・・!

ChatGPTをAPIサーバー化しつつ恋愛したかった件

GitHub Copilot 活用法【とあるエンジニアの実装例】

ソーシャルゲームのデータ分析にGeminiは使えるのか?実験で効果を検証

~コミュニケーション編~

AIが急速に発展していく中で今後ますます求められるのが、クライアントとの関係構築や折衝等のコミュニケーション能力。

アピスピでは、「伝える」というキーワードで、下記のような社員記事も投稿しています。

『伝わる技術』の紹介

デザインの言語化を振り返る

~資格、勉強法編~

今年もAWS Certifications Engineerの表彰者が発表されましたね!

アピリッツからは、なんと10名のメンバーが表彰されました!受賞された皆さん、おめでとうございます^^

AWS以外にアピリッツでは様々な資格に挑戦したメンバーの合格体験記や勉強方法についても紹介していますので、これから勉強を始める方はぜひ参考にしてみてください!

AWSの資格全制覇って、いったいどんな勉強をしていたんだろう・・
勉強のモチベーションは、やっぱり総額100万円の報奨金が支給されるAPN表彰手当かな・・??

新卒1年目のエンジニア必見!AWS資格取得のコツはズバリ!:2024 Japan AWS All Certifications Engineers 受賞者インタビュー

【IPA資格】エンジニアじゃなくても情報処理技術者試験って役立つの?

【合格体験記】Tableau Desktop Specialistで「データ思考」を習得する方法

新卒1年目におけるGoogleアナリティクスの学び方

Webアクセシビリティ勉強会①:輪読会編

~キャリア編~

アピスピでは、技術面だけでなく、社内で活躍するメンバーにフォーカスを当てたインタビュー記事も掲載してきました。

一つの色で表現することができない多様なアピリッツメンバーのインタビュー記事もぜひご覧ください。

【女性テックリードにインタビュー】~昨日の自分より一歩前へ!テックリードが語る成長とチームを導く秘訣~

入社4年目にして3つの職種を経験!?アピリッツでのキャリアチェンジとは?

「主体的に動いて、お互いを補完しあうチームにしたい」 佐藤香絵インタビュー

「5年後、10年後のキャリアだけじゃなく、30年後も考えよう」メディアサービス部 部長 鈴木利夫 インタビュー

終わりに

改めまして、いつもアピスピをご覧いただきありがとうございます。^^

そして何よりも、業務で忙しい中、インタビューや記事の執筆にご協力いただいているアピリッツメンバーの皆様に、この場を借りてお礼申し上げます!いつもありがとうございます!!

下半期も、アピリッツメンバー全員でアピリッツの魅力を多方面から発信してまいりますので、今後ともどうぞよろしくお願いいたします!

AI時代に生き残るデジタル人材を!新卒入社3か月後レポート

0

サクラステージのカフェスペースで初めて開催された入社式から早3か月。入社式を終えて、早速人事からのオリエンテーションやビジネスマナー研修、各セグメントに分かれた研修もしながら、実際に業務にも入っている新卒メンバー、総勢67名のその後についてレポートしたいと思います!

「自ら考え、伝える。」AI時代の人材育成

ーー入社から3か月経ってみてどうですか??

自分が所属するSO学部(Webセグメント/デジタルサービス・オファリング学部)では、毎週水曜日に新卒先輩後輩会、金曜日に部会があって、自分が最近学んだことを発表する機会があるので、そのプレゼンの準備が大変でした!AIに興味があるのでAI関連の話や、趣味のプラネタリウムについて発表しました!

今は研修も終えて、実際に案件に入っています。規模の大きい案件のテストを担当しているのですが、1個上の先輩がメンターとしてついてくれているので安心感があります。

私が所属するゲームセグメントの研修では、毎年1個上の先輩方が企画してくださった内容を行っています。今年は、企画書の書き方やGitの使い方や、コンセンサスゲームを通したレクリエーション形式のプログラム等を行いました。他プロジェクトのゲームについて各グループがレポートを作って発表するというプログラムもあったのですが、部長陣の前で発表するのでとても緊張しました。笑

ーーWebもGameも、どちらも受け身ではなく、学んだことをアウトプットする機会が多いことが印象的でした。キャッチアップの機会が多いからこそ、知識の定着が早く、より実践的なスキルが身に着けるわけですね!AIがどんどん普及していく世の中で、自分で考えて行動することが、今後ますます重要になっていきますね。

ーー先日アピスピでも取り上げた懇親会の準備や当日の運営にも参加されて、盛りだくさんな3か月だったのではないでしょうか。全社員向けの懇親会以外で社員同士の交流はありますか??

・同期同士でイベントを企画して、業務後に集まったりしています!この前はランチ会や飲み会を行いました!
・同期同士で業務後にサクラステージにある運動室で卓球をしました!
・自分が所属するプロジェクト内で懇親会があって、部署のことや業務のことなど、色々なお話を聞くことができて盛り上がりました!
・休みの日に先輩たちとディズニーランドに行きました!笑

ーー休みの日に先輩とディズニーランド・・!? 先輩同期関係なく、皆さん自分から積極的にメンバーと交流されているようで、これからのアピリッツの文化形成を担うメンバーとして心強いなと感じます。^^

ご応募お待ちしております!

4月の入社式は緊張した表情だった新卒の皆さん。3か月経った今では、徐々に会社にも慣れて頼もしい表情に変わっていました!

アピリッツでは、「自ら考え、行動する」デジタル人材の育成を目指しています。

少しでもご興味をお持ちいただけたら、ぜひ弊社採用HPもしくはWantedlyをご覧ください。

【合格体験記】Tableau Desktop Specialistで「データ思考」を習得する方法

0

Webコンサルタントの田畑です。

先日、Tableau Desktop Specialist という資格を取得しました。
データ活用を推進する上で重要な資格ですので、その価値や合格ポイントをご紹介します。

Tableau Desktop Specialist とは

Tableauの基本的なスキルと知識を証明できる公式認定資格です。

Tableauは、BIツール(ビジネスインテリジェンスツール)の一種であり、データの可視化と分析に特化したソフトウェアです。
Tableauを使用すると、企業が持つ膨大なデータを直感的なグラフやチャート、ダッシュボードとして視覚的に表現できます。
データのパターン、トレンド、異常などを素早く発見し、ビジネス上の意思決定に役立てることが可能です。

Tableau Desktop Specialist では、単にTableauの操作方法を知っているだけでなく、データを正しく理解し、効果的に可視化する能力、そしてその結果を適切に解釈するためのデータ分析の基礎的な思考力が問われます。

なぜTableau Desktop Specialist が重要か

日頃からデータに基づいた意思決定を組織に浸透させるべく活動していますが、Tableau Desktop Specialist は単なる操作スキルの証明ではないと考えています。

ツールを使いこなす以前に、データを「どう見るか」「どう解釈するか」というデータ思考を身につけること。
まさにこのデータ思考の基礎を体系的に習得できるのが、Tableau Desktop Specialist です。

データを見る力

どのようなデータがどのように整理されているか、データの粒度や構造を正確に理解する力と、分析に必要なデータを見抜く力を養えます。

データを整理する力

複雑なデータを分析しやすい形に加工・変換する、データの「準備」段階の重要性を深く理解できます。
具体的にはデータソースの接続から、結合、ユニオン、ピボットといった前処理、そして計算フィールドでの加工を理解できます。

データ思考

なぜこのグラフを選ぶのか、なぜこのフィルターが必要なのか。
単なるツールの使い方ではなく、データから本質的なインサイトを引き出すために、どのような手順で、どのような思考を持って分析を進めるべきかという、データ分析の「型」が身につきます。
「問い」を立て、データで検証するプロセスに直結します。

Tableau Desktop Specialist の試験概要

対象者

公式試験ガイドによると、Tableau Desktop の基礎的な知識をもとにして、使用経験が3ヶ月以上あることが推奨されています。
ただ私の場合は2ヶ月ほどの使用経験で合格しましたので、あくまで目安と捉えてよいでしょう。

出題形式

  • 択一・複数回答のみで実技問題なし
  • 試験時間:60分
  • 問題数:45問
  • 合格点数は750/1000点で、スケールドスコアで採点される

受験方法

オンライン受験も可能ですが、試験前の環境チェックや試験中の監督体制が大変厳しいため、試験センターでの受験をおすすめします。

▼ ちなみに今回は、アピリッツからすぐのこちらの試験センターで受験しました。
渋谷テストセンター

受験費用

100ドル

対応言語

英語・日本語・中国語

合格までの学習ロードマップ

① 基礎学習から始める

模擬試験を解く

▼ まずは以下の模擬試験を解いて、満点を取れるまで何度も繰り返し解き、完璧にしました。
【Tableau Desktop Specialist】最短で合格するための模擬試験問題集【2024年最新版】

ただし問題を解くだけではなく、「なぜこの答えなのか?」「不正解の問題はどこが誤りなのか?」「この問題では何の理解を求められているのか」を調べ、実際にTableauを操作しながら血肉化することがポイントです。

▼ 他にも以下の問題を解きました。

各模試・問題集の正答率をまとめたクロス集計表

見つけた過去問や問題集は全て解く気概で、試験ギリギリまで粘りました。
Kindleでも問題集を見つけましたが、時間切れで解き切ることができませんでした。

② 試験ガイドの各項目をTableauで操作する

公式試験ガイドの「試験内容」に記載されている各項目を理解度チェックリストに見立てて、理解が曖昧な項目がないか一つずつ潰しました。
曖昧な項目はTableau Desktop を操作して理解します。

キャプチャを撮ってFigJamにまとめながら総なめにしましたが、そのまま試験前に見直すことでムラなく全体網羅できました。
Tableau Desktop Specialist に限らず、おすすめの学習方法です。

Tableau Desktop Specialistの学習内容をまとめたFigJamのキャプチャ

③ Udemyの動画を観て実際に操作する

上記2つ学習と並行して、食事の合間などにUdemyでの動画学習も行いました。
試験対策をしながら基礎スキルを身につける! ゼロからのTableau Desktop Specialist試験対策講座

ただ最初から最後まで全てしっかり観たわけではなく、流し見しつつ、理解の浅い操作や機能はじっくりTableau Desktop を操作する、というやり方をしました。

学習時間

試験1ヶ月前から学習開始しました。
平日は1-2時間、休日は1-6時間の間でまちまち。試験直前の土日は1日10時間ほど学習しました。

試験結果

986/1000点で合格しました。
試験を終了するとすぐに合否が分かるため、小躍りしたい気持ちを抑えて静かに退室しました。
残り14点、何が不正解だったのか気になります。

まとめ

Tableau Desktop Specialistは、Tableauスキルを証明する最初のステップです。
今後は、さらに専門的な知識が問われる “Tableau Certified Data Analyst” や、Data Saberプログラムを目指し、データ分析のプロフェッショナルとしての継続的な学習と成長を続けてまいります。

個人がTableau Desktop Specialist の資格を取得し、データ活用の力を高めることは、決して自分だけのメリットに留まりません。
その力が組織全体のデータリテラシー向上や、データに基づいた意思決定文化の醸成につながり、ひいてはデータ駆動型社会の実現に貢献できると信じています。
皆様のデータ活用・資格取得への挑戦を、心から応援しています。

アピリッツの「データエンジニアアサインサービス」のご紹介

アピリッツでは、データ基盤設計やデータ分析、BI開発に関して壁打ちできる、60分の無料相談/壁打ち会を実施しております。
データエンジニアアサインサービス

「データドリブン組織を目指したいものの、何から始めればいいのか分からない」
「現場がうまく回っていない」
「対応できる人材が社内にいない」
などのお悩みがございましたら、データ活用の実績・ノウハウが豊富なアピリッツにお気軽にご相談ください。

アピリッツのデータエンジニアアサインサービス
https://appirits.com/service/dataengineer_assign/

データエンジニアアサインサービス

田畑有佳子(タバタ ユカコ)
デジタルマーケティング・オファリング学部、デジマケ支援を得意としたWebコンサルタントです。
どこに行っても姐さんと呼ばれます。
座右の銘は「たくさん食べてたくさん飲んでどこでも行くわよ~」

【女性テックリードにインタビュー】~昨日の自分より一歩前へ!テックリードが語る成長とチームを導く秘訣~

0

今回はテックリードとしてご活躍されている保坂さんにインタビュー!

入社してからテックリードになるまでの道のりや、チームをリードする上で大切にしていることなどを聞いてきました!(2025年5月取材)

社員紹介

モチベーションは「成長したい」という気持ち!

–保坂さんは中途でアピリッツに入社されたんですよね。前職ではどんなことをされていましたか?

前職ではWebデザインやコーディング、Webディレクターなど浅く広くやっていました。

入社して3年目ぐらいのタイミングで転職を考えはじめ、Webの仕事の中でコーディングが一番楽しく、もっとコードを書く仕事に特化したいと思いエンジニアを目指し始めました。

現在は、Webエンジニアとして子供のための観光情報サイトや、医療系の人材紹介サービスなどにも携わっています。

–テックリードになるまでに、意識したことや大事にしてきたことはありますか?

周りの人が優秀な方ばかりなので、少しでも追いつくために「昨日の自分より成長する」ことを常に意識していました。

目の前の業務をしっかりとこなすことはもちろんですが、通勤時間やプライベートの決まった時間を日々勉強に充てていました。

また、ミーティング中には、勉強になると感じた先輩方の動きをメモして、自分が同じ立場になったときに活かせるよう心掛けていました。

最初はテックリードを目指していたわけではないのですが、

「頑張ろう!」という意識を持ち続けていたらテックリードのお話をいただくことができました。

–テックリードに決まったときの感想や不安、またその不安を乗り越えるために行ったことはありますか?

最初は自分に務まるのか不安でした。テックリードに決まったのが今年の4月なので、正直なところ不安が尽きることはなく、まだ克服できたわけではないです。。

特に、前任の方が非常に優秀な方だったので、その役割を自分がきちんと果たせるのかというプレッシャーはとても感じています。

ただ、困ったときには周囲の方々が支えてくださる環境のため、自分だけで全てを抱え込まず、手が回らない部分は他のメンバーに助けをお願いしながら進めています。

その上で、自分の立場として果たすべき役割にしっかりと向き合い、できる限り最善を尽くすことを心掛けています!

テックリードって何してるの?

–実際、テックリードって何をしているんですか?保坂さんが思うテックリードの役割と、必要な能力を教えてください!

案件の代表としてお客さんと調整をしていく役割を担っています。
お客さんの要望を踏まえた上でのシステムの提案や、チームのメンバーに仕事を振ったり、コードレビューなどをしています。
また、エンジニアの領域では分からないことは、部署を超えてお力添えのご依頼をしています。
自分としても勉強になることが多く、いつも大変助かっています!

必要な能力としては、今がどういう状況かを正しく判断して、それを踏まえてまわりにどうアプローチしていくか考える力が重要だと感じています。

–仕事をする上で意識していることや、成長を感じたエピソードを教えてください!

何事に対してもさらにもう一歩踏み込んで考えることを意識し、細かいことでもメモを取るようにしています。

うまくいかなかった時は、なぜ失敗したか・今後どうしていくべきかを考えて、文章に書き起こし、PDCAを回すようにしています。

このことで、前までは上手くいかなかったことが改善したときは、テックリードとして頑張ってきて良かったなと思います。

入社した時は自分が戦力になれるか不安でしたが、テックリードを引き継ぐことになった時は、尊敬する先輩方に一歩近づけたのではないかなと、自分の成長を感じました。

チームを導く秘訣とは??

–チームをリードする上で大切にしていることはありますか?

チームのメンバーがどんなタイプなのかを見極め、その人にとって最適なやり方を判断することを大切にしています。

例えば、メンバーとのコミュニケーションにおいて、テキストベースでやり取りするのが良いのか、直接会話するのが良いのか、その人とその時の状況に合わせてコミュニケーションの方法を変えています。

また、その人の得意分野を、チーム全体の業務効率や成果にどのように活かすか、さらに個々人の成長にもつながる形で総合的な良い影響をもたらす方法を考えています。

ーメンバーそれぞれに合わせた対応を心がけているのですね!

ちなみに、テックリードに就任したらポストインセンティブ(就任報酬)をもらえますが、もらったら何に使いますか?

ペンギンが大好きなので、和歌山の動物園にいるエンペラーペンギンを見に行きたいです。

実はもう見に行ったことがあるのですが、何回見ても良いので、是非みなさんにも見に行ってほしいです!!

–最後に今後の目標と、これからテックリードを目指す人に伝えたいことや

アドバイスをお願いします!

目標というほどのものではないですが、今自分が苦手としていることが得意になっていたらいいなと思っています。

個人的にはとにかく実践が一番学べると思っているので、テックリードを目指すならそういった経験ができる場に自分の身を置くと良いと思います。

入社したばかりの場合は、実務でリーダー的な役割を担うのは立場上難しいかもしれませんが、例えば自分で同年代限定の勉強会を企画してみると、自分が実質その勉強会チームのリーダーとしての役割を担うことができます。

こうした形で「何か自分にできることはないか?」と常に模索する意識を持つと良いと思います。

もし積極的に動く自信がまだ持てないのであれば、まずは継続的に勉強を続けてみるのも良いと思います。

学びを深めるうちに自信がつき、少しずつ積極的に行動できるようになると思います。

–保坂さん本日はありがとうございました!今後のご活躍を心から応援しています!

テックリードは自分自身の成長にもつながる貴重な経験です。

もちろん、責任も大きく大変な場面もありますが、その分成果を上げたときの達成感や、喜びは何にも代えがたいものになります。

自分自身のスキルや視野も大きく広がっていくので、挑戦する価値は十分にあります。皆さんもぜひ、テックリードを目指してみませんか?

懇親会も企画から運営まで一気通貫!?アピリッツの懇親会に潜入してみた!

0

ボードゲームで社内交流・・!?

アピリッツでは、社員同士の交流を深めるため、毎月1回社内イベントを企画しています。

今回のアピスピでは、5月に開催された懇親会の様子についてレポートしたいと思います!

当日は、お酒やジュース、軽食を取りながら、部署や年齢・年次を超えた多様な交流が見られました。^^

そして今回の懇親会では、懇親会委員のメンバーがボードゲームイベントを企画!

最初は、普段関わらない人との交流にやや緊張気味の様子でしたが、ゲームが始まるとそれまでのぎこちない雰囲気が噓のよう・・!

<参加者の声>

先輩方が席をまわってくださり、ボードゲームを交えて親睦を深めることができました!楽しかったです!

他部署の方々や普段話さない方と、業務のお話やそれぞれの状況などをお話しすることができました!
意外と共通の趣味が多くて、楽しく会話させていただきました。

部署や年次を問わず、ランダムなメンバーが集まってゲームをしていたので、色々なお話ができました!

ゲームをきっかけに、業務の話や趣味の話などへと広がり、参加者同士の距離もぐっと縮まったようですね。^^

文化の担い手は若手メンバー!

毎月実施しているこの懇親会は、なんと4月に入社した新卒社員が企画・運営してくれているんです!(改めて新卒社員の皆さんいつもありがとうございます!)

今回の懇親会は、今年入社した25新卒のメンバーが初めて企画・運営を行ったイベントとなりました。

そんな25新卒の懇親会メンバーに今回の企画の思いや感想について聞いてきました!

ーー今回の懇親会で、意識したことを教えてください。

初めて話すメンバーとも打ち解けやすい雰囲気作りを意識しました!
そのためにも、参加してくれたメンバーが楽しめるような企画を、運営メンバー、一人ひとりが意見を出しあって、皆で今回の懇親会を作り上げるということも意識していました。

ーー今回、懇親会の運営を担当してみていかがでしたか?

いつの間にか、別のテーブルでポーカーをしているメンバーや、共通の趣味で盛り上がっているメンバーがいて、
社員同士の交流を深めるきっかけづくりができたんじゃないかと思います!

初めての懇親会運営で準備から当日の運営まで大変でしたが、運営を通して自分自身もメンバーとの親睦を深めることができたと感じました!

ーー懇親会大成功でしたね!改めて、懇親会委員の皆さん、素敵な企画をありがとうございました!次回も楽しみにしています♪

共につくり、共に生きるスクラム型の組織づくり

アピリッツでは、人と事業が”継続して成長し助け合える”スクラム型を目指したコミュニケーションを大切にしています。

そしてその文化形成にメンバー自信が主体となって様々な取り組みを行っています!

また、アピスピ編集部が所属する我々CCO室でも、毎月開催している懇親会で生まれた輪が、仕事へも繋がるような工夫を考えてまいりますので、

このような我々のカルチャーに共感を持っていただける方は、ぜひ一度選考にお進みください。

ご応募お待ちしております!

  

Wantedlyで採用活動を行っています!

0

皆さん!アピリッツがWantedlyで採用活動を行っていることはご存じですか??

採用HPだけではお伝えしきれなかった、私たちが大切にしていること、文化、社員の仕事に対する思いなどを、Wantedlyを通してよりリアルにお届けしています。

例えばーー

アピリッツが大切にしている価値観って?

アピリッツの社名の由来は?

ーーその疑問、Wantedlyを読めば解決します!ぜひチェックしてみてください!

・アピリッツが、どのような思いをもって事業を行っているのか

・アピリッツでは、具体的にどのようなポジションにチャレンジできるのか

“カジュアル面談”で会社の理解を深められる!まずはフランクにお話しませんか?

私たちアピリッツは、候補者様のこれまでのご経験や今後やってみたいことをお聞かせいただくことを、採用活動の中で重要視しています。

その中で、Wantedlyでは、皆さんにいきなり選考へ「応募」することを求めるのではなく、まずは弊社について「知っていただく」相互理解の場として、選考とは関係のないカジュアル面談を実施しています。

例えばーー

・アピリッツの事業や仕事内容に興味はあるが、選考に進むか迷われている方

・転職活動はまだ具体的に考えていないが、今後のために情報収集をされたい方

・社内の雰囲気を肌で感じてみたい方 etc..

上記に当てはまる方は、ぜひ一度Wantedlyで「まずは話を聞いてみたい」とご連絡ください!

繋がりが成長のカギ!アピリッツの中途ランチ会に参加してみた!

0

今回は、中途ランチ会に潜入取材!「アピリッツに入社を決めた決め手は?」「入社してからのギャップは?」等、中途入社メンバーに気になるあれこれを聞いてきました!(2025年4月取材)

アピリッツでは、中途入社メンバー同士の交流のきっかけ作りとして、中途ランチ会を定期的に開催しています。

今回は、そんな中途ランチ会の実際の様子をご紹介します!

「中途ランチ会ってどういう取り組み?」と感じられた方は、ぜひこちらの記事もご覧ください!

いざ中途ランチ会へ!

ランチ会メンバー ※50音順
・塩﨑 敬祐(シオザキ ケイスケ)さん ゲームエンジニア
・末田 雄之(スエダ ユウシ)さん Webコンサルタント
・髙木 ひとみ(タカギ ヒトミ)さん Webエンジニア
・西山 葵(ニシヤマ アオイ)さん Webデザイナー
・畠山 葵(ハタケヤマ アオイ)さん ゲームプランナー

ーー前職ではどのようなお仕事をされていたのですか?

前職では、SESの営業をやっていました!ただ、お客様のコストに対して最適なエンジニアさんを提案しても、エンジニアさんの意向でなかなか決めきれないということがあって、より自分の力でお客様の課題を解決したいと思い、Webコンサルタントをメインで転職活動をしていました!

私は、前職ではデザイン系には触れておらず、主にPHPやCMS系を扱うエンジニアとして働いていました!今は前職の知見を活かしつつ、Webデザイナーとして働いています。

私はアパレルで販売員をしていました。元々学生の頃からエンジニアのお仕事に興味があって、アピリッツではWebエンジニアとして働いています。

前職はSI事業の会社で、エンジニアとして働いていました。元々ゲームが好きで、アピリッツのゲームをプレイしていたということもあり、今はアピリッツでゲームエンジニアとして働いています。

私は前職でゲームの攻略サイトを制作する会社で働いていました。今は前職の知見を活かして、よりユーザーさんに情報が伝わりやすくなるように、改善点を探しながら、お知らせやSNSなどを制作・投稿しています。

左から、ゲームプランナーの畠山さん、Webデザイナーの西山さん、Webエンジニアの髙木さん

入社の決め手は、面接・・?!

ーー皆さん今と同じ業界ご出身だったり、はたまた未経験でご入社されたりと、多様なご経歴をお持ちですね!ちなみに、アピリッツに入社を決めた理由は何でしたか?

大学生の頃独学でプログラミングを勉強していたのですが、転職を考え始めた時に、「やっぱりエンジニアに挑戦したい!」と思いエンジニアメインで転職活動をしていました。その中でも、アピリッツは大手の企業様が取引先に多いので、エンジニアとして成長できそうだと感じたことが入社の決め手です。

私は、面接でお話を聞いた時にスキルアップがとても明確にされていたことが決め手になりました。入社の前からアピリッツでどうやってスキルアップができるのか、どんなキャリアを築けるのかがイメージしやすかったです。

私も面接の際のエピソードになるのですが、アピリッツの面接で自分のやりたいことをお話しした時に、ちょうど自分のキャリアとぴったりのポジションを面接官の方々に提示してもらって、「ここだ!」と感じ入社を決めました。

私も面接のお話になるのですが・・笑 
アピリッツの面接で自分の好きなゲームについてお話しした時、面接官の方々とそのゲームのお話で盛り上がったのですが、その時の会話から「これは信用できるオタクだな~!分かってるな~~!」と感じました。笑 
その時に、「この会社で働きたい!」と思ったんです。

ーー皆さん、面接がかなり印象に残っておられるのですね。入社してから今までどのような業務に携わっていらっしゃるのでしょうか?

今は既存のお客様に対して課題解決のプレゼンテーション・追加提案を行うための準備をしています。分からないこともありますが、メンターの方々に時間を作ってもらって相談しながら進めています。

チームの方々に教えてもらいながらではありますが、ワイヤーフレームの制作からお客様との折衝、実装までWebサイトの制作全般の業務を担当しています!

今はRuby on Railsの勉強をしつつ、システム検証班の業務をお手伝いしています。RubyやAWSに今まで触れたことがなかったので覚えることが多くて大変ですが、今までユーザーとしてプレイしていたゲームを、今度は作る側として関われることがとても貴重な経験だと日々感じています。

左から、ゲームエンジニアの塩﨑さん、Webコンサルタントの末田さん

入社してからのギャップー黙々と作業しているかと思いきや・・?

ーーぶっちゃけ入社してギャップを感じたことはありましたか??

エンジニアが社員の半数を占めている(※)ので、黙々と作業している人が多いイメージでしたが、入ってみるとMTGや雑談が多くて、コミュニケーションが活発にされて良いギャップでした!

※参照:データで見るアピリッツ

自分はコンサルタントですが、エンジニアさんの席まで行って話をしに行ったりしているので、髙木さんの言う通り皆さんあちらこちら動き回っている印象はありますね。笑 
4月に入社された新卒の方とも話すことがあるのですが、新卒の方々に負けないように毎日頑張っています!!

私が所属するチームにも新卒の方がいらっしゃるので、MTGでよく話しますね。
他にも2週に1回チームメンバーでランチ会があるので、私もコミュニケーションは活発な印象があります。
ちなみに、毎月開催されている懇親会にもいつも参加しています!笑

私もお昼は定期的にプランナーチームの方々でランチに出かけています。
ちなみに、前職では今回のような中途入社同士のランチ会はなかったので、いい取り組みだな~と感じています。

ーー新卒中途問わず、メンバー同士のコミュニケーションも盛んなのですね!最後に、皆さんの趣味を教えてください!!

私はネットフリックスで韓国ドラマを見たり、フットサルをやっています!
フットサルは大学生の頃からやっていて、最近はリフティングを10回達成できるように練習中です!

ゲームが好きなので、休みがあればゲームのライブやオタク活動をしています!!この前のお休みも好きなゲームのライブに参加してきました!学生時代はバトントワリングをやっていました!

自分もゲームが好きなので、休みの日もスマートフォン向けのゲームを中心に遊んでいます。
学生の頃は部活やサークルで、バドミントンやスカッシュをやっていました!

趣味が野球とバイクなので、休みの日は広島カープの試合を観戦しに行ったり、自分でバイクをカスタムしてツーリングに出かけています。高校時代は野球部に入ってました!

新しいことにチャレンジすることが好きで、この前は初めて競馬場に行ってきました!(負けました!笑)
学生時代は映画製作のサークルに入っていて、動画編集なんかもしていました。今でも映画は見に行っています。

ーー皆さん、ありがとうございました!改めまして、アピリッツへようこそ!これからよろしくお願いいたします!

意外とアクティブな趣味をお持ちの皆さん!これから、どうぞよろしくお願いいたします!!

終わりに

アピリッツの中途ランチ会はいかがでしたか?

アピリッツには、多様なバックグラウンドを持つメンバーが集まり、互いに刺激し合いながら成長できる環境があります。

今回の記事を読んで少しでもアピリッツに興味を持たれた方、ぜひ弊社の選考にお進みください。

選考の中で、皆さんのやりたいこと・挑戦してみたいことについてお話ししましょう!

皆様のご応募お待ちしております。

栢森 結(カヤモリ ユイ)
CCO室 採用業務・採用広報を担当
学生時代はハンドボール部と吹奏楽部に所属
当時は、マラソンとシャトルランが得意でした。現在はコジコジの推し活中。

MCP (Model Context Protocol) とAIエージェントによるゲームデータ分析の可能性

0

2025GWはパウンドケーキを焼きました。ファンカルチャー・デザイン学部 中村です。

前回の記事ではLLMを利用したAIエージェントによるデータ分析を試すためにダミーデータを用意して、いくつかのプロンプトを指示してデータ分析を行いました。記事中でも触れましたが、AIエージェントにアップロードするcsvファイルにはサイズ制限が存在します。実際に運営しているタイトルのデータを分析しようとしたときにはそのサイズ制限がネックになってしまうでしょう。そのため、AIエージェントから直接データベースに対してクエリを実行してもらう必要があります。

しかしながら、ChatGPTやClaude、Geminiに代表されるようなAIエージェントがデータベースに接続するとはどういうことでしょうか。Model Context Protocol (MCP)という仕組みを利用して、実際に postgres へ接続する方法を見ていきましょう。

Model Context Protocol (MCP)

2024年11月に Anthropic から MCP が発表されました。以下に、Anthropicの発表から引用します(Google翻訳)

本日、私たちはモデルコンテキストプロトコル(MCP)をオープンソース化します。これは、コンテンツリポジトリ、ビジネスツール、開発環境など、データが存在するシステムにAIアシスタントを接続するための新しい標準です。その目的は、最先端のモデルがより優れた、より適切な応答を生成できるようにすることです。

https://www.anthropic.com/news/model-context-protocol

問いかけることで様々な応答を返してくれるAIエージェントは、その発展によって精度が向上し幅広い分野での利用が想定されます。このとき、AIエージェントとデータが切り離されていることが利用拡大の障壁となります。そこで、AIエージェントとデータソースを接続するための仕組みがMCPなのです。

仕組み

MCPの仕様やGet Startedはこちらに記載されています。構成の画像もお借りしています。

https://modelcontextprotocol.io/introduction

AIエージェント(Host With MCP Client)から何らかのデータ(Local Data Source)へ接続する場合、その間にMCP Serverを起動します。これによってAIエージェントはこのMCP Serverを経由してデータを取得可能となります。同じく何らかのWebサービスへ接続させたい場合も、専用のMCP Serverを起動する必要があります。このように、AIエージェントとMCP Server間の通信で用いられているデータ構造がMCP Protocolです。

MCP Serverは接続するデータソースやWebサービスに応じた機能が求められます。すでに Google Drive や Slack、Githubなど多くのWebサービスに対応したMCP Serverが開発されており、一覧として提供されています。つまり、例えばAIエージェントに対してGithubのコミットログを参照させ、特定の情報を抽出したり、レポートを作成したりといったことが可能になります。独自のニーズに合わせてカスタムしたMCP Serverを開発することも可能です。

MCP Clientを手軽に試すのであれば、Claude Desktopが最適です。開発者設定から構成をONにし、設定ファイルに適宜利用したいMCPサーバーを指定するだけで済みます。

しかしながら、私のFree Plan環境ではおおよそ5回程度の試行でメッセージ上限に到達してしまうため、なかなか実験が捗りませんでした。

いよいよ有料プランへ課金すべきかと考えましたが、せっかくなので Build With Claude からAPI Keyを取得し、Streamlitでやりとりしてみようと思います。

Streamlit

Streamlit はデータ分析を手軽にWebアプリとすることを目的に開発されました。Pythonコードを記述するだけでフロントエンドを考える必要がなく、簡単にデータの可視化や分析ができるフレームワークです。そのため生成AIを利用する場面でも非常に簡単にチャットツールが作れてしまいます。

まず、単にClaudeとやり取りするだけのチャットWebアプリを実装してみます。Python環境は uv で用意しました。

$ uv init
$ uv add anthropic streamlit 
import anthropic
import streamlit as st

API_KEY = 'sk-xxxxxxxxxx'
AI_MODEL = 'claude-3-7-sonnet-20250219'

st.title("MCP App")

client = anthropic.Client(api_key=API_KEY)
if "messages" not in st.session_state:
    st.session_state.messages = []
for message in st.session_state.messages:
    st.chat_message(message["role"]).markdown(message["content"])

if prompt := st.chat_input("May I help you?"):
    st.session_state.messages.append({"role": "user", "content": prompt})
    st.chat_message("user").markdown(prompt)
    with st.spinner("Thinking..."):
        response = client.messages.create(
            messages=st.session_state.messages,
            model=AI_MODEL,
            temperature=0.7,
            max_tokens=1024,
        )
        st.session_state.messages.append({"role": "assistant", "content": response.content[0].text})
        st.chat_message("assistant").markdown(response.content[0].text)
        st.rerun()

uvanthropicstreamlit をプロジェクトに追加し、上記コードを記述します。その後、以下のstreamlitコマンドを実行します。

$ streamlit run streamlit-app.py
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501

以上のようにClaudeと会話するチャットボットWebアプリが完成しました。その他、履歴の表示やモデルの選択なども追加することもできますが、単純に会話するだけならこれだけでも十分です。

それではこれをもとにしてMCP ServerとやりとりするAIエージェントを作成しましょう。

MCPエージェント

とは言え、すでに先人たちがStreamlitで利用できる mcp-agent を開発しているので利用させていただきます。まず uv からプロジェクトへ追加します。

$ uv add "mcp-agent"

以下のようにMCPエージェントが参照するMCPサーバーをconfigファイルに記載します。

$schema: schema/mcp-agent.config.schema.json

execution_engine: asyncio
logger:
  type: console
  level: debug
  batch_size: 100
  flush_interval: 2

mcp:
  servers:
    postgres:
      command: npx
      args:
        - -y
        - "@modelcontextprotocol/server-postgres" 
        - postgresql://root:password@localhost:5432/game
# openai:
#   # Secrets (API keys, etc.) are stored in an mcp_agent.secrets.yaml file which can be gitignored
#   default_model: gpt-4o
anthropic:
  default_model: claude-3-7-sonnet-20250219

今回はpostgresデータベースのデータを参照するので@modelcontextprotocol/server-postgres を利用します。server-postgresnpx で動作するため事前にインストールしておくと良いでしょう。オプションでは単にローカルのDockerで起動したpostgresのエンドポイントを指定しています。

streamlit から mcp-agent を利用するために、以下のようなエージェントを記述します。

async def streamlit_input_callback(request: HumanInputRequest) -> HumanInputResponse:
    return HumanInputResponse(request_id=request.request_id, response="Approved.")

async def get_agent():
    """
    Get existing agent from session state or create a new one
    """
    if "agent" not in st.session_state:
        mcp_agent = Agent(
            name="MCP Agent",
            instruction="*** System Propmt ***",
            server_names=["postgres"],
            connection_persistence=False,
            human_input_callback=streamlit_input_callback,
        )
        await mcp_agent.initialize()
        st.session_state["agent"] = mcp_agent
    if "llm" not in st.session_state:
        st.session_state["llm"] = await st.session_state["agent"].attach_llm(AnthropicAugmentedLLM)
    return st.session_state["agent"], st.session_state["llm"]

MCP ClientはエージェントからMCP Serverへの接続を許可するために認証が必要です。streamlit_input_callback でその承認を行っています。エージェントに関しては mcp-agent で用意されたクラスをシステムプロンプトとともに初期化することで生成できます。また、生成されたエージェントには AnthropicAugmentedLLM でClaudeを利用するよう設定しています。 さらに以下のように mcp-agentのAppを初期化します。

app = MCPApp(name="MCPChat", human_input_callback=streamlit_input_callback)

async def main():
    await app.initialize()
    # streamlit code below
    
if __name__ == "__main__":
    asyncio.run(main())

MCPAppは初期化を async/await を用いるため、streamlitのコードを記述する前に済ませておく必要があります。そのために asyncio.run で初期化処理を実行しつつstreamlitコードを記述すべきです。MCP Agentとチャットベースでやり取りする streamlit コードは以下のとおりです。

agent, llm = await get_agent()

if prompt := st.chat_input("Type your message here..."):
    st.session_state["messages"].append({"role": "user", "content": prompt})
    st.chat_message("user").write(prompt)
    with st.spinner("Thinking...", show_time=True):
        request_params = llm.default_request_params
        request_params.maxTokens = 8192
        response = await llm.generate(
            message=prompt,
            request_params=request_params,
        )
        for msg in response:
            st.session_state["messages"].append({"role": "assistant", "message": msg})
        st.rerun()

ここでは mcp-agentで生成された llm に対してユーザーのプロンプトを送信しています。MCP Serverとの通信中、エージェントは内部で複数の処理を実行しており、その結果として複数のメッセージがまとめてレスポンスとして返されます。

以上でmcp-agentを利用してMCP Serverとのやり取りができるようになります。

postgresデータベースと接続する

仮データ

MCPエージェントがpostgresデータベースへ接続できているのか確認するための仮データを用意します。構造は前回の記事と同じく以下のようにしています。

codenamestart_atend_atdetail
event_001大冒険!! スキー大会イベント2024-01-102024-01-24草属性キャラクターの素早さアップ, 闇属性キャラクターの防御力アップ
event_masters
idnameregistered_atrankdevicecountry_code
1杏奈2024-01-01 03:57:2541iOSJP
player_data
player_idevent_codeprogresscreated_at
1event_0071642024-06-02 03:57:25
player_event_progresses
player_idcreated_at
12024-01-01 03:57:25
player_login_logs

また、前回の記事で挙げたLLMのアップロードサイズ制限に対して、postgresデータベースを用いることでこの課題を克服できることを示すため、player_data を20万件、player_login_logs を7200万件用意しました。

それではMCPエージェントからこれらの仮データへ接続してみましょう。

MCPエージェントへのプロンプト

まず、エージェント自身のシステムプロンプトを定義します。以下のとおりです。

* あなたはPostgreSQLのデータベースにアクセスできるエージェントです.
* ユーザーからの指示に従ってデータベースにアクセスしてください.
* ユーザーはそのデータベースのデータを分析したいと思っています.
* 視覚化する場合には必ずHTML、Javascript、chart.jsを使用し、このときHTMLコードをmarkdownで出力してください.
* chart.jsのcanvasは高さ制限を200pxとしている点に注意してください.
* 複数のチャートを表現する場合には必ず別のhtmlとして分割して下さい.
* PostgreSQLによるクエリ結果は必ずHTMLとは別でjsonでも出力してください.
* また、ツールを使用するかどうかはエージェントが判断できます.

基本的な方針として、エージェントにはデータベースへ接続したうえでユーザーの希望を叶える動きを行います。ただし、視覚化についてはstreamlit標準のチャートを利用するための調整が困難なため、HTMLを生成する方式を採用しています。生成されたHTMLをstreamlitの components.v1.htmlでiframeに描画します。

それでは、データベースへの接続を確認するために以下のプロンプトを実行します。

postgresにはどのようなテーブルがありますか?

postgresデータベースへの接続に成功しました。また、それぞれのテーブルの特徴についても理解できました。

さらに以下のプロンプトで視覚化も確認しましょう

player_data テーブルからユーザー数をrankでビニングしてプロットしてください

player_data テーブルの構造を理解し、指定された rank でのビニングを実行しました。グラフから読み取れる内容についても説明しています。これにより、データベースへの正常な接続とチャートの表示機能が確認できました。

それでは本題です。ゲームデータを分析しましょう。

ゲームデータを分析

ここまでの準備でMCPエージェントからpostgresデータベースへ接続できることが確認できました。これを利用してゲームデータの分析が可能です。

しかしながら

前回の記事ではGeminiとの一問一答のような形で、各種データの可視化と分析を行っていきました。AIエージェントを活用する上で、データ分析の進め方には様々なアプローチが考えられます。個人的には、AIエージェントが自律的に分析を進めてくれることが理想です。

というわけで、一旦履歴をリフレッシュした状態で以下のプロンプトを実行しました。

postgresデータベースにはスマートフォンゲーム「AAA Heroes」に関するイベントとプレイヤーのデータが保存されています。 このデータを"イベントの盛り上がり"について分析したいと考えていますが、どのような分析をすればよいでしょうか。テーブル構造を確認し、分析手法を複数提案してください。

「AAA Heroes」というのはわたしがダミーデータを生成するときに使う仮名です。非常に曖昧な表現として”イベントの盛り上がり”を分析せよと指示します。5分程度の長考の後、テーブルデータ構造を確認するクエリの後に以下の回答がありました。

AIエージェントから5種類の分析手法が提案されました。それぞれの提案には対応するクエリが示されており、個別に確認できます。これらの提案は、プレイヤーのログイン数、イベント進捗度合い、参加率に基づいてイベントの盛り上がりを分析しようとしており、妥当な方針と言えるでしょう。

続けて以下のプロンプトを実行し、回答を得ました。

> 1. イベント期間中のログイン数の推移分析
についてグラフをプロットし、それについてあなたの意見を聞かせてください

提案された分析手法の1つに関してグラフをプロットさせ、それに対するAIエージェントの意見を確認することができました。「効果的なイベントサイクルがユーザーベースを維持・拡大している」「イベントがユーザーエンゲージメントの持続性に貢献している」など、かなり褒めてくれますね。改善提案も出してくるとはなかなか気が利いてますね。

続けて、次の分析手法についても質問しましょう。

> 2. イベント参加率分析
についてグラフをプロットし、あなたの意見を簡潔に教えてください。

「簡潔に」と指示したので、意見がかなり見やすくなりました。イベントのタイトルに含まれる文字列でその差異を分析しているようです。できれば event_masters.detail カラムの情報を見てほしかったところですが、そういった要望は最初のプロンプトで指示しておくべきでした。

こういった形で、AIエージェントから出てきた手法に対して、気になる点、確認すべき点を追加の質問で深く理解していくというのは非常に有用な使い方だと思います。残り3つの分析手法がありますが長くなってしまうので、以下のプロンプトで一旦まとめさせてみましょう。

ここまでの分析をもとに、スマートフォンゲーム「AAA Heroes」のイベントの盛り上がりについて簡潔にまとめてください。

2つの手法についてプロットと分析をしたので、その内容をまとめさせました。「特に成功しているイベント」「改善の余地があるイベント」として、現状と発展についてAIエージェントの意見を述べています。

さて、前回の記事でも最後に実行した以下のプロンプトで、次回イベントの提案を確認してみましょう。

次回イベントは 2025-05-17 からの開催を予定しています。どのようなイベントを行うと良いでしょうか?

非常に長い文章が出力されました。「命名」「内容」「効果」「参加促進」ではどのようなイベントを実施すべきかを簡潔にまとめています。まさか「予測される結果」まで提示してくるとは思いませんでした。この通りに実施してDAUが5%増加するのであれば素晴らしい限りです。しかしながら、「2.イベント内容の提案」で「水属性と月属性の新キャラクターを期間限定で実装」とありますが、新規属性の実装などそう簡単にできるものではないと思います。そういったところの取捨選択は必要になるでしょう。AIエージェントに対しては、ある程度方針があるなら(工数を短く等)事前に提示しなければなりません。

ただ、AIエージェントがデータを見てこういった提案をしてくるというのは非常に便利で参考になります。

最後に

今回はAIエージェントからpostgresデータベースへ接続するため、Model Context Protocol (MCP)に基づいてstreamlitとmcp-agentで環境を構築しました。先人たちが構築したフレームワークとプラグインによって、かなり手軽に実装することができました。

AIエージェントがデータベースのデータを参照できるようになったことで、データ分析の幅が大きく広がったと思います。常に参照できる状態にしておけば、いつでもその洞察を得ることができます。ただ、本来データ分析基盤としてはpostgresデータベースにクエリを実行するべきではなく、AWS S3+AthenaやBigQuery、Snowflakeなどを利用すべきでしょう。すでにそれぞれに合ったMCP Serverも公開されているので、今回紹介した方法でも問題なく実行できます。

MCPはまだまだ使い道が広がりそうです。

中村翔吾 
ファンカルチャー・デザイン学部 
個人でゲーム開発をしている。うさぎ2羽の世話係。

ソーシャルゲームのデータ分析にGeminiは使えるのか?実験で効果を検証

0

自宅のLANケーブルを6Aに敷設し直したいと思っています。ファンカルチャー・デザイン学部 中村です。

最近のLLMはcsvをアップロードすることでそのデータを分析することができます。特にClaudeのanalysis toolが強力なようですが、ChatGPTでもGeminiでも同様の分析ができてしまいます。実際にどのような分析ができるのか試していきましょう。

ゲームデータの分析

わたしはゲーム部門に所属しているので、ソーシャルゲームを運営しているとユーザーの行動に関する様々なデータが集まることがよくわかります。しかしながら、多数のデータをどのように分析すればいいのか、予測と合っているか、効果測定は正しいのか、活かせているか、等はなかなか難しいところがあります。それらについてLLMから何らかの提案や洞察が得られるとしたら、それは素晴らしいことでしょう。

仮データを用意する

ソーシャルゲームのそれらしい仮データを用意します。今回は特にソーシャルゲームによく見られる「イベント」に関してデータを用意し分析したいと思います。分析されることを考慮してある程度偏りが出るようなデータをPythonで生成します。

まず、イベントの基本情報として event_master.csvplayer_data.csv をよくありそうな形で定義します。event_master には2024年1月から2025年5月までのイベント情報を21件、player_dataにはユーザー情報を100件用意しました。

codenamestart_atend_atdetail
event_001大冒険!! スキー大会イベント2024-01-102024-01-24草属性キャラクターの素早さアップ, 闇属性キャラクターの防御力アップ
event_002毎日 節分イベント2024-01-312024-02-19草属性キャラクターの素早さアップ, 火属性キャラクターの素早さアップ, 雷属性武器の出現率大幅アップ
event_003大乱戦!! ホワイトデーイベント2024-02-262024-03-15草属性キャラクターの攻撃力大幅アップ, ショップの全商品半額, 獲得経験値2倍, 消費アイテムドロップ率増加
event_master.csv
idnameregistered_atrankdevicecountry_code
1杏奈2024-01-01 03:57:2541iOSJP
2大輝2024-01-01 03:20:4430iOSJP
3Nora2024-01-01 12:17:1236AndroidTW
player_data.csv

さらに、イベントに参加したユーザーの進捗データとして player_event_progress.csv を500件、ユーザーがログインした履歴データとして player_login_logs.csv を4,000件それぞれ用意しました。

player_idevent_codeprogresscreated_at
1event_0071642024-06-02 03:57:25
2event_0041202024-04-08 03:20:44
player_event_progress
player_idcreated_at
12024-01-01 03:57:25
12024-01-04 03:57:25
12024-02-02 03:57:25
player_login_logs

この4つのcsvをGeminiにアップロードしてイベントデータ分析を行います。

データ分析を開始

今回はGemini Advancedの2.0 Flashを利用します。

csvのアップロードとデータ構造の説明と簡単なプロット

csvをGeminiのプロンプト入力画面にドラッグアンドドロップすればアップロードできます。同時にこのデータでどのような分析をしたいのか伝える必要があります。また、何度か試した結果、CSVにどのようなデータが格納されているかの説明も必要だと感じました。そうしないと、以降のプロンプトの意図が伝わらないことが多々ありました。今回はcsvをアップロードしつつ以下のプロンプトを入力しました。

これはスマートフォンゲームに関するイベントとプレイヤーのデータです。
それぞれのcsvには以下の情報が含まれています。
* event_master: 過去に開催したイベント情報
 * code: イベントの識別コード
 * name: イベント名
 * start_at: イベント開始日
 * end_at: イベント終了日
 * detail: 開催されたイベントの特徴をカンマ区切り
* player_event_progress: プレイヤーのイベントへの参加情報
 * player_id: レコードの対象プレイヤーID
 * event_code: 参加したイベントの識別コード
 * progress: イベントの進捗パラメータ
 * created_at: そのイベントに参加した日時
* player_data: 各プレイヤーの情報
 * id: プレイヤーの識別子
 * name: プレイヤー名
 * registered_at: ゲームへの登録日
 * rank: プレイヤーの強さを表すランク
 * device: プレイヤーの使用端末
 * country_code: プレイヤーの国コード
 * birthday: プレイヤーの誕生日
* player_login_logs: 各プレイヤーがログインした際の履歴
 * player_id: 対象のプレイヤーID
 * created_at: ログインした日時
 これを分析したいと思います。

 まず、プレイヤーの人数を国別でプロットしてください

すると、Geminiの分析のあと棒グラフが表示されました。表示された棒グラフはマウスオーバーすると詳細情報を確認できるようです。

また、「コードを表示」ボタンをクリックするとPythonコードが表示されました。Pythonコードは主にcsvデータの構造確認、pandas を利用した国別での件数カウント、altair を利用したプロットと分割されて実行されているようです。

import pandas as pd

pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)

# Read the CSV files into Pandas Dataframes
df_player_data = pd.read_csv('player_data.csv')

# Display the first 5 rows of each DataFrame
print(df_player_data.head().to_markdown(index=False, numalign="left", stralign="left"))

# Print the column names and their data types for each DataFrame
print(df_player_data.info())
# Count the number of players by country
player_counts_by_country = df_player_data['country_code'].value_counts().reset_index()
player_counts_by_country.columns = ['country_code', 'num_players']

# Print the first 5 rows of the dataframe
print(player_counts_by_country.head().to_markdown(index=False, numalign="left", stralign="left"))

# Print the column name and their data types
print(player_counts_by_country.info())
import altair as alt

# Create the bar chart
chart = alt.Chart(player_counts_by_country).mark_bar().encode(
    # Set `country_code` to x-axis and set the label as 'Country Code'
    x=alt.X('country_code', title='Country Code'),
    # Set `num_players` to y-axis and set the label as 'Number of Players'
    y=alt.Y('num_players', title='Number of Players'),
    tooltip=['country_code', 'num_players'] # Add tooltip
).properties(
    title='Number of Players by Country' # Set the title of the chart to 'Number of Players by Country'
).interactive() # Make the chart Interactive

# Save the chart
chart.save('number_of_players_by_country_bar_chart.json')

ひとまず入力したcsvを理解してプロットまではできているようです。

MAU(Monthly Active User)をプロット

それでは次に、運営タイトルではよく確認される MAU をプロットさせます。追加で以下のプロンプトを入力しました。

player_login_logs をもとに各月のユーザー数をプロットしてください。これをMonthly Active User(MAU)と定義します。

再度Geminiの分析が始まり、その後以下のプロットが表示されました。

プロットの下部メニューには「表で表示」「グラフをカスタマイズ」「グラフを画像としてコピー」「画像としてダウンロード」「JSONファイルを保存」の機能が搭載されています。「グラフをカスタマイズ」するとグラフの種類やタイトルを変更できます。

イベント参加率を考える

ここまでの操作で視覚化の使い方がおおよそ理解できたので、イベントデータの分析を始めます。

まず、どの程度のユーザーがイベントへ参加したのか確認しましょう。その際に単に参加した人数を確認するだけではなく、アクティブユーザーのうち、何%が参加したかを示す参加率を考えます。各イベントには期間が設定されているため、その期間中にどれくらいのユーザーがアクティブだったのか、そしてそのうち何人が参加したのかをプロットします。

まず、以下のプロンプトでイベント期間中にアクティブだったユーザー数をカウントします。

event_masterにはstart_atとend_atが指定されており、イベント開催期間が設定されています。このイベント開催期間にログインしたユーザーをplayer_login_logsを参照してプロットしてください。X軸はevent_masterのcodeとします。これをEvent Active User (EAU)と定義します。

次に、実際にイベントに参加したユーザー数をカウントします。イベントへ参加するためにはログインする必要があるので、参加ユーザー ≦ アクティブユーザーとなるはずです。以下のプロンプトを実行します。

次に、player_event_progressのデータから各イベントへのユニーク参加者数をプロットしてください。これをEvent Participants User(EPU)と定義します。

それでは参加率をプロットしましょう。参加率は、イベント開催期間中にログインしたユーザー数に対する、実際にイベントに参加したユーザー数の割合で計算できます。そのため、各イベントに対して 参加率 = EPU / EAU となります。以下のプロンプトでプロットします。

各イベントに対して EPU / EAU を計算し、アクティブだったユーザーがどの程度の割合でイベントに参加したかを表すプロットを生成してください。これをイベント参加率とします。

以上のように各イベントの参加率をプロットすることができました。ここまで進めて感じたことですが、EAU・EPUというのはその場で思いつきで作った単語であるにもかかわらず、Gemini側がその定義を理解していることに驚きました。

さて、参加率のグラフを見ると、ところどころ異様に低いイベントがあるようです。どのような特徴があるでしょうか。Geminiに聞いてみましょう。

ところどころ参加率の低いイベントがあるようです。参加率の低いイベントの特徴を調べるためにはどうすればよいですか?

聞いてみると、以下のようにGeminiは参加率の低いイベントを列挙しつつその共通点を解説しました。

共通点だけ見れば確かにその通り、「特定のキャラクター属性や武器属性に焦点を当てている」「ショップの割引や経験値ブーストなどのボーナス」は参加率の低いイベントに含まれています。しかしながら参加率の高いイベントも同様の特徴を持っています。そうなると、これらの特徴だけで単純に参加率が低いとは確定できません。もっと具体的な数値が必要です。

特徴量エンジニアリング

というわけでGeminiに対して特徴量エンジニアリングを指示しましょう。今回はイベントのdetailカラムに対してワンホットエンコーディングを行い、参加率に対する相関を出力します。ワンホットエンコーディングについてはGoogle Developersで詳細に解説されています。以下のプロンプトを実行します。

event_masterのdetailには開催イベントの内容をカンマ区切りで入力しています。このイベント内容についてワンホットエンコーディングしてください。そのうえで、各イベントの参加率に対する相関を教えて下さい。

今回は分析に時間がかかったようですが、detail に含まれる特徴と参加率の相関を出力しました。また、その傾向についても解説されています。

(ダミーデータに基づいた結果ですが)これによってどのようなイベントがユーザーに好まれているのかを理解できるようになります。Pythonコードを見るとpandasを使用してワンホットエンコーディングを行っているだけですが、非エンジニアにはなかなか理解が難しいでしょう。問いかけるだけでそれを実行してくれるというのはなかなか素晴らしい機能ですね。

効果測定

さて、実は20回分のイベントには火・水・草・雷・闇・光の6属性のみ入力し、最後の21回目のイベントには新しい”空属性”を追加してあります。これは新たな属性を追加することにより、そのイベントの参加者数や参加率にどのような影響を与えるか、効果測定を行うためです。

codenamestart_atend_atdetail
event_021春爛漫 新生活応援キャンペーン2025-04-262025-05-12空属性キャラクターの攻撃力大幅アップ, 空属性武器の体力アップ, 空属性武器の攻撃力アップ, 獲得経験値2倍

特に詳しい説明はせず、シンプルに以下の質問をしました。

直近で開催された event_021 では新たに "空属性" が追加されました。新たな属性を追加したことで、イベントの参加者数や参加率に対してどのような影響を与えたでしょうか。

Geminiは event_021 の参加率と参加者数を過去のイベントと比較したようです。その結果、参加率が高いことから、新しい空属性の追加はポジティブな影響を与えたと判断できたようです。こういった効果測定にLLMを利用するのは有用な使い方ですね。

次回イベントの提案

LLMの活用方法の一つとして、過去の情報に基づいて新しい提案を生成することが挙げられます。今回のイベントデータ分析においては「次にどんなイベントを開催すればよいのか」という提案が成されると良いでしょう。ユーザーにポジティブな印象を与え続けるようなイベントを企画するのは非常に大変な作業です。そこでGeminiに協力を仰ぎましょう。

これまでの分析を踏まえて、次回 event_022 はどのようなイベントを開催するとよいでしょうか。おすすめを提示してください。

まずGeminiはこれまでの分析を要約しました。

そして要約をもとにして空属性をメインとしたイベントを提案してきました。「ショップの消費アイテム半額、消費アイテムドロップ率増加、獲得経験値2倍などの高参加率に繋がるボーナスを全て盛り込む。」というのは少々欲張りすぎでしょうか。「初心者・復帰勢向けの施策」については重要な項目ですね。

イベント名についても提案がありました。イベント期間や告知方法も重要な検討事項です。

ただし、空属性が好評だったからといって、安易に空属性ばかりを推すのはイベントの流れとして好ましくない可能性もあります。したがって、これらの提案を鵜呑みにするのではなく、効果がありそうな要素をいくつかピックアップして採用するのが賢明でしょう。とはいえ、アップロードしたデータに対して、壁打ちのように質問を繰り返しながら分析を進め、未来の提案を得るという一連の流れは、まさにLLMならではの活用方法と言えるのではないでしょうか。

実はちょっと困ったこと

今回Geminiにアップロードしたcsvは player_data 100件、player_event_logs 4,000件で 合計120KB程度です。実は最初に作成したデータは player_data 500件、player_login_logs 100,000件で 合計3MBほどありました。Geminiの公式ヘルプには、1ファイルあたりの上限が100MBと記載されていたため、合計3MB程度であれば問題ないと判断していました。しかしながら4回ほどのプロンプトでエラーが発生しそれ以降の質問を受け入れてもらえなくなりました。そのため、なんとか120KB程度までデータサイズを削減したところ、今回のすべてのプロンプトを実行できました。アップロードしたファイルに対する分析は、できるだけ1度のプロンプトで完結させる方が良いのかもしれません。

最後に

今回はLLMによるデータ分析を試すためにダミーデータを用意して、いくつかのプロンプトを指示してデータ分析を行いました。MAU等一般的な指標から独自に定義した指標まで、適切に説明すれば理解し、指示した通りのプロットを表示する、という点について非常に役立つ機能だと思います。様々な分析結果から未来を提案させるというのも参考になります。

ただし、最後に述べたように、LLMにはどうしてもデータサイズの制限がある点は考慮すべきでしょう。今回はダミーデータのサイズを切り詰めて対応しましたが、実際に運営しているタイトルのデータを分析しようとしたとき、csvにしても100MBに収まるようなサイズではないでしょう。したがって、大規模なデータを分析する際には、CSVをアップロードするのではなく、直接データベースに対してクエリを実行してもらう方が効率的かもしれません。

そのような場合に活用できる仕組みが、Anthropic社から提案されています。次回、MCPを利用したデータ分析に関して記事をまとめたいと思います。

中村翔吾
ファンカルチャー・デザイン学部
個人でゲーム開発をしている。うさぎ2羽の世話係。

『伝わる技術』の紹介

0

今回は、アピリッツの知識共有サイト「ナレッジベース」から、
プロジェクトマネージャーを担当している神 宏伊(ジン ヒロヨシ)さんの記事をご紹介します。
是非最後までご覧ください!(初版:2025年5月6日)

概要

社会人になってからずっと、人とのコミュニケーションに悩んできました。

特にプロジェクトマネージャーを担当するようになってからは、
「自分では伝えたつもり」でも「相手に伝わっていない」ということがよく起こりました。

そのせいで、期日に間に合わなかったり、要件定義が中途半端になったりして、
社内メンバーやお客様に迷惑をかけてしまうことも何度かありました。

そこで今回は「相手に伝わらない」を減らすために役立った会話の工夫と、
私が普段から意識している3つのポイントをご紹介します。

【動いてほしいこと】を最初に伝える 

「何をしてください」「助けてほしい」など、
相手に動いてほしいことをできるだけ短く伝えることで、相手の興味や関心を引くことができます。

興味・関心が持てれば、その後の説明も聞いてもらえるようになり、結果的にこちらの意図が伝わります。

たとえば、次のように伝えると「緊急性」と「やってほしいこと」が明確になります。

  • 「助けてほしい。いつまでに〇〇が必要なんです。」
  • 「〇〇をお願いします。期限は〇月〇日です。」

この技術はメールでも使えます。

  • 【緊急】◯◯で問題が発生。至急確認願います
  • 【見積依頼】◯◯(4月1日まで)

私自身もそうでしたが、最初は文章をきれいに書こうとしすぎて長くなることが多かったです。

たとえば、「動いてほしいこと」の前に概要や理由、経緯を説明し、最後にお願いを書くようなパターンです。

するとどうなるか——

  • 緊急性や期限が相手に伝わらない
  • 話が長くなり、集中力が切れてしまう
  • 前提を忘れられ、もう一度説明する羽目になる
  • 結果、忙しい人から返事がもらえなくなる

このようにデメリットの方が多くなってしまいました。

だからこそ、まず「相手に動いてほしいこと」を最初に伝えることが大事だと考えています。

質問は複数重ねない

次のように、質問を続けてしまうケースはよくあります。

「AAについてどうしたら良いでしょうか?
たとえば、BBになったときはABとなるでしょうか?」

このように質問をいくつも重ねると、相手は複数の回答をしなければなりません。
しかし実際には、

  • 前提や最初の質問を相手が忘れてしまう
  • 質問の数が多くなり、回答するのが負担になる
  • 会話が複雑になり、お互いに混乱する

といった問題が発生します。

たくさん質問すれば効率的に思えますが、結局は非効率になってしまうことが多いのです。

そこで、質問は必ず1つずつ行うように心がけましょう。

その方が相手も答えやすく、会話もスムーズに進みます。

一度の説明は最大3つまでに絞る

最後に、人間が一度に記憶できる情報の量についてお話しします。

個人差はありますが、コミュニケーションを改善するための自己啓発書などでは、
「伝える内容は多くても3つまでにした方がよい」とよく言われています。

試しに「説明は3つまで」とGoogle検索すると、こんな記事が並びます。

  • 説明の上手な人が「3つにまとめる」を徹底する理由
  • なぜ、プレゼンの達人たちは「3」の魔術にこだわるのか?
  • 「プレゼンのポイントは3つにまとめる」。説得力を増す効果…

「3つにまとめるのは古い」といった意見もありますが、
まず3つに絞って話せるようになってから次のステップに進めばよいのです。

私自身もこれにならい、常に3つまでを意識しています。

■ 使用例

プロジェクトの進捗管理でも、1人が抱える課題は最大3つまでと決めています。
課題が片付いたら、次のタスクを追加する形です。

このルールにより、情報の整理やチーム内のやり取りがとてもスムーズになりました。

まとめ

今回ご紹介した3つのポイントを意識すると、相手にしっかり伝わるコミュニケーションができるようになります。

  • 【動いてほしいこと】を最初に伝える
  • 質問は複数重ねない
  • 1度の説明は最大3つまでに絞る

ぜひ、日々の仕事や会話で試してみてください。

おわりに

おわりに、コミュニケーションや自己啓発のヒントを分かりやすく学べるおすすめチャンネル・動画をご紹介します。

フェルミ漫画大学

学識サロ

コミュニケーションや人生に悩むことがあったときに、わかりやすく聞けるYoutubeチャンネルです。

神 宏伊(ジン ヒロヨシ)
デジタルサービスオファリング学部 エンジニア 
掃除得意なエンジニア。プログラムの掃除・整理や、日常生活での掃除・整理何でもござれ。 
座右の銘は「汚物は消毒だ〜!」

ーー神 宏伊さん、ありがとうございました!

アピリッツでは自分が得た情報や技術を社員間で積極的に共有し合い、それらを吸収しながら各々のスキルアップを目指しています。

アピリッツに少しでも興味をお持ちいただけた方、エントリーお待ちしております!

潜入!アピリッツのパパランチ会

0

アピリッツでは、子育てをしながら働くパパママ社員向けに様々な取り組みを実施しています。
今回は、その取り組みの一環として、先日社内で開催されたパパランチ会の様子をご紹介します!(2025年4月取材)

パパママ社員の声を制度へ

アピリッツでは、子育て経験者・子育て中の社員が主体となって、

定期的に意見交換の場を設け、会社独自の育児支援制度の検討や策定を行っています。

その取り組みの一環として毎月行われているパパママ社員のランチ会で、初の試みとなるパパ社員限定のランチ会が開催されました!

今回は、そんなパパランチ会に潜入してきました!

パパランチ会へいざ潜入!

左から、伊藤さん、鳴瀬さん、廣瀬さん、深澤さん

ーー皆さんの自己紹介をお願いします!

PL学部でスマホエンジニアをしています、伊藤です。
ちょうど1年前にアピリッツに転職してきました。
1歳9か月の男の子のパパをしています。
子供がよく歩くようになり、道草を食って登園に時間がかかってしまうことが最近の悩みです。笑

FG学部でプランナーをしています、深澤です。
子供は6歳と2歳の男の子がいます。
このランチ会の2日前にちょうど下の息子が誕生日でした!

伊藤さんと同じPL学部でスマホエンジニアをしています、鳴瀬と申します。
今回初めてランチ会に参加します。
今年の9月に子供が生まれる予定で、エコーの結果を見たり、どのベビーカーを買うか調べてみたり、
生まれてくるのが今からとても楽しみです!

SS学部でWebエンジニアをしている廣瀬と申します。
自分は今年の8月に男の子が生まれる予定です。
何をしたらいいのか分からないことが多くてドキドキなので、皆さんからアドバイスをいただきたいと思っています!
よろしくお願いします!

ーーありがとうございます!今回のパパ限定ランチ会は、どういう背景で開催に至ったのでしょうか?

社内のパパママ社員が集まって、毎月ランチ会を行ってはいるのですが、
「パパ同士の交流ってそもそも社内・社外問わず少ないよな~」と思ったことがきっかけで、
今回パパ限定のランチ会を実施することになりました!

ーーそうだったんですね!素敵な企画です!

今回、初めてのご参加になる鳴瀬さんや廣瀬さんは第一子が生まれるということで、色々と不安なこともあるのではないでしょうか・・?

子供が生まれて成長したら、送り迎えをしつつ、家でお世話をしながら仕事を両立できるか不安です・・

そうですね~。
でも、アピリッツには、子育てをしている社員の方々が意外といるおかげで、
子供事での対応の理解やそれに伴う業務のサポートが比較的あると思うので心配しなくても大丈夫ですよ。

周りに子育てしている人がいると、今日のように情報共有もできるし、ちょっとした雑談もできて気持ちも楽ですよね。
子供服で質問なんですが、洋服を選ぶ上で注意した方がいいことはありますか?

着替えがしやすい服を選ぶことですかね。
すぐ服を汚すので、1日に2・3回洗濯をするんですが、
脱がせにくい洋服だと、親も大変ですしね・・
あとは、親が着させたいと思っても着てくれないので、子供が着たい洋服を着させてます。笑

ーー取材を終えた後も和やかな雰囲気で盛り上がっていたパパランチ会。皆さんご協力いただきありがとうございました!


終わりに

働くパパママ社員が多いアピリッツでは、今回のランチ会の他に、

社内のSlackチャンネル「#アピリッツ-パパママ交流チャンネル」で子育てに関する相談や情報交換等を積極的に行っています。

実際に、パパママ社員の声がきっかけで生まれた、追加でリモートワークを取得することができるパパママリモート制度も現在試験運用中です。

そんな仕事も子育ても妥協しないアピリッツのパパママ社員について、他の記事でも取り上げていますので、ぜひチェックしてみてください!

お客様とチームを結ぶ架け橋。その裏側とは?~PM対談インタビュー 後編~

0

前回に続いて、アピリッツでプロジェクトマネージャー(以下、PM)として活躍している川畑さん、志賀さんの対談インタビューの続きをお届けします。
後編の今回は、PMとして大切にしていること、今後PMに求められることなど、深堀してきました!(2025年3月取材)
前回の記事はこちらからご覧ください!

チームを動かし、お客様と真正面から向き合う

ーー複数の案件のPMを担当されてきたお二人が、PMを担当していて意識していることはありますか?

(川畑)一番はメンバーとのコミュニケーションですね。

メンバーそれぞれが今どんな状況なのか、抱えている問題は無いか、精神的に大丈夫か等、

色々な側面におけるメンバーの状況を、PMである私が把握する必要があると思っています。

ただ、自分一人で20人~30人のメンバーの状況を把握することには限界があるので、

チームをユニットに分割して、それぞれのユニットのリーダーに、自分たちのメンバーの管理・報告をしてもらっています。

そうやって、メンバーの協力のおかげで、PMである自分がチーム全体を把握することができているんだと思います。

(志賀)自分は、お客様との関係性をどう築いていくかを一番意識しています。

そのために、お客様のご要望に対して常にイエスマンの立場にいるのではなく、

実現が難しいことにはしっかりその旨をお伝えして、着実に案件を成功させることが、お客様との信頼関係を構築するために重要だと思っています。

そうすることで、お客様とワンチームで案件を取り組むことができ、その後も継続した関係性を築くことができると思います。

川畑)自分も志賀さんと同じく、お客様と良い塩梅での関係性をどう持つかは重要だと思います。

どうすればお客様が喜んでくれて、かつ開発メンバーに負担をかけずに案件を成功させることができるかを一番に考え、

時には直接お客様のところへお伺いして、ひざを突き合わせて提案をしに行ったり、最大限の努力をしています。

ちなみに前職では、顧客折衝から開発まで全ての工程を自分一人で担当して、とても大変な思いをした経験があるので、

そんな思いをメンバーにさせたくない、という思いも原動力になっていると思います。

ーーお二人とも、お客様とメンバーの視点に立って、色々な工夫をされていらっしゃるんですね。

お客様との折衝では、具体的にどのような提案をされているんですか?

(川畑)そうですね。お客様のご予算とリクエストにずれがあると感じたら、

「こういう機能の方が使いやすいのではないか」と提案して工数を調整したり、

不要だと感じた機能はしっかりお客様にその旨を説明して、サービスがリリースしてから追加機能として開発しないかと提案したりしています。

お客様のご要望に全て断ってしまうとお客様との関係性が悪化してしまうので、どう折り合いをつけていくかは肝になってきますね。

(志賀)自分も川畑さんのように、「これはできないけど、こういう形であればどうですか?」と代案を出して交渉する等、

お客様にもしっかり満足してもらえるように工夫をしています。

ーー企画から運用保守まで一気通貫で行っているアピリッツだからこそできる提案ですね!

これから求められることは、”AIを活用する力とコミュニケーション能力”

ーー今後、PMにはどのようなことが求められていくと思いますか?

(川畑)最近AIが進化・加速をしている中で、どんどん作業の効率化が進んでおり、

PM業の中でも、スケジュール作成や提案、リスクヘッジ等も、今後はAIに対応・補助してもらう時代になるかと感じています。

その中で、そういった新たな技術を使いこなす力、そしてそれを精査して判断していく決断力が求められてくると思います。

逆にAIの技術がより進んでいくにつれて、AIにはできないであろう、

クライアントとの関係構築やコミュニケーション能力は、今後ますますPMに求められてくるとも思います。

提案内容はAIを活用しながら作成し、いかにそれを上手くお客様に伝えることができるか、これこそが大事になると思います。

(志賀)PMとして求められることですか・・これは自分も絶賛模索中です。笑

自分もPM業についてまだまだ勉強中ではありますが、

少なくとも、周りの先輩や同期、後輩、部長の方々とのちょっとした雑談が、PMとしての今の自分に繋がっていると思います。

ーーAIが進化していく中で、コミュニケーション能力、自分から情報を積極的に掴みに行く力がより重要になってくるんですね。

AIのお話が出ましたが、、お二人は業務の中でどのようにAIを取り入れていますか?

(川畑)エンジニアに聞くまででもない技術的な内容をChatGPTに聞いています。

業務提案でもAIが使えそうなので、そのへんも勉強しないといけないなと感じています。

(志賀)どう調べていいかが分からないとき、かつブラウザで調べるにもフックがなさすぎるときに、

足掛かりになる単語をAIに聞いてみたり、たまにコーディングの仕方を聞いてみたりして活用しています。

QCD管理から大規模案件へ

ーーお二人の今後の目標や、伸ばしていきたいスキルがあれば教えてください。

(川畑)生産管理の基本的な考え方であるQCD(品質・コスト・納期)の管理を、今以上にできるようにしていきたいです。

エンジニアのパフォーマンスを上げるにはどのように動いてもらうべきか、与えられた予算の中でどれだけ効率よく案件をこなしていけばよいか、

クライアントの要望をどれだけコスト・期間内で叶えることができるか等、

常に流動的に動いていく案件の中で、どれだけ素早く判断・行動ができるかがPMの要だと思っているので、

これらの考え方を常にアップデートしていかなければいけないと。

ちなみに、飯場部長(SO学部部長)から紹介してもらった『仕組み化がすべて』という書籍はPMとしてとても参考になったのでおすすめです!

(志賀)より規模の大きい案件のPMとして働けるようにすることが今の目標です。

スキル面では、PMとして、調整能力、中長期的なマネジメント能力等を伸ばしていきたいと思っています。

ーーお二人ともありがとうございました!

アピリッツでは、更なる事業成長のため、プロジェクトマネージャーを募集しています。

顧客折衝、要件定義等の上流工程からサービスのリリースまでを一気通貫で提供できるアピリッツで、

エンジニアとしての成長の可能性をもっと広げてみませんか?

ご興味がございましたら、ぜひ採用HPからご応募ください。ご応募お待ちしております。

チームを動かしお客様と共にサービスを作りだす。~PM対談インタビュー 前編~

0

今回は、アピリッツでプロジェクトマネージャー(以下、PM)として活躍する川畑さん・志賀さんにインタビュー!
前編では、二人のこれまでのキャリアと、やりがいについてご紹介します!(2025年3月取材)

メンバー紹介

「やりたいようにやっていいよ」色々な選択肢がある会社が、ここだった。

ーー川畑さんから、アピリッツに入社するまでの経歴を教えてください。

(川畑)大学時代にPHPアルバイトとして入社した会社に就職して、

ポータルサイトやコーポレートサイト等の一般的なWEBサイトの構築や、EC・業務WEBシステムの開発を行っていました。

10人以下の小さな会社だったので、入社してからは徐々にPM関連や営業等、多岐にわたってWEB制作に携わっていました。

そこで3年間働いて、アピリッツに入社したという流れになります。

ーー大学時代からPHPエンジニアとして活動されていたんですね!川畑さんは学生時代バンド活動も行っていたんだとか。

(川畑)そうですね。5~6年ギターメンバーとしてバンド活動をしていました!

そのときに自分が所属するバンドメンバーのWebサイトを作ろうということになって、HTMLの本を買って読んだんです。

そしたら「楽しい!」ってなって。笑

そこからどんどんのめり込んでいって、PHPという言語があることを知り、前職でPHPエンジニアとしてアルバイトに参加していました。

ーーきっかけはバンド活動のWebサイトからだったんですね。初めての転職活動でどうしてアピリッツに入社を決めたんですか?

(川畑)アピリッツなら、色々な選択肢があると感じたからです。

当時は、PMやエンジニア等、色々なことを経験していたため、最終的に自分が何をやりたいのかまだ定まっておらず悩んでいたのですが、

アピリッツの面接で話を聞くにつれ、色々なことができる会社なんだと感じました。

その時の面接官の和田さん(社長)と利夫さん(鈴木部長/現SS学部部長)に、

「やりたいようにやっていいよ」と言ってもらったことが、今でも印象に残っています。

ーー懐の広さを感じますね!笑 代わって、志賀さんは新卒でアピリッツに入社されたんですよね?

(志賀)そうですね。自分は情報系の大学で初めてプログラミングに触ったことがきっかけで、

就職活動中はIT企業のエンジニアを中心に会社を探していました。

当時は、若手のうちから色々な経験ができそうな中小企業やベンチャー企業を中心に企業を探していて、アピリッツを見つけました。

ーーその中で、どうしてアピリッツに入社を決めたんですか?

(志賀)面接官の方たちの雰囲気がとても魅力的だったからです。

他の企業の面接もいくつか参加しましたが、アピリッツの面接を通して、この会社で自分も一緒に働いてみたいと思いました。

入社して7年経った今でも、先輩・同期・後輩含め自発的に動く人が多くて、一緒に働いてる人たちに恵まれているなと感じます。

一人ひとりの個性を生かしたメンバーアサイン

ーー入社してから今までどんな案件を担当されてきたんですか?

(川畑)車両メンテナンスサービスの管理画面及び会員用マイページの構築におけるPMや、

こどものためのイベントやお知らせなどを掲載する官公庁のポータルサイトとそのCMS構築におけるPMを担当してきました。

基本的にどの案件も要件定義からアサインされて、リリースまでのスケジュール調整や仕様・設計の作成を行ってきましたね。

今は、20人~30人のチームメンバーで、

医療系人材紹介のWEBサイト及びその管理システムの構築を担当しています。(開発言語はRails、インフラはAWSで構築予定)

(志賀)私は現在3つの案件のPMを担当しています。

1つ目は新卒の時から関わっているECサイトの保守運用案件(開発言語:RoR インフラ:AWS)、

2つ目はスマホアプリの保守運用案件(開発言語:Kotlin/Swift)、3つ目は新規システムの開発案件(開発言語:PHP)です。

ーーお二人ともPMとしてチームマネジメントも行われているとのことですが、チームメンバーのアサインは、どのようなところを基準に決めているんですか?

(川畑)そのメンバーの得手不得手を見て判断しています。

エンジニアでゴリゴリ開発できる人は難しいところ、そうじゃない人は簡単なところを担当してもらう、とかですね。

そのために一人ひとりの強みや苦手なところを自分が把握しておく必要があるので、チームメンバーとの会話は密に行っています。

前職では自分よりかなり年が離れた人が多くてコミュニケーションを取ることが大変だったこともあったのですが、

自分と同年代の人が多いアピリッツは、かなりコミュニケーションが取りやすいなと感じます。

同年代のチームメンバーと一緒の案件に携われることもアツいですね!

(志賀)それぞれ私の他に1人~3人のメンバーが参画しているのですが、

保守案件は優先度の高いところを自分が対応して、他の細かい部分はメンバーにある程度任せる等、

できるだけ一人ひとりが自分で考えて動けるように、エンジニアとしての成長に繋がることを意識してアサインしています。

お客様と二人三脚でサービスを作り上げる。

ーー色々な案件でPMを担当されてきたお二人にとって、「PMのやりがい」とは何ですか?

(川畑)やはりリリースされた時に一番やりがいを感じますね。

お客様と我々がやりたかったことが形になって、世の中に公開されるときが一番嬉しいです。

また、リリースのために、チームメンバー一人ひとりが責任感を持ってプロジェクトに向き合っている姿を見ると、

チーム全員が同じ方向を向いていることに、PMとしてとても嬉しいなと感じます。

(志賀)お客様とのMTGで相手方から感謝の言葉をいただけるとやりがいを感じます。頑張ってよかったなと。

そのためにも、当たり前ですが、期限を守ったり、お客様からのリクエストにできるだけお応えしたり、

明るく元気に話す等、基本の積み重ねでお客様との信頼関係を構築して長期的に関係を作っていくことが大切だと感じます。

ーーお二人、とても素敵なお話をありがとうございます!最後に、大型案件や複数案件で多忙なお二人のリフレッシュ方法を教えてください!

(川畑)趣味の料理やゲームをしたり、休日に家族と過ごしてリフレッシュしています。

前職がかなり忙しかったので、オンとオフの切り替えを意識するようになりました。

(志賀)自分は平日に行きつけのバーで知人とお酒を飲みながら雑談して息抜きをしています。

休みの日はロードバイクに乗って趣味のサイクリングをして過ごしています。

(川畑)サイクリングとは違いますが、実は大学生の時に原付に乗って日本中を旅していました。

ちなみに自分もお酒が好きで、一時期家にビールサーバーを借りてましたよ!笑

ーー意外なところに共通点が!笑 お仕事もプライベートも充実させているお二人

次回はPM対談後半戦!PMとして大切にしていること、今後PMに求められることなどを深堀していきます。次回のアピスピもお楽しみに!

中途ランチ会ー深まる中途同期のつながりー

0

実はアピリッツ、在籍する社員のうち、中途入社の社員数が、新卒入社の社員よりも多いんです!(参照:データで見るアピリッツ
今回は、そんな中途入社の社員が多いアピリッツで、定期的に実施している「中途ランチ会」についてご紹介します!

1.中途ランチ会って?

中途社員は新卒社員と違って、長い時間をかけて会社に慣れたり、同期同士のつながりを構築することは難しいですよね。

また、新しい環境に慣れることができるか、不安に感じる方も多くいらっしゃるのではないでしょうか。

そこでアピリッツでは、同じタイミングで入社した中途入社社員、いわゆる「同期」同士が、

気軽に交流し、つながりを深めるきっかけ作りとして、「中途ランチ会」を定期的に開催しています!

日々の業務から少し距離を置いて、リラックスした雰囲気でランチを楽しみながら、コミュニケーションを深めるこのイベント。

今回は、そんな中途ランチ会についてご紹介します!

中途社員だけでなく、新卒社員向けの新卒ランチ会も開催しています!
こちらの記事もぜひご覧ください。

2.実際にランチ会に参加した中途社員に聞いてみた!

入社してから1か月程経つと、CCO室の担当者から、「中途ランチ会」のお誘いが・・!

ランチ会当日は会社近辺のお洒落なお店でランチを楽しみます。

ランチの費用は全額会社負担。社員同士のつながりを大切にしてほしいという経営陣の気持ちがよく表れていますね。

入社日から1か月経って、「今どんなお仕事をされているのか」「会社には慣れたか」「休みの日は何しているのか」など、

ざっくばらんに皆さんでお話をしていきます。

このランチ会でお互いの共通点が見つかり、ランチ会終了後も共通の趣味で交流されている社員さんをよく見かけます!

ときには、今困っていることや不安に感じていることを聞いて、入社後の不安もランチ会で解消していきます。

ここで、直近1年以内に入社した中途メンバーに、実際のランチ会の感想について聞いてみました!

ーー中途ランチ会に参加してみてどうでしたか?

中途入社は新卒と違い、業務以外でつながりを持つことができないので、
こういった会があると仲間意識みたいなものが持ててとても嬉しいです!

中途ランチ会に参加してから、他のイベントなどで会った際に一緒に楽しんだり
関係が続いた先で、部をまたいで一緒の案件を担当した際はとても心強かったです。

いつもと違う昼食時間を過ごせて楽しかったです!
小規模な企画ではあっても、会社が社員のことを考えて、予算を取って人員を動かしているというのは有り難いことだと感じました。

3.終わりに

アピリッツでは、このランチ会を通じて、中途入社の社員が安心して働ける環境作りに力を入れています。

中途ランチ会以外にも、懇親会や文化祭など、部署や事業、年齢や役職関係なく、

縦と横、時には斜めの仲間づくりができるようなイベントを企画・実施しています。

少しでも興味をお持ちいただけた方は、ぜひご応募ください!

次回は、実際のランチ会へ潜入捜査!次のランチ会記事も楽しみにしていてください!

Mastraで学ぶ!AIエージェントってどうできてるの?

0

はじめに

AIエバンジェリストの浅田です。
AIエージェント、話題ですよね。様々な企業がAIエージェントの発表をするとともに、AIエージェントを作成するためのツールも色々出てきています。

そんなツールの一つにMastraというTypeScript製のオープンソースフレームワークがあります。現時点で、同時期に出たOpenAIのAgentsSDKや、先発のLangChainのAgent構築フレームワークであるLangGraphよりもGitHubのスター数が多く、その注目されぶりが伺えます。

そこで、今回はMastraのコードを見ながらAIエージェントを実装する際の構成要素について書いてみたいと思います。

準備

まず、インストールします。公式の手順に従いインストールしますが、npmが使える環境であれば、以下のコマンドでインストールできます。

npm create mastra@latest

そうするといくつか質問されます。

  • What do you want to name your project?
    • 任意の名前をつけます
  • Where should we create the Mastra files? (default: src/)
    • デフォルトのままにします
  • Choose components to install:
    • Agents, Workflowsの選択肢が出るので、両方にチェック(スペースキーでチェックできます)を入れてEnterを押すと、Add tools?と質問されるので「Yes」を選択します
  • Select default provider:
    • AIのプロバイダーの選択肢はデフォルトのままOpenAIを選択し、Enter your openai API key?と聞かれるので、Skip for Now(default)を選択します。
  • Add example
    • 「Yes」を選択します
  • Make your AI IDE into a Mastra expert? (installs Mastra docs MCP server)
    • Skip for now (default)を選択します

上記が完了すると、最初に決めたproject名のディレクトリが作成され、その中に.env.developmentというファイルがあります。このファイルを開くと

OPENAI_API_KEY=your-api-key

となっているので、your-api-keyを自分のOpenAIのAPIキーに修正します。

これで準備完了です。

起動

インストール時に出力されるメッセージにも書かれていますが、以下のコマンドでMastraプロジェクトを起動できます。

npm run dev

Mastraは、デフォルトで二つのインターフェースを持っています。

  • API(別のツールから呼び出すためのエンドポイント)
  • Playground(定義したエージェントの挙動を確認できるブラウザ上のGUI)

http://localhost:4111/ にアクセスすることで、Playgroundにアクセスできます。以下のような画面が表示されれば起動成功です。

画面上の「Weather Agent」をクリックし、「Write a message…」と書かれているところに「渋谷の天気を知りたい」と入れて送信すると、現時点(2025/3/31の午後6時)だと以下のような結果が返ってきます。後で説明しますが、これはopen-meteo.comという緯度経度から現在の天気を教えてくれるAPIの結果をもとに出力されています。

Shibuya's current weather is overcast with a temperature of 7.6°C, but it feels like 4.5°C due to the wind. The humidity is at 76%, and there is a wind speed of 11.3 km/h with gusts up to 29.9 km/h.

Agent

AIエージェントのフレームワークであるMastraの中心となる構成要素はAgentです。MastraのExampleにおけるAgentはsrc/mastra/agents/index.tsに記載されています。

export const weatherAgent = new Agent({
  name: 'Weather Agent',
  instructions: `
      You are a helpful weather assistant that provides accurate weather information.

      Your primary function is to help users get weather details for specific locations. When responding:
      - Always ask for a location if none is provided
      - If the location name isn’t in English, please translate it
      - If giving a location with multiple parts (e.g. "New York, NY"), use the most relevant part (e.g. "New York")
      - Include relevant details like humidity, wind conditions, and precipitation
      - Keep responses concise but informative

      Use the weatherTool to fetch current weather data.
`,
  model: openai('gpt-4o'),
  tools: { weatherTool },
});

ここからWeather Agentについて以下のことがわかります。

  • instructionsで天気情報を提供することを命じられている
  • modelでopenaiの”gpt-4o”のAIモデル(LLM)を使用するように設定されている
  • toolsでweatherToolが指定されている

instructionsはそのAgentの基本動作を規定します。これをもとにAIモデル(openAIのgpt-4o)は何をユーザから聞き出し、何を実行し、何をユーザに提供するかをの指針を得ることができます。今回の例であれば天気を調べるにあたり必要な情報(location)を理解します。そして、天気の情報を得るために、weatherToolというツールを使えること、およびユーザに提供する情報に含めるべきこと(wind conditionsなども含める)や、形式(concise but informative)について理解します。

さて、もし同じことをLLMを使わずにやろうとするとどうなるでしょうか。

  1. ユーザの発話が天気に関することかどうかを判定する
    1. 発話に天気関連のキーワード、例えば「天気」が入っているかどうかを判定する
    2. 発話が天気に関するものではない場合には、最初の処理に戻る
  2. ユーザの発話の中にlocationに関する情報があるかを判定する
    1. locationの情報がなければユーザに質問し、判定の処理に戻る
  3. locationが与えられた場合に、情報が英語かどうかを判定する
    1. 英語でなければ、locationを英語に翻訳する
  4. 天気情報(weatherTool)の出力をパースし、目的の出力形式に整形して、ユーザに提示する

上記のようにユーザに天気の情報を提供する状態にたどり着くまでに多くの処理が発生することがわかります。上記の例であればユーザの発話を判定する際に「天気」というキーワードが入っていたとしても「脳天気な性格だね」や「天気以外のことを話そう」などといったパターンを処理しようと考えると気が滅入ってきます。

一方、LLMを利用することで、先述のinstructionsを定義するだけで、それらのことが処理できるようになります。これだけでもLLMが利用できることによるメリットが感じられます。

  • ユーザが求めるタスクを判定する
  • ユーザからタスクに必要な情報を引き出す
  • ユーザにタスク実行の結果をわかりやすく提示する

といったことをAIを用いて処理するのがAIエージェントにおけるLLMの果たす第一の役割になるかとおもいます。

Tool

AIエージェントの定義はまだ定まりきっていないかと思いますが、少なくとも以下のような特徴があるかとおもいます。

  • ユーザの代わりにタスクを自律的に実行する

「ユーザの代わりに」ということは、ユーザがやろうとしていたことをAI側で代行する必要があります。ですが、AIモデル(LLM)ができることは、基本的には与えられたテキストデータや画像データを入力して、テキストデータを生成することです。外部のデータを入力として取りにいくこともできなければ、結果をファイルとして保存することもできません。

そこでToolという概念が登場します。

Toolは簡単にいえば、LLMと連携させることを前提にした関数です。簡単に動作を説明すると、プログラムが関数の情報をLLMに渡して、タスクを実行する際に必要であればLLMに「タスク実行のためにこの関数をこの引数で呼び出して、その結果ください!」と出力させます。そして、その出力情報に応じてプログラム側で関数を実行し、その結果をLLMに戻すことで、LLMは情報を得たり、外部へのアクションを起こします。

先ほどのweatherToolは、src/mastra/tools/index.tsに定義されています。getWeatherは与えられたlocationの情報をもとに、open-meteoのAPIを使って、緯度経度を算出し、その緯度経度の天気情報を取得する関数となっています。

export const weatherTool = createTool({
  id: 'get-weather',
  description: 'Get current weather for a location',
  inputSchema: z.object({
    location: z.string().describe('City name'),
  }),
  outputSchema: z.object({
    temperature: z.number(),
    feelsLike: z.number(),
    humidity: z.number(),
    windSpeed: z.number(),
    windGust: z.number(),
    conditions: z.string(),
    location: z.string(),
  }),
  execute: async ({ context }) => {
    return await getWeather(context.location);
  },
});

このToolが求める入力情報と、出力情報のスキーマ(構造)、および実行する関数が定義されています。

これによって、LLMは「天気を調べる」というユーザのタスクにおける「特定のlocationの天気情報を調べる」というタスクを代行することができるようになります。

さらに、Toolは複数指定することができます。つまり、今回のケースであれば天気情報を取得するというweatherTool一個ですが、別にメールを送信するためのToolを定義し、与えることができます。

export const sendMailTool = createTool({
  id: 'send-email',
  description: 'Send result mail.',
  inputSchema: z.object({
    mailAddress: z.string().describe('MailAddress'),
  }),
  outputSchema: z.object({
    status: z.string(),
  }),
  execute: async ({ context }) => {
    return await sendMail(context.mailAddress);
  },
});

上記のようなToolを追加し、weatherAgentのtoolsに与えることで、weatherAgentにメール送信の能力を与えることができるようになります。

それによって、「ロンドンの天気を調べて、 example@example.com に送信しておいて」といったユーザの発話によって天気調査とメール送信といったタスクを実行できるようになります。

また、「ロンドンの天気を調べて」とだけ言われた時にはメールを送らず、上記のようにメール送信の依頼があった時にメールを送るようになります。

このように、if文などの制御文を挟まずに複数のToolと目的を与えることでAgentが自律的にタスクに必要な処理を判断し、実行してくれるようにフローをシンプルに組めるのがAgent機能の強力な点だと言えます。

Workflow

一方で、ユースケースによっては、必ず実行したいタスクの組み合わせもあるでしょう。ユーザの特定の発話に限らずセットで実行したい処理などです。先ほどの例であれば、AIの判断によらずメール送信を必ずセットで行いたい場合などです。

もちろん、weatherToolの処理の最後にメールを送信することも考えられますが、そのような場合に、Mastraで利用できる仕組みにWorkflowがあります。これは名前のごとしですが、規定の順番で決められた処理を実行するワークフローをつくるための機能です。

例えば、MastraのExampleコードでは、src/mastra/workflows/index.tsに、以下のようなWorkflowが定義されています。

const weatherWorkflow = new Workflow({
  name: 'weather-workflow',
  triggerSchema: z.object({
    city: z.string().describe('The city to get the weather for'),
  }),
})
  .step(fetchWeather)
  .then(planActivities);

weatherWorkflow.commit();

fetchWeatherはweatherToolと同じように、open-meteoのAPIで天気情報を取得する処理、planActivitiesは、fetchWeatherによって取得された天気情報から、LLMに活動予定計画を生成させる処理になります。

このように、Workflowを利用することで、より構造的にタスクの流れを定義できます。失敗時のエラーハンドリングや回数実行の制御など一般的なワークフローを制御するための仕組みもあるので、Mastra単体でタスク実行のワークフローを組めるのはメリットだと言えるでしょう。ただし、このようなことは、普通のワークフローツールでもできるので、Mastraじゃなくても(というよりAIエージェントじゃなくても)可能です。

では、MastraのWorkflowを使うと嬉しい点はなんなのか。それは、ワークフローの各ステップにおける処理でAgentを指定できるので、Agentの処理結果による分岐をシームレスに定義できることだと思います。

たとえば、「直近の業界ニュースを取得」し、「特定の業界に深刻な影響を与えるか判定」した上で、「影響ありの場合に通知する」といったワークフローを組みたい場合に、ネックとなるのは「深刻な影響を与えるかどうかの判定」をどう実現するかになります。その一つの解は、(どのような指標を基準とするか、instructionsの工夫は必要ですが)Agent(のLLM)に判定させるという方法です。

そのようなケースにおいて、Agentをワークフローにシームレスに結合し、Agentの判定結果によって処理フローを構築できるWorkflowは便利かとおもいます。

Agent Network(Experimental)

Workflowを使うことによっても、複数のAgentを組み合わせてタスク実行を行うことができますが、Mastraには複数のエージェントを共同させるための仕組みがもう一つ用意されています。

それがAgentNetworkという仕組みです。これは複数のAgentの集まりに対して、「RoutingAgentと呼ばれる制御用のAgentが、求められたタスクに応じて仕事を動的に割り振っていく」という仕組みです。

import { AgentNetwork } from '@mastra/core';
import { openai } from '@mastra/openai';

// Create specialized agents
const webSearchAgent = new Agent({
  name: 'Web Search Agent',
  instructions: 'You search the web for information.',
  model: openai('gpt-4o'),
  tools: { /* web search tools */ },
});

const dataAnalysisAgent = new Agent({
  name: 'Data Analysis Agent',
  instructions: 'You analyze data and provide insights.',
  model: openai('gpt-4o'),
  tools: { /* data analysis tools */ },
});

// Create the network
const researchNetwork = new AgentNetwork({
  name: 'Research Network',
  instructions: 'Coordinate specialized agents to research topics thoroughly.',
  model: openai('gpt-4o'),
  agents: [webSearchAgent, dataAnalysisAgent],
});

// Use the network
const result = await researchNetwork.generate('Research the impact of climate change on agriculture');
console.log(result.text);

上記はMastraの公式のサンプルですがこのように、複数のAgentをAgentNetworkに集めて、’Research the impact of climate change on agriculture’というプロンプトから適切なAgentを自律的に選択しながら、気候変動の農業の影響を調査するタスクを実行します。

このような仕組みはマルチエージェントシステムと呼ばれます。それぞれのAgentを専門化させて、それを適宜使い分けてタスク達成を目指すという流れです。ここで次のように思われた方もいるかと思います。Agentに色々なツール、例えば上記の例で言えば、webから情報を取得するToolとデータを分析するToolを搭載するのではだめなのでしょうか。

上記の例でいえば問題になることはないと思います。マルチエージェントシステムが必要になってくるのは、より大規模で複雑なタスクをAIエージェントシステムで実行する状態になった時だと思います。

Agentにおける利用に限らず、LLMに渡すテキストが巨大になればなるほど、その解釈の精度が悪くなっていきます。また、外部APIを利用している際には、LLMに与えるテキスト情報が長ければ長いほどコストがかかってくることにもなります。ローカルでLLMをホストしている場合でもCPU、メモリ、ネットワークといったリソースをより多く消費することになります。

つまりAgentにおけるinstructionsやToolの役割などの定義情報が巨大になっていけばいくほど、Agentとしてのタスク処理の精度やコストの面で不利になっていきます。そこで各Agentをより専門化し、それらを連携させることでなるべく効率的に実行させる仕組みがマルチエージェントシステムとなります。

終わりに

Mastraを構成する代表的な要素について紹介してきました。

  • Agent
  • Tool
  • Workflow
  • AgentNetwork

これらの要素は他のAIエージェントフレームワーク、例えばLangGraphや、AgentsSDKでも似たような要素が存在します。それはAIエージェントの本質がそこに凝縮されているからだと思います。

  • Agentに何をサポートさせるかを定義し、適切なinstructionsを与えること
  • Agentがタスクを実行するのに必要なTool(外部処理)を適切に用意し使い分けさせること
  • Workflowを組んで目的の処理を構成する要素を適切に定義すること
  • 適切に専門化させたAgentを用意し、それらをうまく協調させること

「適切」という言葉を連発していますが、AIエージェントシステムの肝は上記の要素を如何に適切に調整していけるかだと思います。

以上、参考になれば幸いです。

浅田大輔
クラウドサービスソリューション学部・AIエバンジェリスト。
認定ホワイトハッカー。映画・歴史好き。
座右の銘は「酒は人類の友だぞ。友人を見捨てられるか」。

2025年度アピリッツ入社式、67名を迎えました!

0

2025年4月1日にアピリッツは入社式を行いました。今年は67名の新入社員が入社!
今回も当日の様子をご紹介します。

新しいオフィスで新しい気持ちで

昨年9月にサクラステージに本社移転をしたアピリッツ。

今年は、新しいオフィスのカフェスペースで入社式を執り行いました!

緊張した新入社員の顔を見てわたしたちも気が引き締まる思いでした。

まずは役員の歓迎の挨拶から

今年も経営陣から新入社員への挨拶から式がスタート。

社長の和田から始まり、役員陣からも熱いメッセージをいただきました。

左上から順に和田、永山、八木、長谷

一緒に働く仲間としてよろしくお願いします。皆さんが今後進んでいく方向性というのは、単なるプログラムがかける作業員、3Dのモデルができる作業員ではなく、お客様と話して要件を詰めたり等の上流の仕事を目指していかないと、将来自分たちの仕事がなくなるということを理解してください。人を育成して事業をまわしていくという構造をとれなくなってきている世の中です。上流工程の仕事を学んでいく姿勢がないと職がなくなるということを考えて行動していただければと思います。(代表取締役社長・和田)

社会に出ると自分で決めないといけないことがたくさん出てきます。人生は思った通りにならないことが増えていきます。その時の置かれた状況で何ができるか、どの選択が良いか、を自分で考えなければいけなくなります。そんな状況を逆に楽しんで、こんなピンチ乗り超えちゃったぜと言えるような選択をできるように頑張っていただければいいのかなと思います。冒険を楽しんでください。(執行役員・永山)

皆さんと同じで、期待や不安を抱えて新卒入社した新卒17年目になります。なぜ長くいるかというと、長くいればいるだけ仕事はやりやすくなり、自分がやりたいことが楽に実現できるからです。そして、大きな実績や大きな成長につながっていくのであれば、それを利用して自分の人生を楽しむ。楽しむために仕事を利用する。皆さんも自分自身でできることやれること、楽しいと思えることで、実績を上げてください。一方で、チャンスは訪れますが、チャンスには限りがあって、チャンスを見逃すリスクもあります。自分の過去の考え方でブレーキかけるのではなく、様々なことに挑戦をして目の前のチャンスを掴んでください。(執行役員・長谷)

思い通りにならないことが、ぼーっとしてても一生懸命やってても無限に訪れます。思い通りにならないことが嫌だと思う気持ちが、一番自分の成長や前に進む力を阻害していく要因になるので、上手く向き合えるようにストレスを解消できるようなものを色々見つけてください。すこしでも話せる仲間の輪をひろげていってください。(執行役員・八木)

新入社員から抱負を一言!

役員陣の挨拶が終わった後は、一人ひとり抱負を話してもらいました。

座右の銘をもう一つつけました。座右の銘に負けないように頑張りたいと思います!

精進という言葉が好きです。その言葉に恥じない人になります!

入社したばかりの私はまだ初期化されたばかりの変数みたいなものですが、日々頑張っていきますのでご指導ご鞭撻、私のデバッグのほどよろしくお願いします!

様子を見に来た社員も見守る中の決意表明。

たった一言ずつでしたが、言葉から熱意が伝わってきました!!!

そんな新入社員の皆さんは早速新卒研修が始まったようです^^

そして、今年も来年に向けて2026新卒の採用も始まっております。

学生の皆様のエントリー、お待ちしております!

最近人気な記事