mcpField
R
reputation

reputation

github.com/aibtcdevエージェントワークフロー11147 回インストール1 日前に更新
リポジトリ

reputation について

Reputationは、ERC-8004のオンチェーンエージェント評判レジストリを操作するコマンドラインスキルです。ウォレット不要の照会と、ウォレット認証が必要なフィードバックや承認操作に対応します。

主な機能

  1. 01エージェント評判の概要を取得
  2. 02フィードバックの照会とページネーション
  3. 03タグによるフィードバックの絞り込み
  4. 04フィードバックの送信と取り消し
  5. 05フィードバックへの応答追加
  6. 06インデックス上限付きクライアント承認

活用シーン

  1. 01エージェントの総合評判を確認する
  2. 02クライアントからのフィードバックを確認する
  3. 03送信済み評価を取り消す
  4. 04クライアントによる評価送信を許可する

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aibtcdev/skills --skill reputation

インストール後、Claude Code で/reputationを入力して読み込まれたか確認します。

同梱ファイルAGENT.mdreputation.ts

詳細

Reputation Skill

reputation-registry コントラクトを使用して、ERC-8004 のオンチェーンエージェントの評判を操作します。読み取り操作(get-summary、read-feedback、read-all-feedback、get-clients、get-feedback-count、get-approved-limit、get-last-index)はウォレットなしで実行できます。書き込み操作(give-feedback、revoke-feedback、append-response、approve-client)には、ロック解除済みのウォレットが必要です。

使用方法

bun run reputation/reputation.ts <subcommand> [options]

サブコマンド

give-feedback

ERC-8004 reputation registry のエージェントにフィードバックを送信します。ロック解除済みのウォレットが必要です。

bun run reputation/reputation.ts give-feedback --agent-id <id> --value <value> [--value-decimals <decimals>] [--tag1 <tag>] [--tag2 <tag>] [--endpoint <endpoint>] [--feedback-uri <uri>] [--feedback-hash <hex>] [--fee <fee>] [--sponsored]

オプション:

  • --agent-id(必須)— フィードバックを送信するエージェント ID(0 以上の整数)
  • --value(必須)— フィードバック値(符号付き整数。例:肯定的な評価は 5、否定的な評価は -2)
  • --value-decimals(任意、デフォルトは 0)— 値の小数点以下の桁数(0 以上の整数)
  • --tag1(任意)— 主分類タグ(例:"helpful"、"accuracy")
  • --tag2(任意)— 副分類タグ
  • --endpoint(任意)— フィードバックのエンドポイントまたはコンテキスト識別子
  • --feedback-uri(任意)— 詳細なフィードバックデータを指す URI
  • --feedback-hash(任意)— フィードバックデータの 32 バイトの SHA-256 ハッシュを 16 進数文字列で指定
  • --fee(任意)— 手数料プリセット(low、medium、high)または micro-STX の金額
  • --sponsored(フラグ)— スポンサー付きトランザクションとして送信

出力:

{
  "success": true,
  "txid": "0xabc...",
  "message": "Feedback submitted for agent 42.",
  "agentId": 42,
  "value": 5,
  "valueDecimals": 0,
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/0xabc..."
}
revoke-feedback

以前に送信したフィードバックを取り消します。フィードバックを送信した本人(tx-sender)のみ、自分のフィードバックを取り消せます。ロック解除済みのウォレットが必要です。

bun run reputation/reputation.ts revoke-feedback --agent-id <id> --index <index> [--fee <fee>] [--sponsored]

オプション:

  • --agent-id(必須)— 取り消すフィードバックのエージェント ID(0 以上の整数)
  • --index(必須)— 取り消すフィードバックのインデックス(0 以上の整数)
  • --fee(任意)— 手数料プリセット(low、medium、high)または micro-STX の金額
  • --sponsored(フラグ)— スポンサー付きトランザクションとして送信

出力:

{
  "success": true,
  "txid": "0xdef...",
  "message": "Feedback index 0 revoked for agent 42.",
  "agentId": 42,
  "index": 0,
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/0xdef..."
}
append-response

