Skip to content

行き先相談エージェントが乗換の必要な駅も行き先として提案するようにする - #44

Merged
TinyKitten merged 1 commit into
devfrom
feature/agent-transfer-route-suggestions
Sep 22, 2026
Merged

TinyKitten merged 1 commit into
devfrom
feature/agent-transfer-route-suggestions

Conversation

@TinyKitten

@TinyKitten TinyKitten commented Sep 22, 2026 •

Copy link
Copy Markdown
Member

概要

行き先相談エージェントが、乗り換えが必要な駅も行き先として提案できるようにします。

TrainLCD/StationAPI#1687 で、stationsByName に fromStationGroupId を渡したときの結果が変わりました。乗り換えなしで行ける駅に加えて、乗り換えれば行ける鉄道駅も返ります。アプリ側でも TrainLCD/MobileApp#7018 で、行き先を選んだあとの経路を connectedRoutes から取るようになりました。これで乗換経路を選んで走らせられます。チャットの提案カードも、経路検索と同じ useDestinationSelection を通ります。

一方で、エージェントのプロンプトとツール説明は「乗り換えなしで行ける駅だけを返す」という前提のままでした。モデルには、直通で行ける乗換駅を代わりに提案させる回避策も指示していました。このPRでは、これらの文言を今の検索仕様に合わせます。

変更内容

  • src/agent/prompt.ts
    • システムプロンプトで、検索結果には乗り換えれば行ける駅も含むと伝えます。0 件の意味は「直通で行けない」から「鉄道で行けないか、表記が照合できていない」に変えました。
    • 「# 直通候補がないとき」節を削除しました。代わりに「# 乗り換えが必要な行き先」節を置き、乗り換えが必要でも行きたい駅そのものを提案させます。
    • 経由する路線・乗換駅・乗り換えの回数・所要時間・運賃・直通運転の有無は、検索結果から分かりません。この節で、これらを断定しないよう指示します。
    • 候補が見つからないときの手順は「# 候補が見つからないとき」節に残しました。確認の質問を1つだけ返す手順です。
    • 現在駅を伝えるコンテキスト文(buildContextMessage)も同じ前提に直しました。
  • src/agent/tools.ts: ツール説明と 0 件時の notice を直しました。引き直し先は「現在駅の路線・直通先の沿線」から「同じ地域の別の駅」に変えています。スコープの種類(StationSearchScope)と出し分けは変えていません。
  • src/cli/typesafe-rerank-spike.ts: 検索の前提を説明するコメントを1行直しました。
  • テスト: 旧仕様の文言を固定していた prompt.test.ts・tools.test.ts・handler.test.ts の該当部分を、新しい前提を固定する形に書き換えました。

デプロイ

src/** を変えているので、dev にマージすると dev 環境へ自動でデプロイされます(deploy_dev.yml)。dev の Worker は stationapi-stg につながっていて、StationAPI#1687 はそこに反映済みです。

本番の Worker は stationapi につながっています。StationAPI#1687 は StationAPI の master にまだ入っていません。このPRを master へ反映するのは、本番の StationAPI と MobileApp#7018 を含むアプリをリリースしてからにしてください。先に反映すると、モデルには実際と違う検索仕様を伝えることになります。

確認に使ったコマンド

npm run typecheck && npm run lint && npm test

すべて通過しました(319 tests passed)。LLM に実際に問い合わせる確認(wrangler dev)はしていません。

バインディング・シークレット等の変更

vars、シークレット、Service Binding、KV、R2、Queue、Cron の変更はありません。依存パッケージの追加もありません。

🤖 Generated with Claude Code

Summary by CodeRabbit

  • 機能改善
    • 駅検索で、乗り換えが必要な鉄道到達可能駅も候補に含めるようになりました。
    • 検索結果がない場合、同地域の別駅で再検索できるよう案内を改善しました。
    • 候補がない場合は、鉄道での到達可否や表記の確認を促し、具体的な確認事項を提示します。
    • 経路・乗換回数・所要時間・運賃などを断定しない案内に更新しました。

@TinyKitten TinyKitten self-assigned this Sep 22, 2026
@coderabbitai

coderabbitai Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Essentials

Run ID: e34ad406-459f-4bec-99d2-be54503fbbad

📥 Commits

Reviewing files that changed from the base of the PR and between 69917f7 and be3f883.

📒 Files selected for processing (6)
  • src/agent/handler.test.ts
  • src/agent/prompt.test.ts
  • src/agent/prompt.ts
  • src/agent/tools.test.ts
  • src/agent/tools.ts
  • src/cli/typesafe-rerank-spike.ts

Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 3 reviews per hour.


📝 Walkthrough

Walkthrough

駅検索の対象を、直通駅から乗り換えを含む鉄道到達可能な駅へ変更しました。候補なし時の再検索と確認要求を更新し、プロンプト、ツール、テスト、評価セットを整合させました。

Changes

駅検索範囲の拡張

Layer / File(s) Summary
プロンプトの検索契約
src/agent/prompt.ts, src/agent/prompt.test.ts
乗り換えが必要な目的駅を候補に含めます。未確認の経路、回数、所要時間、運賃は断定しません。候補がない場合は再検索後に具体的な確認を返します。
ツールの検索範囲と案内
src/agent/tools.ts, src/agent/tools.test.ts
駅検索を乗り換えを含む鉄道到達範囲へ変更します。検索結果がない場合は同地域の再検索、または地域・路線の確認を案内します。
関連テストと評価セット
src/agent/handler.test.ts, src/cli/typesafe-rerank-spike.ts
テストと評価セットの説明および期待値を、新しい検索範囲に更新します。

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to be3f8

The agent now includes rail-reachable destinations requiring transfers and provides updated guidance when no candidates are found. No actionable merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed タイトルは、乗り換えが必要な駅を行き先候補として提案するというプルリクエストの主目的を正確かつ簡潔に示しています。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 6…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.


うさぎは駅を検索する
乗り換え先も候補になる
迷ったときは再検索する
具体的な確認を一つ尋ねる
線路の範囲が広がった
にんじん列車が走り出す

Comment @coderabbitai help to get the list of available commands.

@TinyKitten
TinyKitten merged commit 11e1c66 into dev Sep 22, 2026
3 checks passed
@TinyKitten
TinyKitten deleted the feature/agent-transfer-route-suggestions branch September 22, 2026 14:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant