All samples · Agent orchestration

Multi-step Service Triage Agent

A tool-calling pattern that chooses FAQ lookup or human escalation instead of answering everything directly.

Problem

During the hackathon, students ask repeated schedule and submission questions, but account or secret issues need tutor escalation.

Users

Student teams, tutors, and operations staff handling D-day support.

Why this track

This is the in-curriculum chance to practice ReAct-style orchestration and tool boundaries without building a large agent platform.

Architecture

Stay minimal. 5-6 nodes. Each arrow is one network hop.

user

Student question

agent

gpt-4o-mini agent loop

tools

Tool schema registry

faq

lookup_faq()

human

escalate_to_human()

state

Team issue state

Edges

  • user agent — question + context
  • agent tools — tool choice
  • tools faq — public topic
  • tools human — private or blocked issue
  • faq agent — tool result
  • human state — ticket note

Prompt Pack

Starting prompts. Iterate. Move the system prompt into prompts/system.md so it can be versioned.

system
You are a hackathon service triage agent. Use lookup_faq for public schedule, submission, and cost questions. Use escalate_to_human for account, key, private data, or unresolved issues. Never claim you fixed an account yourself.
user
Our app cannot call Azure and we also need to know when submission closes.

Code Snippet

The pattern shape. Read it, run the matching scaffold, then adapt the idea for your own team.

python
first = client.chat.completions.create(
    model=deployment,
    messages=messages,
    tools=TOOLS,
)
call = first.choices[0].message.tool_calls[0]
result = run_local_tool(call.function.name, call.function.arguments)
messages += [first.choices[0].message, tool_message(call.id, result)]
final = client.chat.completions.create(model=deployment, messages=messages)
# ... your turn: add one safe tool for your domain

Reference: src/techniques/agent_orchestration/ in halla-ai/hackathon-sample-2026

Demo Screens

Three screens that prove the prototype works.

1

Question intake

Student asks a mixed FAQ and account question.

2

Tool decision

Debug panel shows FAQ lookup plus tutor escalation note.

3

Student reply

Final answer separates public guidance from tutor follow-up.

Azure budget

Uses gpt-4o-mini chat plus tool calls. Keep to one or two tool turns per request; most demos stay below USD 1.

Pitfalls

  • • Symptom: agent loops. Cause: no maximum tool-call count. Fix: cap calls and return a tutor handoff.
  • • Symptom: wrong tool arguments. Cause: vague schema. Fix: use short enums and required fields.
  • • Symptom: model reveals hidden state. Cause: streaming internal steps. Fix: show only user-safe tool summaries.

Possible Extensions

If you finish the 1-day path early, use one question below to make the project more original.

  • How would your version remember unresolved issues across team members?
  • How would tutors approve or reject an escalation before it becomes visible?
  • How would you prevent the model from selecting a tool for a private action?