Skip to main content

Harness Agents reference

Last updated on

The following fields define a Worker Agent. Required fields are marked in the Required column.

FieldRequiredDescriptionExample
NameYesHuman-readable identifier displayed in the catalog and pipeline step picker.PR Reviewer Agent
DescriptionNoFree-text summary of what the agent does. Helps teams discover and reuse agents from the catalog.Reviews PRs for security, schema, and architectural issues.
InstructionsYesThe system prompt sent to the model at runtime. Supports Harness variable expressions for dynamic context injection. Go to Configure instructions and Harness expressions to review dynamic context injection.Example below
Model ConnectorYesThe LLM provider connector. When you configure the connector, you select a default model. Go to Configure Model Connectors for supported providers and models.anthropic_bedrock_99cf4be5
Model NameNoOptional override for the model used at runtime. If not specified, the agent uses the default model configured on the Model Connector. Accepts an AWS Bedrock inference profile ARN for Anthropic connectors.arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/a1b2c3d4e5f6
MCP ConnectorsNoOne or more MCP server connectors granting the agent access to Harness platform data and external services (such as GitHub). Each connector requires a URL and API key.harness_hosted_mcp
InputsNoNamed parameters the agent accepts at runtime. Populated from pipeline step outputs, triggers, or manual values. Injected into the agent prompt as context.llmConnector, modelName, mcpConnectors
Environment VariablesNoKey-value pairs passed to the agent runtime. Used for third-party authentication or model behavior configuration. Supports fixed values or Harness secret expressions.PLUGIN_HARNESS_CONNECTOR, ANTHROPIC_MODEL

Agent definition YAML reference

The following YAML shows the full structure of a Worker Agent definition. This is the YAML visible in the YAML tab when you view or edit an agent in the Worker Agent Catalog (AI > Worker Agents > select agent > YAML tab).

version: 1
agent:
step:
group:
steps:
- name: Agent
if: <+Always>
id: agent
run:
container:
image: pkg.harness.io/vrvdt5ius7uwygso8s0bia/harness-agents/harness-ai-agent:latest
env:
PLUGIN_MAX_TURNS: 150
PLUGIN_TASK: |
# Agent instructions (system prompt) go here.
# Supports Harness expressions for dynamic context injection.
PLUGIN_HARNESS_CONNECTOR: ${{inputs.llmConnector.id}}
PLUGIN_MCP_FORMAT: harness
PLUGIN_MCP_SERVERS: <+connectorInputs.resolveList(<+inputs.mcpConnectors>)>
inputs:
llmConnector:
type: connector
required: true
default: connector_Anthropic_112e
ui:
connectorCategories:
- AI
mcpConnectors:
type: array
default:
- connector_Mcp_66c8
ui:
component: array
input:
inputType: connector
inputConfig:
connectorTypes:
- Mcp
layout:
- title: Agent Configuration
items:
- llmConnector
- mcpConnectors

YAML field reference

FieldDescription
versionSchema version. Always 1.
agent.step.group.stepsArray of steps executed inside the agent container. The primary step has id: agent and if: <+Always>.
run.container.imageDocker image for the agent runtime. You can override this with your own registry path if you have pulled the Harness base image and published it to your own repository (for example, to add custom tools or dependencies on top of the base image).
env.PLUGIN_MAX_TURNSMaximum reasoning turns the agent can take per execution.
env.PLUGIN_TASKThe agent's system prompt (Instructions). Supports Harness expressions and built-in Harness environment variables ($HARNESS_ACCOUNT_ID, $HARNESS_ORG_ID, $HARNESS_PROJECT_ID).
env.PLUGIN_HARNESS_CONNECTORReferences the LLM connector input using ${{inputs.llmConnector.id}}.
env.PLUGIN_MCP_FORMATMCP protocol format. Use harness for Harness MCP connectors.
env.PLUGIN_MCP_SERVERSResolves MCP connector references at runtime using <+connectorInputs.resolveList(...)>.
inputsTyped parameters the agent accepts. Each input has a type, optional required, default, and ui configuration.
inputs.<name>.uiControls how the input renders in the Visual editor. connectorCategories filters connector types; inputConfig.connectorTypes restricts to specific connector kinds.
layoutDefines the Visual editor layout. Groups inputs under titled sections.