Files
service-catalog/update_catalog/docs/implementation/02-agent.md
T
2026-03-06 17:06:07 +09:00

4.1 KiB

Agent 구현 태스크 (Step 2~4)

전제 조건

  • Step 1 Skills 구현 완료 (인터페이스 버전 1.0 확정)
  • Staging K8s 클러스터 접근 가능

Step 2: Agent 프레임워크 POC

목표: OpenClaw와 Nanobot 중 하나를 실제 클러스터에서 검증하여 프레임워크를 확정한다.

POC 범위 (최소)

  • 각 프레임워크를 Staging 클러스터에 배포
  • helm_diff Skill 하나를 등록
  • Agent가 Skill을 호출하여 실제 결과 반환 확인
  • 두 프레임워크 비교 후 결정

비교 기준

항목 OpenClaw Nanobot 결과
K8s 배포 난이도 공식 Helm chart 직접 구성 -
Skill 연결 방식 - - -
로그/디버깅 편의성 - - -
보안 설정 가능 여부 - - -

POC 완료 후 이 표를 채운다.

완료 기준: 두 프레임워크 중 하나 선택, 선택 이유를 decisions/ 에 기록


Step 3: Agent 워크플로 정의

목표: 선택한 프레임워크에서 모든 Skill을 등록하고 워크플로를 정의한다.

태스크

  • 모든 Skill 등록
    • helm_diff, breaking_change_check, generate_upgrade_doc
    • update_docs_file, create_pr, deploy_validate
  • 워크플로 정의 (Cron 스케줄 기반)
workflow: helm-upgrade-automation
schedule: "0 8 * * *"

steps:
  - name: detect-versions
    skill: chart_version_detector
    output: new_versions[]  # current_version + latest_version

  - name: generate-diffs
    skill: helm_diff
    for_each: new_versions
    output: diff_json[]
    # 내부에서 최신 차트 pull + 버전 디렉토리 생성 수행

  - name: check-breaking
    skill: breaking_change_check
    for_each: diff_json
    output: breaking_results[]

  - name: generate-docs
    skill: generate_upgrade_doc
    # Skill 내부에서 severity 분기: breaking=true or severity≥high → LLM 심층 요약, 그 외 → 간이 템플릿
    for_each: [diff_json, breaking_results]
    output: docs[]

  - name: update-docs
    skill: update_docs_file
    for_each: docs
    output: updated[]

  - name: validate-deployments
    skill: deploy_validate
    condition: breaking=false and severity<high  # breaking=true or severity>=high이면 스킵 → 사람 승인 필요
    for_each: updated
    output: validation_results[]

  - name: create-prs
    skill: create_pr
    for_each: updated
    output: pr_urls[]

  - name: notify
    channel: slack
    message: "Helm upgrade PRs created: {pr_urls}"
  • K8s 이벤트 기반 트리거 설정 (선택: ArgoCD App 상태 변화 등)
  • Staging 클러스터에서 E2E 동작 확인

완료 기준: Staging에서 airflow chart 신규 버전 감지 → PR 생성까지 E2E 자동 실행


Step 4: 보안 정책 수립 후 운영

목표: 운영 클러스터 투입 전 보안 정책을 확립한다.

태스크

  • RBAC 설정 (test namespace만 허용)
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: helm-test
rules:
  - apiGroups: ["apps"]
    resources: ["deployments", "statefulsets"]
    verbs: ["get", "list", "create", "update", "delete"]
  - apiGroups: [""]
    resources: ["pods", "services", "configmaps"]
    verbs: ["get", "list", "create", "update", "delete"]
  • NetworkPolicy 설정 (허용 egress만 통과)
    • GitHub API (api.github.com)
    • LLM API (api.anthropic.com 또는 api.openai.com)
    • Slack API (알림용)
  • Skill allowlist 관리 (shell skill 비활성화 필수)
  • 입력 sanitization (Prompt Injection 방지)
  • breaking=true PR은 사람이 직접 머지 승인 유지

완료 기준: 보안 체크리스트 전항목 충족, 운영 클러스터 투입


관련 문서