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