フィードバックエントリーに応答を追加します。任意のプリンシパルが応答を追加でき、コントラクトはフィードバックエントリーごとに一意の応答者を追跡します。ロック解除済みのウォレットが必要です。

bun run reputation/reputation.ts append-response --agent-id <id> --client <address> --index <index> --response-uri <uri> --response-hash <hex> [--fee <fee>] [--sponsored]

オプション:

  • --agent-id(必須)— フィードバックに関連付けられたエージェント ID(0 以上の整数)
  • --client(必須)— 元のフィードバック送信者の Stacks アドレス
  • --index(必須)— 応答するフィードバックのインデックス(0 以上の整数)
  • --response-uri(必須)— 応答データを指す URI
  • --response-hash(必須)— 応答データの 32 バイトの SHA-256 ハッシュを 16 進数文字列で指定
  • --fee(任意)— 手数料プリセット(low、medium、high)または micro-STX の金額
  • --sponsored(フラグ)— スポンサー付きトランザクションとして送信

出力:

{
  "success": true,
  "txid": "0xghi...",
  "message": "Response appended to feedback index 0 for agent 42.",
  "agentId": 42,
  "client": "SP2...",
  "index": 0,
  "responseUri": "ipfs://response...",
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/0xghi..."
}
approve-client

指定したインデックス上限まで、クライアントアドレスがエージェントにフィードバックを送信できるよう承認します。呼び出し元はエージェントの所有者または承認済みオペレーターである必要があります。ロック解除済みのウォレットが必要です。

bun run reputation/reputation.ts approve-client --agent-id <id> --client <address> --index-limit <limit> [--fee <fee>] [--sponsored]

オプション:

  • --agent-id(必須)— 承認を設定するエージェント ID(0 以上の整数)
  • --client(必須)— 承認するクライアントの Stacks アドレス
  • --index-limit(必須)— クライアントが送信できるフィードバックエントリーの最大数(0 以上の整数)
  • --fee(任意)— 手数料プリセット(low、medium、high)または micro-STX の金額
  • --sponsored(フラグ)— スポンサー付きトランザクションとして送信

出力:

{
  "success": true,
  "txid": "0xjkl...",
  "message": "Client SP3... approved for agent 42 up to index limit 10.",
  "agentId": 42,
  "client": "SP3...",
  "indexLimit": 10,
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/0xjkl..."
}
get-summary

エージェントの評判の集計サマリーを取得します。フィードバックの合計数と、WAD で平均化したサマリー値を返します。ウォレットは不要です。

bun run reputation/reputation.ts get-summary --agent-id <id>

オプション:

  • --agent-id(必須)— 照会するエージェント ID(0 以上の整数)

出力:

{
  "success": true,
  "agentId": 42,
  "totalFeedback": 7,
  "summaryValue": "5000000000000000000",
  "summaryValueDecimals": 18,
  "network": "mainnet"
}
read-feedback

エージェント ID、クライアントアドレス、フィードバックインデックスを指定して、特定のフィードバックエントリーを読み取ります。ウォレットは不要です。

bun run reputation/reputation.ts read-feedback --agent-id <id> --client <address> --index <index>

オプション:

  • --agent-id(必須)— 照会するエージェント ID(0 以上の整数)
  • --client(必須)— フィードバック送信者の Stacks アドレス
  • --index(必須)— 読み取るフィードバックのインデックス(0 以上の整数)

出力:

{
  "success": true,
  "agentId": 42,
  "client": "SP2...",
  "index": 0,
  "value": 5,
  "valueDecimals": 0,
  "wadValue": "5000000000000000000",
  "tag1": "helpful",
  "tag2": "",
  "isRevoked": false,
  "network": "mainnet"
}
read-all-feedback

エージェントのフィードバックエントリーをすべて、ページネーションで取得します。タグによる任意の絞り込みと、カーソルベースのページネーション(ページサイズ:14)に対応しています。ウォレットは不要です。

