2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ServiceNow】Build Agent に"設計書"を渡したら、ホロスコープ占いアプリが本気の仕上がりになった🔮(前編)

2
Last updated at Posted at 2026-10-03

はじめに

この記事は、#BuildWithBuildAgentTokyo への参加記事です。
前編と後編に分けて書きます。

  • 前編(この記事): 作ったもの、進め方、AI 解説を組み込むまで
  • 後編: エラーとの格闘、デザインの作り込み、反省

ServiceNow の Build Agent で、ホロスコープ占いアプリ NOW HOROSCOPE を作りました。まずは動画をご覧ください。

生年月日と出生地を入れると、星の配置を計算して円形のホロスコープを描き、AI が占い師の口調で読み解いてくれます。

作ったもの

使い方は4ステップです。

1. 出生情報を入力する

ニックネーム、生年月日、出生時刻、出生地を入れます。出生地は地名で検索すると、緯度と経度が自動で入ります。

01_入力カード_出生地候補.png

2. ホロスコープが描かれる

「ホロスコープを計算する」を押すと、10天体とハウス、アスペクト(天体同士の角度)を計算して、円形のチャートを描きます。太陽・月・アセンダントの「3つのポイント」と、火・地・風・水のエレメントバランスも並びます。

02_チャートカード.png

3. AI が読み解く

「AI に解説してもらう」を押すと、計算した星の配置をもとに、AI が解説を書きます。

03_解説生成中.png

04_解説表示.png

4. 結果が保存される

入力値、計算結果、解説、使ったモデルやトークン数が、カスタムテーブルに1件ずつ残ります。自分のレコードだけが見える ACL を付けています。
※スクリーンショットはadminで取得しています。

05_解説の履歴リスト.png

題材のきっかけ

家族に占い好きがいて、最近よく「ホロスコープ」という言葉を耳にします。生まれた瞬間の星の配置を円に描き、太陽や月がどの星座にあるかなどから性格を読むそうです。話を聞くうちに、占いそのものより「どうやって星の位置を計算しているのか」が気になりました。
調べると、生年月日や場所をもとに天文計算しているとのこと。それならServiceNow上でも作れるのではと思い、題材にしました。

進め方

Build Agent は、開発者インスタンス(PDI)のトライアルだと、プロンプトを送れるのが月25回です。私はこのアプリの前に別のアプリでも使っていたので、残り回数はわずかでした。

「とりあえず投げて、出てきたものを見て直す」では上限に達してしまいそうだったため、技術調査やプロンプト作成は Claude(Opus 5.5)に、ServiceNow の実装は Build Agent に、と役割を分けました。

担当 役割
人間(自分) 何を作るか決める。Claude が作ったプロンプトを Build Agent に送る。できたものを確かめる
Build Agent ServiceNow 上での実装、ビルド、インストール
Claude(Opus 5.5) 技術調査、設計、Build Agent に渡すプロンプトの作成

Claude と対話して調査と設計を固め、出てきたプロンプトをそのまま Build Agent に送っています。

技術調査

ホロスコープのライブラリを探す

ServiceNow SDK(Fluent)の UI Page では npm のライブラリが使える、ということは知っていました。そこで、ホロスコープを計算・描画する JavaScript / TypeScript のライブラリを探しました。

今回は Claude とも対話し、circular-natal-horoscope-js と @astrodraw/astrochart を採用しました。

出生地の検索

緯度と経度を手で入れるのは大変なので、地名から引けるようにしました。使ったのは OpenPOI API です。API キーが不要で、ブラウザから直接呼べます。対象は日本国内だけなので、海外の方向けに手入力欄も残しました。

全体構成

設計で決めたことは3つです。

1. 計算と描画は、すべてブラウザでやる

チャートを描くまでは、サーバーとの通信がありません。入力したらすぐ結果が出ます。

2. API キーはブラウザに出さない

AI の呼び出しは、ブラウザから直接ではなく、自作の Scripted REST API を通します。API キーは Connection & Credential Alias に登録し、サーバー側のスクリプトだけが取り出します。ソースコードにもシステムプロパティにも、キーは書いていません。

3. 個人情報を送らない

個人情報は占い結果には不要なため、外部の LLM には計算結果のみ送っています。

実装の流れ

Build Agent には、1回ごとに範囲を区切って頼みました。全体は次の6回です。

