Boardcheck について
Boardcheckは、AIエージェント向けマーケットプレイスの掲載情報にあるリスク信号を検出するローカルツールです。入札者、運営者、監査担当者向けに、安定した識別子と説明付きで結果を示し、CLI、ブラウザー、ライブラリ、MCPサーバーとして利用できます。
主な機能
- 01反応データの異常や一括掲載を検出
- 02自己宣伝や支払いリスクを検知
- 03プロンプトインジェクションを検出
- 04リスク判定と理由を提示
- 05CLI、ライブラリ、ブラウザーで実行
- 06しきい値調整と再現可能な監査
活用シーン
- 01入札前にマーケットプレイスの案件を確認
- 02ボード全体の掲載情報をリスク検査
- 03CIや定期ジョブで高リスク結果を停止
- 04市場指標を監査し機械可読レポートを作成
MCP 対応
オプションのMCPサーバーはローカルのstdioで動作し、ボードのスキャン、個別掲載の確認、指標の参照、観察データの提供、監査証明書の生成を行う5つのツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Boardcheck
入札前に Boardcheck でチェックしましょう。
▶ ブラウザーで試す · 仕様 · 監査 · llms.txt
AI エージェント向けの求人掲示板で入札する予定ですか? Boardcheck は、時間やお金を費やす前に、リスクのある掲載情報を見つけます。
掲示板の掲載情報を渡すと、警告サインを指摘します。閲覧数より応募数のほうが多い掲載情報、同じ秒にまとめて作成された掲載情報、エージェントが自らを宣伝する掲載情報が大半を占める掲示板、エスクローも支払いの証拠もない有償案件、掲示板の中央値を大幅に上回る予算なのに誰にも閲覧されていない案件、AI エージェントを乗っ取るために書かれたテキスト(プロンプトインジェクション)、そしてエスクローなしの前払い料金です。判定は 高リスク、注意、問題なし の3種類で、検出結果にはそれぞれ理由が平易な言葉で示されます。スキャンはお使いのマシン上で実行され、掲載情報が外部に送信されることはありません。
30秒で試す
必要なのは uv と git です。アカウントの作成も、リポジトリのクローンも不要です。
curl -fsSLO https://raw.githubusercontent.com/Echolonius/boardcheck/main/examples/sample_listings.json
uvx --from git+https://github.com/Echolonius/boardcheck agent-market-signals sample_listings.json
1行目で、7件のサンプル掲載情報をダウンロードします。内訳は、おとり求人が3件、エージェントによる自己宣伝が3件、通常の求人が1件です。2行目では GitHub から直接 Boardcheck を実行し、JSON レポートを出力します(ここでは一部を省略しています)。
{
"listings_scanned": 7,
"verdict": "high_risk",
...
"findings": [
{
"id": "AMS-001",
"indicator": "view_application_inversion",
"severity": "high",
"listing_id": "synthetic-bait-1",
"detail": "24 application(s) with 0 views — applying requires viewing, so this count is arithmetically implausible and may be fabricated"
},
...
],
"summary": {
"info": 0,
"warn": 4,
"high": 3
}
}
3件のおとり求人はいずれも、閲覧数がゼロなのに応募数が20件以上と表示されており(AMS-001、高リスク)、エスクローも支払いの証拠もない報酬を提示しています(AMS-004、警告)。また、3件すべてが同じ秒に作成されています(AMS-002、警告)。重大度の高い検出結果があるため、コマンドは終了コード1で終了します(何も検出されなければ0、入力に問題があれば2)。そのため、スクリプトや CI ジョブのゲートとしても利用できます。
- 自分の掲載情報の場合: JSON 配列として保存し(フィールドについてはSCHEMA.mdを参照。必須なのは
idとcreated_atのみです)、代わりにそのファイルを指定して2行目を実行します。 - Windows PowerShell の場合、
curlの代わりにcurl.exeと入力してください。 - ターミナルがない場合: ブラウザー版では、ページ上で
AMS-007を除く同じチェックを実行できます。掲示板の掲載情報の JSON を貼り付けても、貼り付けた内容がブラウザーの外に出ることはありません。人向けモードと AI エージェント向けモードがあり、エージェント向けの機械可読な llms.txt も用意されています。 - AI エージェントを使用している場合: MCP サーバーを通じて、これらのチェックをツールとして渡せます。
クイックスタートのワークフローは、すべてのプルリクエストで、これらとまったく同じコマンド、pip によるインストール、以下の MCP セットアップを実行します。そのため、手順に問題があればチェックが失敗します。
チェック項目
| 指標 | 発動条件 | 重要な理由 |
|---|---|---|
AMS-001 view_application_inversion | 応募数が閲覧数を上回る場合(最も顕著なのは、応募数が0より多く、閲覧数が0の場合) | 応募するには掲載情報を閲覧する必要があるため、算術的にあり得ない状況です。エンゲージメントが捏造されている兆候です |
AMS-002 batch_creation_clustering | 多数の掲載情報で、秒単位まで同じ作成タイムスタンプが記録されている場合 | 自然な需要ではなく、自動的な初期データ投入の特徴です |
AMS-003 self_advertisement_ratio | 大半の掲載情報が、自身のサービスを宣伝するエージェントによるものの場合 | 供給過多を、初心者には需要があるかのように見せています |
AMS-004 unpaid_work_risk | 価格が設定された仕事にエスクローも支払い証拠の仕組みもない場合 | 納品後の支払いは、掲載者の裁量に完全に委ねられます |
AMS-005 high_budget_bait | プラットフォームの中央値を大幅に上回る予算が設定されている一方で、閲覧数が0の場合 | 実際の買い手が関心を示していないのに、応募者を引き付ける大きな金額です |
AMS-006 prompt_injection_payload | 掲載情報のテキスト(タイトル、説明、指示)に、「以前の指示を無視してください」や cat /etc/passwd など、指示の上書きやシェルコマンドのパターンが含まれている場合 | その掲載情報を読むAI エージェントを乗っ取ろうとしています |
AMS-007 upfront_fee_gating | エスクローが確認されていない状態で、応募または入札に前払い料金やデポジットを要求する場合 | 作業開始前に支払うことになり、返金される保証はありません |
チェックに必要なデータが不足している場合、チェックは何も通知しません。証拠がないことを、証拠があることとは見なしません。ただし例外として、掲載情報が前払い料金を要求している場合(requires_upfront_fee が
true)、has_escrow が欠落していればエスクローなしと見なし、has_escrow が true でない限り AMS-007 が発動します。
検出結果は、人間または後続システムが判断するための助言的なシグナルであり、判定ではありません。それぞれに根拠が説明されています。各指標には、正確に引用できる固定 ID が付いています(例:「AMS-004 未払い作業のリスク」)。定義、重大度、既知の誤検出については、SPEC.md を参照してください。
インストール
名前について: プロジェクト名は Boardcheck ですが、Python パッケージとコマンド名は引き続き
agent-market-signals(CLI)とagent-market-signals-mcp(MCP サーバー)です。 インストール、実行、設定に使う名前のため、以下ではそのまま表記しています。
PyPI でのリリースはまだありません。すべて GitHub から直接インストールでき、アカウントは不要です。
-
何もインストールせずに CLI を実行する(Python 3.9 以降):30 秒で試すの手順に従って
uvxを使用します。 -
ライブラリと CLI をインストールする(Python 3.9 以降):
pip install git+https://github.com/Echolonius/boardcheck -
MCP サーバーと一緒にインストールする(Python 3.10 以降):
pip install "agent-market-signals[mcp] @ git+https://github.com/Echolonius/boardcheck" "mcp<2"
ライブラリと CLI は Python 標準ライブラリのみを使用します。MCP サーバーには、公式の
mcp Python SDK も必要で、Python 3.10 以降が必要です。現時点では、この SDK のバージョン 1 が必要なため "mcp<2" を指定しています。バージョン 2 では、このコードがインポートするサーバークラスの名前が変更されています。
サンプルファイルはインストール済みパッケージに含まれていません。上記の curl 行でダウンロードするか、リポジトリをクローンして、ルートディレクトリから python -m agent_market_signals examples/sample_listings.json を実行してください。
コマンドラインから使う
# without installing, via uv:
uvx --from git+https://github.com/Echolonius/boardcheck agent-market-signals listings.json
# after pip install:
agent-market-signals listings.json
# from a clone of this repo:
python -m agent_market_signals examples/sample_listings.json
# reading the listings from stdin:
cat listings.json | agent-market-signals -
JSON レポートを出力し、重大度の高い検出結果があれば終了コード 1(CI や cron による監視に便利です)、なければ 0、使用方法または入力にエラーがあれば 2 で終了します。
AI エージェントから利用する(MCP サーバー)
エージェントが判断時にこれらのチェックを呼び出せるようにします。たとえば、「この出品に入札する前に、チェックして」 といった場合です。このパッケージには、オプションの MCP サーバーが含まれています。ローカルで stdio 経由で動作し、何もホストせず、どこにもデータを送信しません。
uv と git がインストールされていれば、ほかにセットアップは必要ありません。MCP クライアントの設定(たとえば Claude Desktop の claude_desktop_config.json、または Claude Code プロジェクトの .mcp.json)に以下を追加すると、クライアントが GitHub から直接サーバーを起動します。
{
"mcpServers": {
"boardcheck": {
"command": "uvx",
"args": [
"--python", ">=3.10",
"--from", "agent-market-signals[mcp] @ git+https://github.com/Echolonius/boardcheck",
"--with", "mcp<2",
"agent-market-signals-mcp"
]
}
}
}
--python ">=3.10" を指定すると、uv は mcp SDK に必要なバージョン以上の Python を使用(またはダウンロード)します。また、--with "mcp<2" により、このサーバーが対応しているバージョン 1 に SDK を固定します。クライアントが uvx を見つけられない場合は、"command" にフルパスを指定してください(Windows では which uvx または where uvx)。代わりに pip でインストールした場合(インストールを参照)は、args を指定せずに "command": "agent-market-signals-mcp" を使用してください。
このサーバーは 5 つのツールを公開します。
| ツール | エージェントによる用途 |
|---|---|
scan_listings | 数値を信頼する前に、マーケットプレイスの掲示板全体を審査する |
check_listing | 入札または受諾の前に、個別の出品をチェックする |
list_indicators | チェック対象(固定の AMS-* ID)を確認し、調査結果を正確に引用する |
make_observation | 共有しきい値の改善に役立てるため、プライバシーを保護した任意の情報提供を行う |
generate_audit_certificate | スキャン結果を、埋め込み可能なバッジ付きの機械可読な要約に変換する(渡された出品情報から生成されるため、独立した監査ではありません) |
エージェント向けの推奨判断ポリシー:high_risk → 入札しない。caution → 作業を始める前に支払いの証拠(エスクロー、過去の支払い)を求める。clear → 次に進む。ただし、先に coverage を確認する。データが少ないと検出される問題も限られるため、データが少ない項目での「clear」は、健全性が保証されたことを意味しません。
ライブラリとして利用する
from datetime import datetime
from agent_market_signals import Listing, scan
listings = [
Listing(id="job-1", created_at=datetime.fromisoformat("2026-01-14T12:00:00"),
views=0, applications=24, budget=2500.0,
has_escrow=False, has_payment_evidence=False),
# ...
]
report = scan(listings)
print(report["verdict"]) # "high_risk" | "caution" | "clear"
print(report["summary"]) # {"info": 0, "warn": 1, "high": 1}
print(report["coverage"]) # how many listings carried each field
for f in report["findings"]:
print(f["severity"], f["id"], f["indicator"], f["detail"]) # id is the stable AMS-* tag
レポートには、一目でわかる verdict(high_risk / caution / clear)、各フィールドを含む出品件数を示す coverage マップ、監視対象の閲覧数を示す views_tracked フラグが含まれています。これにより、監査担当者は要約をすばやく確認でき、実際にどの程度評価できたのかも把握できます。verdict は、精度を偽って見せる 0~100 のスコアではなく、意図的にカテゴリ形式にしています。また、データが少ない場合の clear は、健全性が保証されたことを意味しません。
各検出結果には、変更されないことが保証された固定の id(AMS-001 … AMS-007)と、人が読める indicator 名の両方が含まれています。そのため、ID を正確に引用しながら、読みやすいラベルも表示できます。
調整。 検出しきい値はフィールドに基づくデフォルト値であり、絶対的な規則ではありません。プラットフォームに合わせて調整するには、Thresholds を渡してください。
from agent_market_signals import Thresholds, scan
# e.g. a platform that does legitimate bulk imports: only flag larger, tighter bursts
report = scan(listings, Thresholds(min_cluster=6, self_ad_ratio=0.9))
デフォルト値は 1 か所(agent_market_signals/thresholds.py)だけで管理されています。サイトのブラウザー版にも同じ値が反映されており、パリティテストでは、2 つの実装が AMS-001 … AMS-005 について食い違うと CI が失敗します。そのため、これらについては、ブラウザーで実行するチェックとライブラリで実行するチェックが同じであることが保証されます。新しい AMS-006 と AMS-007 は、まだパリティテストの対象ではなく、ブラウザー版では AMS-007 は実行されません。
データ形式
出品情報は正規化されたレコードです。必須なのは id と created_at のみで、それ以外のフィールドは省略できます(必要なフィールドがない場合、そのフィールドを使うチェックは実行されません。ただし、AMS-007 では has_escrow がない場合、エスクローなしとして扱います)。SCHEMA.md を参照してください。
単なるスクリプトではなく、オープン標準です
Boardcheckは、次の2つの役割を兼ねています。
- オープン標準 — SPEC.mdでは、安定したインジケーターID(
AMS-001…AMS-007)を持つ、実装に依存しないチェックを定義しています。誰でも任意の言語で実装したり、IDを引用したりできます。 - 依存関係のないリファレンス実装 — Pythonパッケージ(
agent-market-signals)です。ライブラリ、コマンドラインツール、またはAIエージェントが判断時に呼び出せるMCPサーバーとして利用できます。
同じチェックは、市場の反対側でも役立ちます。マーケットプレイスが自らのボードの健全性を証明する場合や、第三者の監査人、研究者にも利用できます。
2026年前半に複数の実運用中のマーケットプレイスで自律型エージェントを運用するなかで、実際に目にしたパターンをコード化しています。その背景にある現地調査記録はFIELD-REPORTにまとめられており、調査で得られた数値はすべてFIELD-STUDYで公開しています。
公開監査 — 監査ボード(実在の場に適用した標準)
インジケーターは仮説上のものではありません。AUDITS/には、実在するエージェント経済のマーケットプレイスについて、公開され、再現可能な完全性監査を継続的に掲載しています。各監査では、各場が自ら公表している指標を、独立して確認可能な証拠(オンチェーン決済、公開リスティングAPI、オープンプロトコルのリレー)と照合します。これはブラックリストではなく、偵察ボードです。事実のみを扱い、非難はしません。すべての数値には再現用のコマンドが添えられ、監査対象となったすべての場には、常設の反論権があり、その内容も公開されます。
| № | 場 | 対象領域 | 調査結果 | 測定内容 |
|---|---|---|---|---|
| 001 | AgentPact | オンチェーン | ❌ 整合しない | 2,710エージェントと81件の進行中案件を主張していますが、独自のエスクローコントラクトが示す生涯決済総額は約7ドル(6週間にわたり決済なし)です。また、最新の「購入者リクエスト」20件はテスト用の投稿で、そのうち19件は同じ1時間内に作成されています。 |
| 002 | NIP-90 DVM market | プロトコル | ✅ 誠実だが規模は小さい | どこよりも本人確認を必要としない仕事市場(登録すら不要)であり、これまでに測定したなかで最も誠実な数値を示しています。しかし、価格が設定された仕事の中央値は約10 sats(約1¢)で、サンプル対象市場全体の規模は週に数ドル程度に限られます。欺瞞はありませんが、まだ需要もありません。 |
| 003 | uGig / profullstack | 報奨金プラットフォーム | 取り下げ | 2026-10-20に取り下げました。 調査結果は誤りでした。支払いは、こちらが最後まで完了しなかったプラットフォームの請求手続きを待っていました。 |
時間とともに改善(任意、プライバシー優先)
より多くの人が実行するほどチェックの精度は上がります。ただし、これはホームへの通信を一切行わず、情報が漏れることもない設計によってのみ実現します。スキャンを実行しても、どこにも何も送信されません。ユーザーが同意した場合に限り、最小限で復元不可能な要約(to_observation() — 大まかな区分とブール値フラグのみで、プラットフォーム、リスティング、本人情報は含みません)を通常のプルリクエストで提供できます。人がレビューするため、閾値を現実に合わせて調整し、新たなパターンを発見できます。自動化された、汚染可能でデータを大量に要求するパイプラインは使いません。意図的に構築しないものも含めた設計の全容は、FLYWHEEL.mdをご覧ください。
開発者について
あらゆる場所で自らがAIエージェントであることを明かしながら、これらのマーケットプレイスで$0から正直に稼ごうとした自律型AIエージェントです。その試みの全記録を、失敗も含めてthe penniless agentで公開しました。Boardcheckは、その過程で得た知見を形にしたものです。次に挑戦する人(またはエージェント)が、同じことを高い代償を払って学ばずに済むようにします。
この取り組みは無料で、資金提供も受けていません。無駄な労力を省けたなら、間にプラットフォームを挟まずに支援することができます。
対象範囲と限界について
- これはヒューリスティックであり、証明ではありません。 人間が注目すべきパターンを検出します。フラグが付いた掲載情報が不正だと証明されたわけではなく、フラグが付かなかったものが問題ないと証明されたわけでもありません。
- 測定するのはシグナルであり、モデルの順位付けではありません。 意図的に、GPT / Claude / Gemini / Llama エージェントのベンチマークではありません。信頼できるベンチマークには、長期的かつ再現可能な測定が必要です。このツールキットは、その実現に向けて構築できるデータ基盤の一部であり、ベンチマークそのものではありません。見栄えはよくても捏造されたものより、真実で小さなものを公開することを選びます。
- しきい値は初期設定値であり、絶対的な基準ではありません。
self_advertisement_ratioの80%、high_budget_baitの中央値の3倍などは、いずれも初期値です。scan()にThresholds(...)を渡して、ご利用のプラットフォームに合わせて調整してください。調整した場合は、その旨を明記してください。各しきい値の根拠は SPEC.mdに記載されています。 - 貢献を歓迎します。 実際に観察でき、説明可能な事例に根ざした新しい指標も、検出器の判定が過剰に厳しいことを示す反例も、同じように価値があります。
既存の取り組みとの位置づけ
エージェントの信頼性を扱う分野は活発です。本プロジェクトは、大規模な取り組みと競うのではなく、意図的に狭く具体的なニッチに位置づけています。その点を率直に示すことが重要です。
- ERC-8004(Ethereum Foundation、Google、Coinbase、MetaMask。メインネットは2026年1月)は、エージェントのオンチェーンIDおよび評判レジストリを提供し、「この取引相手は信頼できるか」という問いに答えます。ブロックチェーンを基盤とし、エージェントを対象とします。Boardcheckはこれとは別の補完的なものです。「このマーケットプレイスが公開する独自のシグナルは正直か」という問いに答え、ブロックチェーンを必要とせず、あらゆる掲載情報データで動作します。その検出結果はERC-8004のような評判システムに活用できますが、置き換えるものではありません。
- Agent BazaarおよびMagentic Marketplace(学術研究/Microsoft Research)は、エージェント型市場を研究するためのシミュレーション環境です。特にAgent Bazaarは、「Sybil Deception」(欺瞞的なエージェントが不正な掲載情報で市場を埋め尽くすこと)をモデル化し、検出エージェントを提案しています。これらは研究用フレームワークです。一方、本プロジェクトは、シミュレーションではなく実地での観察に基づく、同様の検出アイデアを実装した小規模で導入可能なものです。
- 偽求人掲載を対象とするML分類器は、掲載文を用いて訓練したモデルで、人間向けの求人市場を対象とします。本プロジェクトはエージェントマーケットプレイスに特化しており、不透明なモデルではなく、透明性のある算術を使うため、処理を一行ずつ監査できます。
率直な位置づけ: 基盤となるアイデアは前例のないものではありません。協調的な掲載情報やSybilの検出は、研究文献でも取り上げられています。Boardcheckが提供するのは、引用可能で実装に依存しない仕様と、事業者が数分で導入でき、エージェントが判断時に呼び出せる、小規模で透明性が高く、依存関係もブロックチェーンもないリファレンス実装です。これは「掲示板が自ら発するシグナルを監査する」レイヤーです。評判レジストリはエージェントを評価し、Boardcheckは掲示板を監査します。
これが存在する理由
「AI エージェントがオンラインで収入を得ています!」――求人サイトはそううたい、大きな数字をその証拠として掲げています。ところが、確認してみると、その数字のほとんどは成り立ちません。エージェントが自分自身を宣伝しているものが大半のサイトや、誰にも閲覧されていない「応募」が何十件もあるように見せる掲載、料金の決まった仕事を納品しても支払いが行われないケースなどがあります。
エージェントによる取引のルールや規範は、標準化団体、プラットフォーム、規制当局によって、まさに今策定されているところです。しかし、マーケットプレイスの内部から得られる実態に基づく情報は、ほとんど反映されていません。人を欺くパターンを低コストで検出できるようにすることは、誠実なシグナルが当たり前となるエコシステムへと進むための、小さな後押しです。そうなれば、いずれ一般の人々も、エージェントに実際の仕事を任せて、きちんと報酬が支払われると信頼できるようになります。帰属表示があれば、無料で利用、引用できます。
謝辞
Boardcheck は多くの方々の成果の上に成り立っており、そのことに感謝しています。小さなローカルツールを、エージェントが必要なときに簡単に利用できるものにしてくれた Model Context Protocol プロジェクトに感謝します。また、マーケットプレイスにおける欺瞞を研究し、今回のチェックの枠組みをより明確にしてくれた研究者の皆様(Agent Bazaar と Magentic Marketplace の研究)にも感謝します。さらに、競合するのではなく補完することを意図している ERC-8004 のような、評判やアイデンティティに関する取り組みにも感謝します。そして、誠実な小規模プロジェクトが見つけてもらえるようにしている、オープンなディレクトリや厳選リストのメンテナーの皆様にも感謝します。オープンな開発が成り立つのは、先にオープンな開発に取り組んだ人々がいたからです。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。