In lesson 2.3 a program addressed a model once. An agent is more: According to Learn, it is a model combined with instructions and tools that can reason and act on a request. The instructions do not have to be sent along anew with every call. The agent has a fixed behavior, is stored in the project, has versions and a stable address. This lesson builds Nordlicht's agent in the portal. The steps are not run against Azure; this is how Microsoft Learn shows it.
Which agent types exist
According to Learn, the Foundry Agent Service knows three types. The choice determines how much you build yourself and how much Foundry takes over:
| Type | Idea | When |
|---|---|---|
| Prompt agent | You set instructions, model and tools, Foundry runs the agent. No code, no containers | fastest way, internal tools, agents without flow logic of their own |
| Voice-based prompt agent | like the above, but for spoken conversations in real time through Voice Live | voice dialogs, for example on the phone. Learn marks parts of it as preview |
| Hosted agent | your own code with a framework of your choice, which Foundry runs as a container | full control, flow logic of your own |
Nordlicht takes a prompt agent: The pilot project needs no flow logic of its own, only good behavior. That the AI track uses the Microsoft Agent Framework in C# instead of the Foundry Agent Service (T7.1, "The first agent") is a different decision: There you build the agent in your own code, here you configure it in the service.
Besides that, Learn names the way of calling just the Responses API without a stored agent. Then the agent definition sits in your own code. That is lesson 2.3.
What a prompt agent contains
Learn describes the components:
- Model: the deployment that thinks (at Nordlicht
reise-chat). - Instructions: role, behavior, limits and desired output (like the system prompt from lesson 2.2).
- Tools: allow fetching information or doing something. Examples according to Learn: web search, file search, code interpreter, function calling and Model Context Protocol (MCP) servers.
- Knowledge: sources that are meant to support the answers. According to Learn, the agent playground lets you add them.
Learn additionally names the services Toolbox (collect tools once and share them for several agents) and Memory (preview). Which tools are currently available in your region and for your model is open: Learn writes that this varies by model, region and chosen runtime behavior.
Tools are the reason agents demand caution: They turn text into actions. The fewer tools, the less can go wrong. Learn advises the least privileges that the agent needs. The AI track goes deeper into this in T7.2 ("Tools and function calling").
Creating the agent in the portal
Learn describes the way in the new portal like this (with slightly different wording on different pages; the exact labels are open):
- In the Foundry portal, open the project
nordlicht-ki. Prerequisite: a deployment (lesson 2.1) and the Foundry User role on the project. - On the start page under Build an agent, choose Create an agent, or open the entry Agents in the Build area.
- Give it a name:
reise-helfer. Learn names 63 characters as the limit. For the way through Visual Studio Code, Learn requires that the name begins and ends with a letter or digit, hyphens in between are allowed. - Leave the mode on Text and choose Create. The agent opens in the playground with areas for model, instructions, tools and knowledge.
- Under Model, choose the deployment
reise-chat. - Under Instructions, enter the instructions (below) and save.
For the quickstart "Create a prompt agent", Learn additionally names as a prerequisite to connect Application Insights to the project so that traces of the agent are stored. Whether it works without is open.
Instructions for reise-helfer
An example (not a template to copy, answers not measured):
You are the travel helper of Nordlicht Reisen GmbH and prepare answers
for customer service. Write in a friendly and short way and in the language
of the customer (German or English).
Answer only questions about trips, hotels and booking processes.
Never decide on refunds, cancellations or contract questions.
Write for this: "An advisor will clarify that."
If information is missing, say so and do not make anything up.
Every answer is a draft that a person checks.
The pilot's limits are in the instructions: no model decides on refunds, cancellations or contract questions, and a person checks every answer of the agent before it goes to customers. The instructions ask the model for this, they enforce nothing (lesson 2.2). The check by a person in customer service, for which Ms. Berg is responsible as the pilot's lead, is the actual protection.
The first version gets no tools. That way the agent can trigger nothing, only suggest text.
Testing in the agent playground
According to Learn, the agent playground is meant for exploring and testing without code. In it you can
- set instructions and behavior and attach tools,
- add knowledge,
- hold multi-turn conversations (the agent keeps the history, lesson 2.5),
- look at traces and evaluations of the answers,
- save and improve configurations.
A note on costs: According to Learn, evaluations in the agent playground are on by default for all projects and are billed by consumption. You turn them off by deselecting the evaluations in the metrics selector at the top right.
What to test? With made-up questions: a question about a hotel, a question about a refund, a question that has no answer, a message in English and a follow-up sentence. Check whether the agent keeps to the limits. You read the result yourself; no answer is printed here.
Versions
Learn describes a simple model:
- Every change (even a single sentence in the instructions) creates a new version. Saved versions are immutable.
- Unsaved changes can be tried out in the playground, but are lost when you leave the portal. History, monitoring and evaluations need saved versions.
- The agent itself stays the same unit with the same address. By default the address serves the latest version; you can pin it to a specific version when stability matters, for example in operation.
- You can compare versions (setup, chat output, YAML definition) and open earlier versions.
For Nordlicht: The pilot version with "draft that a person checks" is pinned, even if someone is working on a new version in the playground.
Summary table
| Term | Meaning |
|---|---|
| Agent | model plus instructions plus tools, stored in the project |
| Prompt agent | configured in the service, without code of your own |
| Hosted agent | your own code, run by the service as a container |
| Version | immutable state of a configuration |
| Agent playground | testing without code |
Exercise 1
Check these first instructions for reise-helfer: "Be nice and help with everything. If someone wants their money back, settle it directly. Use all the tools you find."
- Which two limits of the pilot do they violate?
- Why is "all tools" a problem?
- What belongs in them instead?
Solution 1
- The agent is supposed to settle refunds itself, but no model decides on them. And the note is missing that a person checks every answer before it goes to customers.
- Tools turn text into actions. Learn advises the least privileges needed. The first version gets by without tools.
- Role and task, language and tone, the limit for refunds, cancellations and contract questions with a fixed handover to advisors, the way out when information is missing and the sentence that every answer is a draft.