티스토리 뷰

반응형

비전공자를 위한 AI Agent 4편

“생애 첫 AI Agent 만들기 – 진짜로 파일을 읽고, 판단하고, 저장한다”

여기까지 왔다면,
솔직히 이제 이런 생각 들죠.

“이론은 알겠는데…
그래서 진짜로 돌아가는 거 하나만 보고 싶다.”

맞아요.
AI Agent는 한 번이라도 직접 만들어보지 않으면
영원히 개념에서 끝나요.

그래서 이번 글 목표는 딱 하나입니다.

최소 단위 AI Agent를 실제로 만들어본다
❗ 말만 하는 게 아니라 결과물이 남는다


0️⃣ 오늘 우리가 만들 에이전트 (아주 명확)

🎯 목표

  • notes.txt 파일을 실제로 읽고
  • 내용을 요약 + 할 일 목록으로 정리한 뒤
  • result.json 파일로 실제로 저장

❌ 안 하는 것

  • 웹 서버
  • DB
  • 복잡한 프레임워크
  • 멀티 에이전트

👉 “에이전트의 본질”만 남깁니다


1️⃣ 준비물 (비전공자 기준 최소)

① Python 3.10 이상

python --version

② OpenAI API Key

환경변수로 설정

# mac / linux
export OPENAI_API_KEY="your_api_key"

# windows (새 터미널 필요)
setx OPENAI_API_KEY "your_api_key"

2️⃣ 프로젝트 구조 (이게 전부)

ai-agent-first/
 ├─ agent.py
 └─ notes.txt

notes.txt 예시

블로그 할 일 메모

- AI Agent 시리즈를 체계적으로 연재하고 싶다
- 비전공자도 이해할 수 있어야 한다
- 개념 → 실습 → 확장 순서가 중요하다
- 코드가 실제로 실행돼야 신뢰가 생긴다

3️⃣ 핵심 개념 다시 짚고 코드로 들어가자

우리가 만들 구조는 이거예요.

[AI 모델]
   ├─ 생각 (요약 / 판단)
   └─ 행동
       ├─ 파일 읽기 (Tool)
       └─ 파일 쓰기 (Tool)

👉 Tool은 실제 Python 함수
👉 AI는 “이 함수를 써야겠다”고 결정


4️⃣ 실행되는 코드 (검증 완료)

아래 코드는 복붙 → 실행 가능합니다.
(불필요한 추상화 없음)

agent.py

import json
import os
from openai import OpenAI

client = OpenAI()


# 🔧 Tool 1: 파일 읽기
def read_notes(path: str) -> str:
    if not os.path.exists(path):
        raise FileNotFoundError(f"{path} 파일이 없습니다.")
    with open(path, "r", encoding="utf-8") as f:
        return f.read()


# 🔧 Tool 2: 결과 저장
def write_result(path: str, data: dict):
    with open(path, "w", encoding="utf-8") as f:
        json.dump(data, f, ensure_ascii=False, indent=2)


def run_agent():
    # 1) 실제 파일 읽기 (행동)
    notes = read_notes("notes.txt")

    # 2) AI에게 '생각' 맡기기
    prompt = f"""
너는 업무 정리 AI 에이전트다.

아래 메모를 읽고:
1) 핵심 요약 (3줄 이내)
2) 실행 가능한 TODO 리스트 5개

각 TODO는 다음 형식을 따른다:
- title
- priority (P0, P1, P2 중 하나)
- reason

메모 내용:
{notes}

JSON 형식으로만 출력해라.
"""

    response = client.chat.completions.create(
        model="gpt-4.1-mini",
        messages=[
            {"role": "system", "content": "너는 성실한 AI Agent다."},
            {"role": "user", "content": prompt},
        ],
        temperature=0.2,
    )

    # 3) AI 판단 결과 파싱
    result_text = response.choices[0].message.content
    result_json = json.loads(result_text)

    # 4) 실제 파일로 저장 (행동)
    write_result("result.json", result_json)

    print("✅ 에이전트 실행 완료: result.json 생성됨")


if __name__ == "__main__":
    run_agent()

5️⃣ 실행해보자

python agent.py

실행 후 폴더를 보면 👇

result.json

이게 생깁니다.

result.json 예시

{
  "summary": "AI Agent 블로그 시리즈를 비전공자 관점에서 체계적으로 연재하려는 계획이다. 개념 설명뿐 아니라 실행 가능한 코드와 실습을 통해 신뢰를 얻는 것이 목표다.",
  "todos": [
    {
      "title": "AI Agent 개념 글 정리",
      "priority": "P0",
      "reason": "시리즈의 방향성과 독자 이해를 좌우함"
    },
    {
      "title": "실습 코드 예제 제작",
      "priority": "P0",
      "reason": "실행 가능한 예제가 신뢰를 만든다"
    }
  ]
}

👉 이 순간이 중요합니다.

AI가 실제로:

  • 파일을 읽었고
  • 판단했고
  • 결과를 남겼어요

이게 바로 에이전트의 최소 단위입니다.


6️⃣ “근데 이거 그냥 스크립트 아니야?”

맞아요.
지금은 일부러 그렇습니다.

AI Agent의 본질은:

  • 화려한 프레임워크 ❌
  • 자동 판단 + 실제 행동 ✅

지금 만든 이 구조에:

  • Tool을 더 붙이고
  • 반복 루프를 만들고
  • 실패 처리 넣으면

👉 그대로 “진짜 에이전트”가 됩니다.


7️⃣ 오늘 이 글의 진짜 목적

이걸 느꼈다면 성공이에요.

“아…
AI Agent는
생각을 맡기고, 행동은 내가 통제하는 구조구나

이 감각이 없으면
RAG, 멀티 에이전트, 오케스트레이션 전부 의미 없습니다.


다음 글 예고 (여기서 확장 들어간다)

5편 – Agent를 ‘반복’시키는 순간, 자동화가 된다

  • 한 번이 아니라 끝날 때까지
  • 실패하면 다시 판단
  • 조건에 따라 다른 Tool 선택

👉 진짜 “Agent Loop”로 넘어갑니다.


오늘 요약 (이건 꼭 기억)

  • AI Agent의 최소 단위는
    👉 판단(LLM) + 행동(Tool)
  • 결과물이 파일/데이터로 남아야 한다
  • 프레임워크보다 구조가 먼저다

추천 태그

AI Agent 실습,비전공자 AI 만들기,AI Agent Python,Tool Calling 실습,생성형 AI 자동화,AI Agent 기초 코드,LLM 활용,AI 파일 처리,AI 업무 자동화,AI Agent 튜토리얼

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함
반응형