> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getoneprofile.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Build an agent

> Start from a template or set it up by hand, then write a prompt that survives a messy row.

An agent is a prompt that runs once per row, deciding what that row needs. Start it two different ways, then spend your effort on the part that matters: the prompt itself.

<Frame caption="The agent editor, with the prompt on the left and Configuration on the right.">
  <img src="https://mintcdn.com/oneprofile/tTSwOooaeEqcpv7r/images/agents/build-an-agent.png?fit=max&auto=format&n=tTSwOooaeEqcpv7r&q=85&s=9dca6b3328896bd2db5a207d08467d31" alt="The agent editor with a Prompt panel on the left and a Configuration panel on the right listing Effort, Inputs, Outputs, Tools, MCP servers and Feedback sections." width="1440" height="780" data-path="images/agents/build-an-agent.png" />
</Frame>

## Start an agent

<Steps>
  <Step title="Apply a template">
    On the Agents page, pick a card under **Start with a template**, or open **Built-in templates** to browse everything Oneprofile ships. Applying one copies the whole setup into the editor.
  </Step>

  <Step title="Or set up manually">
    Click **New agent** for a blank prompt and build the agent by hand.
  </Step>
</Steps>

## Write a prompt that survives a messy row

A row can arrive missing the field your prompt expects, or with a value that fits none of the cases you wrote for. Say what counts as a right answer. Say what to do when a row has nothing to give it, rather than leaving the agent to guess.

<Steps>
  <Step title="Reference an input">
    Type a slash where the value belongs, or click one of the chips listed under **Inputs** below the prompt.
  </Step>

  <Step title="Point at your business context">
    Type an @ in the prompt to fold in a section of your business context, such as your ideal customer profile.
  </Step>

  <Step title="Ask for a rewrite">
    Highlight any passage and click **Rewrite selection** to have just that part revised.
  </Step>
</Steps>

## Keep the prompt current

Open the assistant anytime, even on an agent you wrote months ago, and ask for a change in plain language. Three common requests sit ready to click: **Make it stricter**, **Change what it returns** and **Explain its answers**.

## Configure the agent

The Configuration panel holds six sections: **Effort**, **Inputs**, **Outputs**, **Tools**, **MCP servers** and **Feedback**. Effort sets how hard the agent works and what it costs. Inputs and outputs shape what goes in and comes out, and Tools turns on web research or your business context.

MCP servers extend what the agent can reach, and Feedback collects what people thought once ratings start coming in.

See [Agent inputs and outputs](/agents/agent-inputs-and-outputs) and [Choose an effort level](/agents/choose-an-effort-level) for the detail behind each one.

## Good to know

<AccordionGroup>
  <Accordion title="Can I turn a built-in agent into one I can edit?">
    Yes. Open **Built-in templates**, apply one, then click **Save**. It becomes a new agent under **Browse agents** that you own and can rewrite freely.
  </Accordion>

  <Accordion title="What happens if I delete an input the prompt still uses?">
    The reference stays in the prompt, painted as broken, until you restore the input or remove the reference by hand. Saving is blocked until then, and nothing is rewritten for you.
  </Accordion>

  <Accordion title="Why is Save greyed out?">
    Save needs a name and a prompt, plus at least one input or **Use the whole row** turned on. A broken input reference or an invalid output schema blocks it too.
  </Accordion>

  <Accordion title="What happens to a deployed column when I delete the agent?">
    Columns built from it keep the values they already hold, but stop returning new answers. Nothing already in the table is removed.
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Agent inputs and outputs" icon="braces" href="/agents/agent-inputs-and-outputs">
    What each row hands the agent, and how its answer becomes columns.
  </Card>

  <Card title="Choose an effort level" icon="timer" href="/agents/choose-an-effort-level">
    Weigh cost against depth before you pick one.
  </Card>
</CardGroup>
