– 일정 관리와 파일 요약 자동화
안녕하세요.
지난 글에서는 이메일 업무를 자동화하는 멀티 에이전트 구조를 살펴봤습니다.
이번에는 더 개인적인 영역인 일정 관리와 파일 요약을 도와주는 AI 개인 비서 에이전트를 만들어보겠습니다.
우리가 직접 만들어서 실행해볼 이 에이전트는, 다음과 같은 질문에 대응할 수 있습니다:
- “오늘 일정 뭐 있어?”
- “이번 주에 뭐하더라?”
- “프로젝트 계획서 파일 요약해줘”
단순한 Q&A를 넘어, 진짜 생산성을 도와주는 도구형 AI를 만들어보는 경험이 될 것입니다.
🎯 1. 시나리오 개요
목표
- 날짜별 일정을 조회하거나 추가할 수 있는 기능
- 문서 파일 내용을 읽고 요약해주는 기능
구성
구성 요소 역할
구성 요소 | 역할 |
📅 get_schedule(date) | 해당 날짜의 일정을 조회 |
📁 summarize_file(file_name) | 파일 내용을 요약 |
🤖 AssistantAgent | 사용자의 요청을 분석해 적절한 도구를 선택해 응답 |
🛠 2. 도구 구현
2-1. 일정 조회 도구
from agents import function_tool
# 데모용 고정 일정 DB
schedule_db = {
"2025-04-09": ["10:00 팀 회의", "13:00 점심 약속"],
"2025-04-10": ["09:30 출근 보고", "15:00 클라이언트 미팅"]
}
@function_tool
def get_schedule(date: str) -> str:
"""지정한 날짜의 일정을 조회합니다."""
events = schedule_db.get(date)
if events:
return f"{date} 일정: " + ", ".join(events)
return f"{date}에는 등록된 일정이 없습니다."
2-2. 파일 요약 도구
@function_tool
def summarize_file(file_name: str) -> str:
"""파일 이름을 받아 주요 내용을 요약합니다."""
if file_name == "프로젝트계획서.pdf":
return "이 문서는 프로젝트 개요, 목표, 일정, 담당자에 대한 내용을 담고 있습니다."
return f"{file_name} 요약 결과를 찾을 수 없습니다."
※ 실제 파일 파싱은 PDF 라이브러리나 텍스트 추출 모듈과 연동해 구현할 수 있습니다.
🧠 3. 에이전트 정의
이제 두 도구를 사용할 수 있는 에이전트를 만듭니다.
from agents import Agent
assistant_agent = Agent(
name="AssistantAgent",
instructions="""
너는 사용자의 일정 관리와 파일 요약을 도와주는 AI 비서야.
날짜가 포함된 질문에는 get_schedule 도구를 사용하고,
파일명이 포함된 요청에는 summarize_file 도구를 사용해.
""",
tools=[get_schedule, summarize_file]
)
여기서 프롬프트 설계가 중요합니다.
에이전트가 언제 어떤 도구를 사용해야 할지를 명확하게 지시하면, GPT는 그에 따라 잘 판단하고 도구를 호출합니다.
🧪 4. 실행 예시
from agents import Runner
# 1. 일정 조회 요청
question1 = "2025-04-09 일정 알려줘"
result1 = Runner.run_sync(assistant_agent, question1)
print("[일정 응답]", result1.final_output)
# 2. 파일 요약 요청
question2 = "프로젝트계획서.pdf 요약해줘"
result2 = Runner.run_sync(assistant_agent, question2)
print("[파일 요약 응답]", result2.final_output)
출력 예시:
[일정 응답] 2025-04-09 일정: 10:00 팀 회의, 13:00 점심 약속
[파일 요약 응답] 이 문서는 프로젝트 개요, 목표, 일정, 담당자에 대한 내용을 담고 있습니다.
GPT가 날짜/파일명 등을 이해하고, 알맞은 도구를 스스로 선택해 호출합니다.
🌐 5. FastAPI로 API 서버 만들기
이 에이전트를 API로 배포하면, 웹이나 모바일에서도 활용 가능합니다.
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class UserRequest(BaseModel):
question: str
@app.post("/assistant")
async def ask_assistant(req: UserRequest):
result = await Runner.run(assistant_agent, req.question)
return {"answer": result.final_output}
실행:
uvicorn main:app --reload
Swagger UI: http://localhost:8000/docs 에 접속하여 직접 요청을 테스트할 수 있습니다.
📈 6. 확장 아이디어
이 구조는 확장성이 뛰어납니다. 예를 들어 다음 기능도 쉽게 추가할 수 있습니다:
기능 | 도구 |
일정 추가 | add_schedule(date, event) |
요약 스타일 선택 | summarize(text, style) (간단히, 자세히 등) |
파일 비교 | compare_files(file1, file2) |
업무 시간 분석 | analyze_schedule(date_range) |
모든 기능은 함수 + 데코레이터만으로 도구화할 수 있고, Agent는 지시만 잘 주면 자동으로 이를 사용할 수 있습니다.
✅ 마무리하며
이번 글에서는 GPT와 Agents SDK를 활용해 일정 관리와 문서 요약을 도와주는 개인 비서를 구현해봤습니다.
단순한 대화형 AI를 넘어, 진짜 나를 도와주는 AI 도구로서 GPT를 활용하는 경험이 되셨길 바랍니다.
다음 편에서는 실제 서비스로 운영할 때 필요한 보안, 비용 절감, 성능 최적화 전략을 다룹니다.
또한 여러 명의 사용자나 다양한 작업 흐름에 대응하기 위한 설계 팁도 함께 소개할 예정입니다.
'인공지능 (AI) > OpenAI Agents SDK' 카테고리의 다른 글
7 - Agents SDK 운영 팁과 확장 전략 (1) | 2025.04.08 |
---|---|
5 - Agents SDK로 업무 자동화하기 (0) | 2025.04.08 |
4 - 간단한 에이전트부터 FastAPI 연동까지 실습하기 (1) | 2025.04.08 |
3 - Agents SDK의 핵심 개념 (0) | 2025.04.08 |
2 - Python 환경에서 Agents SDK 설치 및 기본 설정하기 (4) | 2025.04.08 |