bun run reputation/reputation.ts read-all-feedback --agent-id <id> [--tag1 <tag>] [--tag2 <tag>] [--include-revoked] [--cursor <cursor>]

オプション:

  • --agent-id(必須)— クエリ対象のエージェント ID(0 以上の整数)
  • --tag1(任意)— プライマリータグで絞り込みます
  • --tag2(任意)— セカンダリータグで絞り込みます
  • --include-revoked(フラグ)— 取り消されたフィードバックエントリーを結果に含めます
  • --cursor(任意)— 前回のレスポンスから取得したページネーションカーソル

出力:

{
  "success": true,
  "agentId": 42,
  "items": [
    {
      "client": "SP2...",
      "index": 0,
      "value": 5,
      "valueDecimals": 0,
      "wadValue": "5000000000000000000",
      "tag1": "helpful",
      "tag2": "",
      "isRevoked": false
    }
  ],
  "cursor": null,
  "network": "mainnet"
}
get-clients

エージェントにフィードバックを提供したクライアントアドレスの一覧を、ページネーションで取得します。ページサイズ 14 のカーソルベースのページネーションに対応しています。ウォレットは不要です。

bun run reputation/reputation.ts get-clients --agent-id <id> [--cursor <cursor>]

オプション:

  • --agent-id(必須)— クエリ対象のエージェント ID(0 以上の整数)
  • --cursor(任意)— 前回のレスポンスから取得したページネーションカーソル

出力:

{
  "success": true,
  "agentId": 42,
  "clients": ["SP2...", "SP3..."],
  "cursor": null,
  "network": "mainnet"
}
get-feedback-count

エージェントのフィードバックの合計件数を取得します。ウォレットは不要です。

bun run reputation/reputation.ts get-feedback-count --agent-id <id>

オプション:

  • --agent-id(必須)— クエリ対象のエージェント ID(0 以上の整数)

出力:

{
  "success": true,
  "agentId": 42,
  "feedbackCount": 7,
  "network": "mainnet"
}
get-approved-limit

エージェント上でクライアントに承認されたフィードバックインデックスの上限を確認します。クライアントに明示的な承認がない場合は 0 を返します。ウォレットは不要です。

bun run reputation/reputation.ts get-approved-limit --agent-id <id> --client <address>

オプション:

  • --agent-id(必須)— クエリ対象のエージェント ID(0 以上の整数)
  • --client(必須)— 確認するクライアントの Stacks アドレス

出力:

{
  "success": true,
  "agentId": 42,
  "client": "SP3...",
  "approvedLimit": 10,
  "network": "mainnet"
}
get-last-index

エージェント上でクライアントが最後に付与したフィードバックインデックスを取得します。クライアントがフィードバックを一度も付与していない場合は 0 を返します。ウォレットは不要です。

bun run reputation/reputation.ts get-last-index --agent-id <id> --client <address>

オプション:

  • --agent-id(必須)— クエリ対象のエージェント ID(0 以上の整数)
  • --client(必須)— 確認するクライアントの Stacks アドレス

出力:

{
  "success": true,
  "agentId": 42,
  "client": "SP3...",
  "lastIndex": 2,
  "network": "mainnet"
}

注意事項

  • 読み取り操作(get-summary、read-feedback、read-all-feedback、get-clients、get-feedback-count、get-approved-limit、get-last-index)はウォレットなしで実行できます
  • 書き込み操作には、ロック解除済みのウォレットが必要です(bun run wallet/wallet.ts unlock)
  • フィードバックの値は符号付き整数です。小数の精度を指定するには --value-decimals を使用してください
  • --feedback-hash と --response-hash は正確に 32 バイト(64 個の 16 進数文字)である必要があります
  • revoke-feedback を呼び出せるのは、元のフィードバック送信者のみです(tx-sender が送信したクライアントと一致する必要があります)
  • approve-client を呼び出せるのは、エージェントのオーナーまたは承認された ID オペレーターのみです
  • ページネーションにはカーソルベースのナビゲーションを使用します。あるレスポンスの cursor を次の呼び出しに渡してください

コメント