에이전트 상태 목록

Agent status

에이전트가 여러 단계를 거쳐 작업할 때, 각 단계의 완료·진행·대기 상태를 세로로 보여주는 목록.

다른 이름: Step listTask progress listPlan-and-execute UI
···
html
<ul class="steps" id="steps">
  <li data-s="done"><i class="ic"></i><span>계획 수립</span></li>
  <li data-s="active"><i class="ic"></i><span>자료 검색</span></li>
  <li data-s="pending"><i class="ic"></i><span>내용 분석</span></li>
  <li data-s="pending"><i class="ic"></i><span>초안 작성</span></li>
</ul>
css
.steps{list-style:none;margin:0;padding:0;width:min(220px,90%);display:grid;gap:2px}
.steps li{display:flex;align-items:center;gap:10px;padding:7px 2px;font-size:12px;color:var(--muted);position:relative}
.steps li::before{content:"";position:absolute;left:9px;top:26px;bottom:-2px;width:1.5px;background:var(--line)}
.steps li:last-child::before{display:none}
.steps li[data-s=done]{color:var(--fg)}
.steps li[data-s=active]{color:var(--fg);font-weight:600}
.ic{width:20px;height:20px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;border:1.5px solid var(--line);background:var(--surface);position:relative;z-index:1}
li[data-s=done] .ic{background:var(--accent-3);border-color:var(--accent-3)}
li[data-s=done] .ic::after{content:"";width:5px;height:8px;border:solid #fff;border-width:0 1.6px 1.6px 0;transform:rotate(45deg) translate(-1px,-1px)}
li[data-s=active] .ic{border-color:var(--accent)}
li[data-s=active] .ic::after{content:"";width:8px;height:8px;border-radius:50%;border:1.6px solid var(--accent);border-top-color:transparent;animation:sp .6s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
js
const items = [...document.querySelectorAll('.steps li')];
let i = 1;
function advance() {
  if (i >= items.length) { setTimeout(reset, 1400); return; }
  items[i].dataset.s = 'done';
  const icon = items[i].querySelector('.ic');
  icon.replaceWith(icon.cloneNode(true));
  if (items[i + 1]) items[i + 1].dataset.s = 'active';
  i++;
  setTimeout(advance, 1000);
}
function reset() {
  items.forEach((li, idx) => { li.dataset.s = idx === 0 ? 'done' : idx === 1 ? 'active' : 'pending'; const ic = li.querySelector('.ic'); ic.replaceWith(ic.cloneNode(true)); });
  i = 1;
  setTimeout(advance, 900);
}
setTimeout(advance, 900);

도구 호출 카드가 "지금 이 한 단계"를 보여준다면, 에이전트 상태 목록은 전체 계획을 한눈에 보여줍니다 — "계획 수립 → 자료 검색 → 분석 → 초안 작성" 같은 단계들이 순서대로 나열되고, 완료된 단계는 체크, 진행 중인 단계는 스피너, 아직 시작 안 한 단계는 흐린 색으로 표시됩니다.

여러 단계를 거치는 작업은 얼마나 걸릴지 예측하기 어렵습니다. 이 목록은 "얼마나 남았는지" 정확한 숫자를 주진 못해도 "몇 단계 중 몇 번째"라는 상대적 위치를 보여줘서, 진행률 바 하나만 도는 것보다 훨씬 덜 막막하게 느껴지게 합니다.

계획이 실행 중에 바뀔 수도 있다는 걸 인정하는 게 좋습니다 — 처음 세운 계획에 없던 단계가 중간에 추가되거나 순서가 바뀌면, 목록도 그 변화를 그대로 반영해서 보여줘야 사용자가 "계획이 왜 저래"라고 의심하지 않습니다.

언제 쓰나

여러 도구를 순서대로 호출하는 에이전트·워크플로 실행에 씁니다. 단일 API 호출 하나로 끝나는 작업에는 과합니다.