← ClaudeAtlas

orchestrate-agent-architecturelisted

Designing the agent itself for an Orchestrate-style challenge — real agent loops versus hardcoded workflows, tool boundaries, prompt structure, and the design decisions a judge can actually see in your code. Use when starting to build an AI agent for a hackathon or evaluation, when deciding between a scripted pipeline and an agentic loop, when structuring tools/prompts for an agent, or when reviewing whether an agent design would read as genuinely agentic to a reviewer.
NITISH-R-G/hackerrank-orchestrate-skills · ★ 3 · AI & Automation · score 71
Install: claude install-skill NITISH-R-G/hackerrank-orchestrate-skills
# Orchestrate Agent Architecture HackerRank's own description of the code rubric is unusually specific and worth quoting directly: it measures **"whether submissions contain actual agent loops versus hardcoded workflows."** That is a stated, explicit discriminator. It's also the single easiest place to lose 30% of your score while producing something that technically works. ## The hardcoded-workflow trap Under time pressure the tempting shape is: ```python for ticket in tickets: category = classify(ticket) # one LLM call if category == "billing": urgency = check_billing_rules(ticket) elif category == "technical": urgency = check_tech_rules(ticket) ... if urgency > THRESHOLD: escalate(ticket) else: respond(ticket) ``` This can score well on raw correctness and still read as a **decision tree with LLM calls embedded in it**, not an agent. Every branch was decided by you, at authoring time. The model fills in blanks; it doesn't decide anything about *how to approach* the problem. ## What an actual agent loop looks like The distinguishing property: **the model decides what to do next, and the loop continues until the model says it's done** — rather than the control flow being fixed in advance by the author. ```python def run_agent(ticket, tools, max_steps=10): messages = [system_prompt(), user_prompt(ticket)] for step in range(max_steps): response = model.call(messages, tools=tools) i