# 頼んだこと
1 入力 → 計算 → 円形チャートの描画(PoC)
2 ニックネーム、出生地検索、ハウスシステムの日本語化
3 AI 解説と保存(Alias、Scripted REST API、カスタムテーブル、ACL)
4 エラーの修正と、デザインの適用
5 エラーの再修正
6 画面の使い勝手の改善 ※とある事情により完了できず

前編では、このうち 1〜3 を紹介します。4〜6 は後編です。

1回目: まず円を描く

保存も AI も後回しにして、「入力 → 計算 → 円形チャート」だけを頼みました。

12_1回目_BuildAgent完了直後.png

見た目は素っ気ないですが、1回でチャートが描けました。計算結果も、あらかじめ用意しておいた期待値と秒の単位まで一致しています。

2回目: 入力まわりを整える

ニックネームの入力、「〇〇さんのホロスコープ」という見出し、地名での出生地検索、ハウスシステムの日本語表示を足しました。

13_2回目_出生地検索(旧UI).png

3回目: AI 解説と保存

ここが一番大きな回です。1回のプロンプトで、次のものをまとめて頼みました。

  • Connection & Credential Alias(API キーの置き場所)
  • カスタムテーブル、ロール、ACL
  • Scripted REST API と、サーバー側のモジュール
  • DeepSeek の呼び出し
  • 画面の解説パネル

ちなみにプロンプトを送ると、Build Agent はまず作業の計画(Plan)を出してきます。今回のプロンプトは4つのフェーズに分けて頼んでいたので、計画もその順番どおりに組まれていました。計画を詳細に組んでいない場合は、Build Agent自身が計画立てから考えてくれるみたいです。
(Plan画面が英語で出力されましたが、それはご愛敬。)
image.png

テーブルのカラムは、保存したい情報だけを伝えて、設計は Build Agent に任せました。
以下の画像は、Build Agentが設計したカラムの一部です。

スクリーンショット 2026-10-03 175712.png

Connection & Credential Aliasもしっかり作成されていました。

16_3回目_Credential登録.png

17_3回目_フェーズ1完了レポート.png

プロンプトに必ず入れた4つのこと

全文は長いので載せませんが、どの回にも共通して入れたものがあります。

  1. 決めておいた構成: 使うライブラリとバージョンを指定し、「設計を変えないこと」と書く
  2. 数値つきの完了条件: 「動くこと」ではなく、期待する値を書く
  3. やってはいけないこと: 使わないライブラリ、作ってはいけないファイル
  4. 失敗したら止まって報告: 独自の回避策を試させない

2 の例として、1回目のプロンプトに書いた受け入れテストを載せます。

## 受け入れテスト
初期値(1990-06-15 14:30、緯度 35.6895、経度 139.6917)と Placidus で計算したとき、次が表示されること:
太陽 ≈ 83.87°(双子座 23°52')、月 ≈ 341.74°(魚座)、アセンダント ≈ 209.30°(天秤座)、
MC ≈ 123.14°(獅子座)。土星・天王星・海王星・冥王星に逆行マークが付く。
12 サインの帯、12 本のハウスカスプ、惑星記号、アスペクト線を持つ SVG の円形チャートが描画される。

期待値を書いておくと、Build Agent の出力が正しいかどうかを、画面を見てすぐ判断できます。

前編のまとめ

  • Build Agent の回数が限られていたので、調査と設計を Claude と済ませてから投げた
  • 1回ごとに範囲を区切り、まず円を描くところから始めた
  • 完了条件を数値で書くと、結果が正しいかどうかをすぐ判断できた

ここまで読むと順調に見えますが、実際は3回目のプロンプトのあと、AI 解説のボタンがうまく起動せず試行錯誤しました。後編では、そのエラーと直し方、そして最後の1回を無駄にした話を書きます。

冒頭の動画の見た目になるのも、後編です。

ServiceNow World Forum Tokyo のご案内

★ ServiceNow World Forum Tokyo 2026 ★
ServiceNow の国内最大のイベント、World Forum Tokyo 2026 が、10月27日(火)・28日(水)にグランドプリンスホテル新高輪で開かれます。基調講演や最新の製品の話が聞けるだけでなく、ServiceNow に関わる人たちと直接話せる、年に一度の機会です。

今回のチャレンジで優秀賞に選ばれたアプリは、会場の「Vibe Code ラウンジ」に並ぶそうです。
この記事を読んで「良いな」と思っていただけたら、ぜひ下のリンクから参加登録をお願いします!

👉 ServiceNow World Forum Tokyo 2026 への参加はこちらから

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?