Skip to content

feat(agent): 「Agent に頼めること」— セットアップ後にそのまま貼れる依頼文 5 本 - #550

Merged
cipherwebllc merged 3 commits into
mainfrom
feat/agent-try-prompts
Sep 21, 2026
Merged

cipherwebllc merged 3 commits into
mainfrom
feat/agent-try-prompts

Conversation

@cipherwebllc

@cipherwebllc cipherwebllc commented Sep 21, 2026

Copy link
Copy Markdown
Owner

何を足すか

/agent の「Agent を接続」の下に、新セクション 「Agent に頼めること」。セットアップ後にそのまま Agent へ貼れる依頼文 5 本を、コピーボタンつきで並べる (Arc Portal の「あなたのエージェントができること」を参考・user 発案 9/22)。

タグ 依頼文 使うツール
無料 OpenPay で今買える JPYC のデータと API を一覧にして、それぞれの価格と利用料を教えてください。支払いはしないでください。 discovery_searchx402_quote
支払いあり・3 JPYC JPYC Service Monitor を上限 3 JPYC で購入して、この 1 か月に変わった点を 5 行にまとめてください。 x402_pay
支払いは自分で JPYC で注文できる店を探して、メニューと合計額を見せてください。支払いは私がします。 find_shopsorder_menucreateOrderLink
無料 最近なにを買ったか、金額と取引ハッシュつきで見せてください。 wallet_history (0.16)
無料 いまの支払い上限と、今日使った額を教えてください。 wallet_status

公開文言は user 承認済み (9/22「セクション『Agent に頼めること』良いね。進めて」)。en も同じ 5 本。支払いが起きるのは 1 本だけで、依頼文そのものに上限額を書いてある。

