> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.nvidia.com/nemo/gym/v0.5.1/agent-server/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/gym/_mcp/server. # Configure Agents The Agent server is the central component of environment design. It defines whether a rollout is single-step or multi-step, single-turn or multi-turn, and orchestrates all interaction logic — calling the model, executing tool calls through resources, and collecting the final reward. The Agent server does not run an LLM itself, it is orchestration code that delegates all text generation to the Model server. ## Rollout Lifecycle The following pseudocode illustrates a typical agent rollout in three phases: initialize the episode, run the agent loop, and grade the result. During the agent loop, the agent sends the conversation to the model, gets back a response, and if the model makes any tool calls, it routes them to the Resources server and feeds the results back to the model. The loop repeats until stop criteria are met, such as model max sequence length or the agent reaching a defined max steps or turns. Once the loop completes, the agent calls the Resources server to verify the result and collect a reward. ```python # Agent Server - pseudocode class Agent: async def run(self, task_data): # 1. Initialize episode resources_server.seed_session(task_data) # 2. Run the agent loop response = self.responses(task_data.prompt, task_data.tools) # 3. Grade the result reward = resources_server.verify(response, task_data.ground_truth) return response, reward async def responses(self, prompt, tools): conversation = prompt step = 0 # Agent loop while step < max_steps: model_output = model_server.responses(conversation, tools) conversation.append(model_output) if model_output is text: break # model is done, no more tool calls for tool_call in model_output.function_calls: result = resources_server.post(f"/{tool_call.name}", tool_call.arguments) conversation.append(result) step += 1 return conversation ``` ## Existing Agents See [Integrate Existing Agents](/agent-server/integrate-existing-agents) to use a built-in NeMo Gym agent, wrap an external agent harness, or decide when tool logic belongs in the Agent server versus the Resources server. ## Server Configuration > **Note** > > [Agent Server Fields](/reference/configuration#agent-server-fields) for server configuration syntax and fields. ## Docs - [Integrate Existing Agents](https://docs.nvidia.com/nemo/gym/v0.5.1/agent-server/integrate-existing-agents.md): Use built-in NeMo Gym agents or wrap external agent harnesses. - [Drive a Remote Agent](https://docs.nvidia.com/nemo/gym/v0.5.1/agent-server/remote-agent.md): Evaluate an agent service you host yourself — a composition of OpenAI Responses-compliant agents, with Gym driving the loop - [Agent Skills](https://docs.nvidia.com/nemo/gym/v0.5.1/agent-server/agent-skills.md): Evaluate agent skills as a run-level variable, decoupled from the dataset