人狼知能コンテストでは、参加者が作成したエージェント(自動プレイヤー)を運営側が用意するゲームサーバにリモート接続することで、自動対戦を行います。ゲームサーバは下記の通り公開していますので、ご自分でゲームサーバを立ち上げてテストすることもできます。
重要 2024冬季 国内大会から接続方式が変わる影響により、通信プロトコル、エージェントとゲームサーバのコードは前大会とは異なります。
参加登録をしていただいた後、作成したエージェント同士(5体のエージェント)の対戦をご自身で実行し(=動作確認をかねた自己対戦による予選)、そのログを提出してください。その後、運営からの連絡に従って、参加者同士の対戦(=決勝)を実施します。
エージェントの実装
エージェントの作成にあたっては、運営側が定義する仕様を満たした通信をするネットワーク接続の対戦エージェントを実装いただきます。人狼知能大会には別にプロトコル部門があり、基本的に仕様は同一ですがネットワーク対戦であること、プロトコル(人狼言語)ではなく自然言語(日本語または英語)を用いる点など(詳細は下記)が異なります。エージェント作成に当たってはライブラリ非互換性の問題を避けるため、プロトコル部門の提供するライブラリではなく下記の公開リポジトリのコードをベースに実装してください。
ゲームの実行
各エージェント(自動プレイヤー)は、運営の提供するゲームサーバに接続することでゲームの実行をすることができます。本戦においては運営が実行するゲームサーバに接続し、他のチームと対戦することで、予選においては参加者各自が5体のエージェントを運営が実行するゲームサーバに接続することで、自己対戦を行います。
ソースコード
環境構築や実行方法についてはREADMEを参照してください。問題がある場合については、リポジトリのIssueによる報告もしくはメール、Slackに参加している場合はSlackでご連絡をお願いいたします。
人狼知能コンテスト2024冬季 国内大会(自然言語部門) のサンプルエージェント
人狼知能コンテスト2024冬季 国内大会(自然言語部門) のゲームサーバ
kano-lab/aiwolf-nlp-json-converter
今大会から使用するサーバから送信されるJSON形式を、前大会までの従来のサーバから送信されるJSON形式に変換するためのライブラリ
エージェントへの要求事項
プログラム実行ファイルの提出ではなく、各自の端末で実行し、インターネット経由で対戦で行います。したがって、予選・本選ともにプログラムを各自の端末で実行する必要があります。ゲームサーバは運営が実行しますが、エージェントの実行に必要な実行環境はご自身でご用意ください。
自動プレイヤーのエージェント同士だけではなく、人間のプレイヤーを交えた対戦の可能性があります。
ゲームサーバの詳細な仕様については下記ドキュメントとソースコードを参照してください。
https://github.com/kano-lab/aiwolf-nlp-server/blob/main/doc/protocol.md プロトコルの実装について
https://github.com/kano-lab/aiwolf-nlp-server/blob/main/doc/logic.md ゲームロジックの実装について
ゲームは5人村で行われ、村人2、人狼1、占い師1、狂人1の構成です。
会話パート(talk)では自然言語(日本語または英語)での対話を行います。プロトコルなど自然言語以外の使用は禁止です。発話しない場合はSkip、当該のdayで発話をしない場合はOverを返します(プロトコル部門と同じ)。投票、襲撃、占い先の指定などの方法はプロトコル部門と同じです。
talkでプレイヤーの名前を呼ぶ際はAgent[01]~Agent[05]の形式にしてください。(例:Agent[01]さんは人狼でした) Agent番号は二けたの任意の数字がありえます。
「>>Agent[01] 」というようなアンカーをtalkの発言冒頭につけることで、特定のエージェントに向けた発話ができます。発話を向けられたエージェントは、なにか応答することが期待されます。
発言はロボット等を使い,音声で再生される場合があります.したがって,音声で再生できない顔文字や絵文字,記号(句読点,!,?を除く)等の使用は控えてください。
応答の制限時間は5秒程度を想定しています。最大1分で強制タイムアウトします。
初日(Day 0)にもtalkが行われます。ここでは挨拶などを行うことを想定しています。
1日は複数のターンで構成されている.朝は前日の夜に人狼に襲われたプレイヤーの発表と勝敗の判定を行い,昼はプレイヤー間で誰が人狼なのかを議論する.そして,一人一票誰を処刑したいかの投票を行い,最も多く投票されたプレイヤーは即座に処刑される.夜は特殊な行動を行うことが出来る役職の処理を行う.
昼の1ターンでは各エージェントが1度ずつ発話することが要求されるが,その順序はランダムである.そのため,発話直後に新たな発話を求められることや,前回の発話から8発話終わった後に新たな発話を求められることがある.