---
title: "PokeAgent：一支队伍，一个自己做决定的程序"
description: "这是一个让你提出问题、再用程序和对局检验的题目：局外可以用 AI 开发，局内程序独立做决定。"
---

## 这一页为什么在这里

介绍 PokeAgent 的交付物，以及局外开发、局内独立决策的边界。

## 上屏

- 第 1 步：一支完整队伍｜六只 100 级宝可梦｜冻结的 Gen 9 OU 规则｜单打。一份 Python 策略：choose_action(observation, state) ↓ (action, state)。
- 第 2 步：局外：用 AI 开发｜查规则 · 写代码 · 分析回放。局内：程序独立决策｜不调用大模型、不用神经网络或训练得到的决策／价值模型、不访问外部服务；state 不跨局保存。

## 讲

### 第 1 步 · 教师可说的话

队伍与策略程序

上周课尾预告过的赛题，今天正式说明。你要做两样东西：一支六只宝可梦的完整队伍，和一份 Python 程序。程序每次拿到一份合法的观测，从合法动作里选一个，返回动作和它自己的状态。

### 第 2 步 · 教师可说的话

局外与局内的边界

最重要的一条边界：开发的时候随便用 AI，查规则、写代码、看回放都行；可一旦开打，程序要自己做决定，不能每回合去问大模型，不能跑神经网络，也不能上网。

### 本页衔接

看一回合中的具体决定，就能把这个项目和最近三讲连起来。

### 连续教师稿原文

上周预告过这个赛题，今天把要求讲清楚。你需要一支完整队伍和一份Python策略：六只100级宝可梦，在冻结的Gen9OU规则下单打；函数拿到合法观测和本局状态，从合法动作里选一个，再返回动作与状态。

最重要的是把开发和比赛运行分开。开发时可以用AI查资料、写代码、看回放；真正开打后，程序自己决定，不问大模型，不跑神经网络或训练出来的决策、价值模型，也不上网。它维护的state只属于这一局。看一回合，就能明白三讲分别帮哪一步。

## 完整推理

PokeAgent 要求提交一支完整队伍和一份独立决策程序。队伍由六只 100 级宝可梦组成，在冻结的 Gen 9 OU 规则下进行单打；Python 接口 choose_action(observation, state) 接受合法观测与本局状态，返回 (action, state)，动作应来自当次 legal_actions。

AI 协作发生在开发阶段：可用于查规则、写代码和分析回放。正式对局中，策略程序独立决定，不调用大模型，不使用神经网络或训练得到的决策、价值模型，不访问外部服务，state 不跨局保存。这条边界把局外研发工具与局内程序能力分开。

## 学生可能的回答与误区

- 第 2 步｜“开发时能用 AI，对局时程序也能调大模型。”不能：局内程序独立决策，不调用大模型、不访问外部服务。
- 第 2 步｜“state 可以跨局积累经验。”不能：state 不跨局保存，新的一局清空。

## 教学构造与出处

- [PokeAgent 参赛方式 · 接口与三类请求](https://pokeagent.run/#start)：核对策略接收和返回什么。赛题官方说明。
- [PokeAgent 完整规则 · 局外 AI 与局内独立程序的边界](https://pokeagent.run/#overview)：核对合法信息与禁止外部调用等规则。赛题官方规则。

[在课堂中打开](/slides/pokeagent-team-program)
