Task 1 · 8 tasks
Basic agent and prompting
Build a polite concierge whose entire knowledge of the company lives in its system prompt.
The “Simple Greeting” problem
Alice's first ask is modest: an assistant that can hold a professional conversation and knows what DataStream's departments do. No database yet, just good instructions.
Build it
Build the concierge
Challenge
Write a system prompt and create a Strands agent that answers questions about DataStream's departments (Sales, HR, Engineering) in a helpful, professional tone.
Work in
phase1/starter/t1_basic_agent.py(look forTODO; an unfinished one prints[starter] TODO …) and run it withuv run bootcamp.py phase1 t1 --starter. The reference solution isphase1/t1_basic_agent.py;uv run bootcamp.py phase1 t1runs it.Hint 1
A Strands
Agentis a model plus asystem_prompt(plus tools, later). Usemake_model()fromcommon.pyso calls go through the gateway. See Strands: prompts.Hint 2
The prompt is the agent's only knowledge, so list each department with one line about what it does, then state the tone.
common.run(agent)gives you one-shot and chat modes.sketchread onlyagent = Agent(name="Concierge", model=..., system_prompt="""You are ... Our departments: ...""")Solution
phase1/t1_basic_agent.pyfrom strands import Agent from common import SYSTEM_PROMPT, make_model, run agent = Agent(name="Concierge", model=make_model(), system_prompt=SYSTEM_PROMPT) if __name__ == "__main__": run(agent)The reference prompt is
SYSTEM_PROMPTinphase1/common.py: one line per department and a request for helpful, professional answers. Your starter defines its own.Talk to it
terminal · your starter fileuv run bootcamp.py phase1 t1 --starter "What departments do we have?"terminal · reference solutionuv run bootcamp.py phase1 t1 "What departments do we have?"Leave out the prompt for an interactive chat; type
exitto quit.Experiments
- Add a Finance department and a rule like “always answer in two sentences”. Re-run.
- Ask about Marketing. The real company has it, but the prompt doesn't. Does the agent admit it doesn't know, or invent an answer? How would you prompt against that?
Check your work
Phase 1 has no automated test: you check it by running the task and looking for the result below.
Asked “What departments do we have?”, the agent lists Sales, HR and Engineering in a helpful, professional tone. Asked about the Sales team, it paraphrases the prompt.
Under the hood
Each call sends the system prompt plus the conversation so far to the model through LiteLLM. With no tools, the agent loop is a single model call. The prompt is the agent's only source of truth, which is exactly why Task 2 gives it real data.