최신 공식 메인 캐릭터를 바탕으로 포트폴리오용으로 다듬은 Eco² 지구 캐릭터: 하늘색 지구, 초록 대륙과 머리 위 새싹, 갈색 눈·코·웃는 입
전시실로

Eco²

Backend · Cloud infrastructure

분리배출을, 사진 한 장과 대화로.

한국 분리배출 환경을 이해하는 올인원 AI 어시스턴트입니다.

2025.10.31 — 2026.02.10

팀 프로젝트 · 인프라·배포 기반 → 도메인 백엔드 → 비동기 처리·대화 에이전트·검증

2025 새싹 해커톤우수상 · 2025.12.02

  • 웹 앱운영 종료

다른 에이전트와 분리한 수정, 관점별로 나눈 평가 검토

Eco² 백엔드에서 코딩 에이전트와 함께 고친 두 사건입니다. 모델 이름은 Claude Opus 4.5 · 4.6 공동 작성 표기가 있는 변경에만 적었습니다.

범례 전체

읽는 법 · 모든 사건에 같은 규칙

  • 세로 열은 누가 했는지, 위에서 아래로는 시간 순서
  • 실선: 기록된 전달 · 다음 단계
  • 굵은 남색 선 ↩: 작업을 되돌려 보낸 지적
  • 점선: 기록된 실행이 아님 (지침 · 권한 없는 가설 · 확인 안 한 경계)
  • 사각형: 행동
  • 둥근 칸: 관측된 상태 · 지적
  • 접힌 모서리: 산출물 · 증거
  • 빗금 열: 개발 대상 제품 안의 구성 요소 (개발에 쓴 에이전트가 아님)

사례 1 / 2 · 다른 에이전트가 쓰던 develop과 분리해, 토큰 스트리밍을 두 번에 걸쳐 고쳤습니다

January 2026

다른 에이전트가 쓰던 develop과 분리해, 토큰 스트리밍을 두 번에 걸쳐 고쳤습니다

  1. 코딩 에이전트다른 에이전트

    행동develop에서 다른 작업 진행

    • 전달작업 트리 점유 → 분리→ 별도 worktree · 분석 노트부터 (수정 worktree)
  2. 개발 대상Chat 스트림

    관측 · 지적stage 이벤트만 도착, token 없음

    • 전달조사 범위: 스트림 발행→ 별도 worktree · 분석 노트부터 (수정 worktree)
  3. 코딩 에이전트수정 worktree

    행동별도 worktree · 분석 노트부터

    • 전달변경 파일 결정→ OpenAI SDK를 LangChain 어댑터로 감쌈 (수정 worktree)
  4. 코딩 에이전트수정 worktree

    행동OpenAI SDK를 LangChain 어댑터로 감쌈

    • 전달→ PR #437 → develop 병합 (산출물)
  5. 산출물산출물

    산출물PR #437 → develop 병합

    • 전달→ git-workflow skill에 worktree · 분석 절차 (산출물)
    • 전달병합 뒤 E2E→ answer 토큰 중복 · intent "general" 누출 (Chat 스트림)
  6. 개발 대상Chat 스트림

    관측 · 지적answer 토큰 중복 · intent "general" 누출

  7. 산출물산출물

    산출물git-workflow skill에 worktree · 분석 절차

  8. 코딩 에이전트수정 worktree

    행동node · seq로 발행자 둘 구분 → 캡처 토큰은 건너뜀 (두 차례)

    • 전달전후 비교→ 기록된 SSE 전후 발췌 (Chat 스트림)
    • 전달명령 단위 검사→ 로컬 command 검사: notifier 토큰 0 (산출물)
  9. 개발 대상Chat 스트림

    관측 · 지적기록된 SSE 전후 발췌

  10. 산출물산출물

    산출물로컬 command 검사: notifier 토큰 0

    • 전달→ PR #448 · develop 충돌 해결 후 병합 (산출물)
  11. 산출물산출물

    산출물PR #448 · develop 충돌 해결 후 병합

배경
Chat의 SSE에 단계 이벤트는 오는데 토큰이 오지 않았습니다. 다른 에이전트가 develop에서 작업 중이어서 별도 worktree에서 분석 노트부터 썼고, 첫 수정이 병합된 뒤 관측된 중복과 누출을 두 번째 수정으로 좁혔습니다.
결과
토큰 발행 책임을 실제로 토큰을 내는 노드 한 곳으로 좁혔습니다. command 검사는 notifier가 토큰을 보내지 않는 것까지, 기록된 SSE 발췌는 그 뒤의 E2E 관측을 보여 주는 서로 다른 증거입니다.
한계
다른 에이전트의 신원 · 모델과 코딩 에이전트의 수는 기록에 없습니다. 두 PR 모두 공식 리뷰 승인은 없었고, 이 기록은 현재 서비스나 새 E2E 실행이 아닙니다.
근거와 남은 한계
  • PR #448 안에서도 먼저 answer 토큰만 건너뛰었고, 이후 ProcessChatCommand가 캡처한 메시지 토큰 전체를 건너뛰게 했습니다. 한 번에 끝난 수정으로 합치지 않았습니다.
  • 분석 노트와 전후 SSE 발췌는 저장소의 내부 보고서 기록입니다.

February 10, 2026

평가기를 관점별로 나눠 검토하고, 구체적인 지적만 코드로 옮겼습니다

  1. 코딩 에이전트구현

    행동평가 파이프라인 구현 후보

    • 전달관점별 검토→ 지적: 샘플링 · 비용 가드 없음 / 결과 가변 / 설정이 closure 밖 (검토 관점 5개)
  2. 리뷰 · 검증검토 관점 5개

    관측 · 지적지적: 샘플링 · 비용 가드 없음 / 결과 가변 / 설정이 closure 밖

  3. 코딩 에이전트구현

    행동평가 전 샘플링 · 일일 비용 확인

  4. 코딩 에이전트구현

    행동frozen 결과 객체 · 명시적 config 바인딩

    • 전달검사→ 단위 · wiring 검사 (로컬 · mock) (산출물)
  5. 산출물산출물

    산출물단위 · wiring 검사 (로컬 · mock)

    • 기록된 실행 아님이 범위를 넘지 않음→ 실제 Redis + PG E2E: 당시 미작성 (산출물)
    • 전달→ PR #546 병합 · 절차를 eval-feedback-loop skill로 (산출물)
  6. 산출물산출물

    지침 · 미확인실제 Redis + PG E2E: 당시 미작성

  7. 산출물산출물

    산출물PR #546 병합 · 절차를 eval-feedback-loop skill로

배경
대화 평가 파이프라인 구현 보고서에는 다섯 검토 관점과 두 차례의 수정 내역이 남아 있습니다. 관점의 수는 세션이나 에이전트의 수가 아닙니다.
결과
평가 전에 샘플링하고 일일 비용을 확인하는 분기, 고정된 결과 객체, 명시적 설정 바인딩이 실제 코드에 있습니다. 비용 조회가 실패하면 L2 평가를 그대로 진행하므로, 지출을 확정적으로 막는 상한은 아닙니다.
한계
다섯 관점은 검토를 나눈 방식이며, 다섯 개의 독립 모델 세션이나 사람 전문가의 승인을 뜻하지 않습니다. 보고서의 100점 가까운 내부 점수는 품질 측정이 아니어서 싣지 않았습니다.
근거와 남은 한계
  • 보고서 머리에 연결된 PR은 #545이고, Phase 1–4를 병합한 공개 PR은 #546입니다.
  • 아직 남은 recalibration stub도 보고서에 그대로 적혀 있습니다.