実装

  • 文言 SOT = lib/agentPage.tstryPrompts (server から props で渡す・messages/ には置かない = 既存の /agent の型)
  • components/agent/AgentTryPrompts.tsx (client): 1 枚のカードに 5 行。コピーは useCopyToClipboard + useHydrationSafeAvailable (feat(agent): Agent activity — Agent Wallet の下に JPYC の入出金と直近の送金額を表示 #538 / fix(ui): コピー欄と支払い控えの hydration 不一致をなくす #541 と同じ hydration 対策)・clipboard が無い環境ではボタンを出さない
  • 計測: コピー成功時に track('agent_try_prompt_copy', { id })依頼文の本文は送らない・計測の失敗はコピーに波及させない (掟 13)
  • a11y (掟 8): ボタンの名前は可視テキスト「プロンプトをコピー」・aria-describedby で依頼文に紐づけて 5 つを区別・aria-label 単独付与なし・タップ領域 44px
  • 価格フェンス: 「3 JPYC」を JPYC_SERVICES_RESOURCE.priceJpycDISCLOSED_X402_FEE から導出して、ja / en の依頼文とタグの両方と突き合わせる (価格か利用料を変えたら落ちる)

money-path 不変・新規依存なし・page ファイルは import と 1 行の配置だけ (規定外 export なし)。

検証

  • tests/components/agent + agentPage + pageExports: 11 files / 240 tests pass (新規 21 件)
  • typecheck / eslint OK・npm run build 成功 (Codex 実行)・/[locale]/agent = 354 kB / 予算 356 kB
  • 実機スクショ (next dev -p 3143・ja / en × mobile / desktop): 横はみ出し 0・pageerror 0。セクションの高さ mobile 731px (依頼文ごとにカードを分けた初版は 1,135px → 1 枚のカード+タグとコピーを同じ行に、で圧縮)・desktop 608px。ページ全長 mobile 2,690 → 3,406px

Opus 5 抜け漏れチェック (反映済み)

  • P0 「wallet_history は 0.16 だが Web は 0.15 固定」→ チェック時点の main が古かった。feat(agent): /agent・setup.md・llms.txt を MCP 0.16 に切り替える (wallet_history) #549 (main 916ac75) で 0.16 に切替済み・本 branch も 0.16 を含む
  • P1 計測が共通経路 (lib/agentTrack.ts) を迂回・locale なし → trackAgentEvent('agent_try_prompt_copy', { locale, id }) に統一
  • P1 「人が支払う」で接続した人には 5 本中 4 本のツールが無い → lead に 1 句 (user 承認)
  • P2 支払いの注記「小さいほうが効く」は不正確 (Agent 側の上限のほうが小さいと拒否) → 事実に合わせる (user 承認)
  • P2 aria-live をボタン名に付けると二重に読まれる → ボタン外に role=status を 1 つ
  • P2 価格フェンスの Number 演算 → 実装と同じ BigInt (parseUnits / formatUnits)

文言の最終形 (ja): lead「…コピーして Agent に貼るだけです。「Agent が支払う」で接続したときの例で、店の注文は「人が支払う」でも使えます。」/ paidNote「依頼文の上限を超える支払いは行われません。Agent 側の上限のほうが小さいときは、支払いは拒否されます。」

反映後の実測: セクション mobile 771px / desktop 628px (ja)・横はみ出し 0・pageerror 0・agent テスト 240 pass。

🤖 Generated with Claude Code

https://claude.ai/code/session_01HeizmagJBgL5peL5mQpxkc

Arc Portal の「あなたのエージェントができること」を参考に、/agent の「Agent を接続」の下へ
コピー可能な依頼文を並べる。例はすべて実在の商品とツールに基づく (カタログの一覧・
JPYC Service Monitor の購入・店の注文・購入履歴 = wallet_history・上限の確認)。

- 支払いが起きるのは 1 本だけで、依頼文そのものに上限額 (3 JPYC) を書く。タグで
  無料 / 支払いあり / 支払いは自分で を色分け
- 「3 JPYC」は価格 SOT (JPYC_SERVICES_RESOURCE.priceJpyc) と DISCLOSED_X402_FEE から導出して
  テストで固定 (価格や利用料を変えたら落ちる)
- 文言 SOT は lib/agentPage.ts (server から props で渡す・messages には置かない)
- 1 枚のカードに行を並べる。依頼文ごとのカードだと mobile で 1,135px → 731px に圧縮
  (磨き上げ P1 で削った全長を戻さない)
- コピーは useHydrationSafeAvailable で server と初回描画を揃える・計測は成功時に id だけ
  (依頼文の本文は送らない)・a11y 名は可視テキスト + aria-describedby で 5 つのボタンを区別

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HeizmagJBgL5peL5mQpxkc
@vercel

vercel Bot commented Sep 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
openpay Ignored Ignored Preview Sep 21, 2026 10:56pm UTC

Request Review

cipherwebllc and others added 2 commits September 22, 2026 07:52
…チェック反映)

- 計測: @vercel/analytics を直接呼んでいたのを lib/agentTrack.ts の trackAgentEvent に統一。
  他の agent イベントと同じく locale を付ける (ja / en を分けて見られない唯一のイベントだった)。
  送るのは依頼文の id だけで本文は送らない
- 読み上げ: 5 つのボタンの名前そのものを aria-live にしていたため、名前の変更と live region が
  二重に読まれていた → ボタンの外に role=status を 1 つだけ置く
- 価格フェンス: Number 演算だと小数価格で偽 fail (0.3 + 1 = 1.2999…) → 実装と同じ atomic の
  BigInt 演算 (parseUnits / formatUnits) に

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HeizmagJBgL5peL5mQpxkc
- lead: 「Agent が支払う」で接続したときの例で、店の注文は「人が支払う」でも使える、を 1 句
  (human-pays = order profile には 5 本中 4 本のツールが無い)
- paidNote: 「小さいほうが効く」は不正確 (Agent 側の上限のほうが小さいと支払いは拒否される) →
  「依頼文の上限を超える支払いは行われない・Agent 側の上限のほうが小さいときは拒否」に

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HeizmagJBgL5peL5mQpxkc
@cipherwebllc
cipherwebllc merged commit f5c57c8 into main Sep 21, 2026
7 checks passed
@cipherwebllc
cipherwebllc deleted the feat/agent-try-prompts branch September 21, 2026 23:17
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