AWS 기술 블로그
Strands Agent SOPs 소개 – AI 에이전트를 위한 자연어 워크플로우
이 글은 아래 블로그 원문을 번역하고 일부 내용을 수정하였습니다
Introducing Strands Agent SOPs – Natural Language Workflows for AI Agents, https://aws.amazon.com/blogs/opensource/introducing-strands-agent-sops-natural-language-workflows-for-ai-agents/
현대의 AI는 코드를 작성하고, 교향곡을 작곡하며, 복잡한 추론 문제를 해결할 수 있습니다. 그렇다면 왜 여전히 AI가 우리가 원하는 것을 안정적으로 수행하도록 하는 것이 어려울까요?
복잡한 작업을 일관되게 수행하는 신뢰할 수 있는 AI 에이전트를 구축하는 것은 여전히 어려운 과제입니다. 현대의 언어 모델은 추론과 문제 해결에 뛰어나지만, 이러한 능력을 예측 가능한 워크플로우로 변환하려면 종종 에이전트 동작을 조율하기 위한 광범위한 상태 머신이 필요합니다. 코드로 정의된 워크플로우는 에이전트의 동작에 대한 최대한의 제어를 제공하지만, 시스템을 변경하려면 새로운 동작을 고려하기 위해 수백 줄의 코드를 작성해야 합니다. 이는 에이전트 개발에서 제어-유연성 스펙트럼(Control-flexibility spectrum)의 한 극단을 나타냅니다.
이 스펙트럼의 다른 끝에서는 모델 주도 에이전트(Model-Driven agents)가 코드로 정의된 동작을 완전히 없애고 대신 자체 조율을 수행합니다. 워크플로우를 정의하는 수천 줄의 코드 대신, 우리는 에이전트에게 문제 해결을 위한 자체 경로를 결정할 자율성을 부여합니다. 모델 주도 에이전트는 예상치 못한 입력에 탄력적입니다. 그들의 비결정적 특성은 모든 상황에 유연하게 적응할 수 있게 합니다. 그러나 이러한 유연성에는 대가가 따릅니다. 목표를 일관되게 달성하기 위해 에이전트를 신뢰할 수 있는 방식으로 조종하기가 어렵습니다.
두 세계의 장점을 모두 얻을 수 있는 방법이 있다면 어떨까요?
Agent SOPs(Standard Operating Procedure, 표준 운영 절차)를 소개합니다. 이는 유연성과 제어 사이의 강력한 중간 지점 역할을 하는 자연어로 AI 에이전트 워크플로우를 정의하기 위한 표준화된 마크다운 형식입니다. 이러한 자연어 지시 세트는 복잡한 프로세스를 다양한 AI 시스템과 팀에서 작동하는 재사용 가능하고 공유 가능한 워크플로우로 변환합니다. 구조화된 가이드와 AI 에이전트를 강력하게 만드는 유연성을 결합함으로써, Agent SOPs는 팀이 검증된 워크플로우를 재사용 가능한 템플릿으로 인코딩하고 지능형 자동화가 필요한 곳마다 일관되게 적용할 수 있게 합니다. Amazon의 내부 빌더 커뮤니티 내에서 혁신적으로 등장한 이 개념은 팀들이 에이전트 동작을 조종할 수 있는 잠재력을 발견하면서 회사 전체에 빠르게 확산되었습니다.
내부 혁신에서 오픈 소스로
Amazon에서는 일상 업무에서 AI 사용을 적극적으로 실험하고 혁신하는 수만 명의 빌더로 구성된 활발한 커뮤니티가 있습니다. 이 커뮤니티는 AWS 서비스 팀, Amazon 소매 운영, 물류, 연구 그룹에 걸쳐 있으며, AI 기반 개발 도구에 대한 빠른 실험과 지식 공유 문화로 결합되어 있습니다.
에이전틱 AI 코딩 어시스턴트가 내부적으로 처음 사용 가능해졌을 때, 우리 빌더들은 즉시 가능한 것의 경계를 넓히기 시작했습니다. 팀들은 코드 리뷰와 문서 생성부터 장애 대응과 시스템 모니터링까지 모든 것을 자동화하기 위해 이들을 활용하기 시작했습니다. 하지만 채택이 확산되면서 여러 문제에 부딪혔습니다.
가장 큰 문제는 일관성 없는 동작이었습니다. 개발 중에 완벽하게 수행되었던 동일한 에이전트가 실제 시나리오를 처리할 때 완전히 다른 결과를 생성했습니다. 구조화된 가이드 없이, 에이전트들은 도구 사용, 작업 우선순위 지정, 출력 형식에 대해 다른 결정을 내렸고, 이는 신뢰를 훼손하고 사용자를 좌절시키는 예측 불가능한 결과로 이어졌습니다.
복잡한 프롬프트 엔지니어링이 도입을 가로막는 또 다른 요인이었습니다. 정교한 워크플로우를 위한 효과적인 프롬프트를 작성하려면 도메인과 언어 모델 동작 모두에 대한 깊은 전문 지식이 필요했습니다. 팀들은 복잡한 작업을 위한 프롬프트를 완성하는 데 몇 주를 보냈지만, 그들의 지시사항이 다른 모델이나 사용 사례에 잘 전달되지 않는다는 것을 발견했습니다. 개발자들은 변경이 출력에 어떤 영향을 미칠지 예측할 수 없어 프롬프트 업데이트를 주저하게 되었고, 수정이 이루어지기 전에 (인간) 평가가 수행되어야 하므로 긴 지연이 발생했습니다.
돌파구는 우리가 적당한 예측 가능성을 가진 최적의 균형점을 달성하는 무언가가 필요하다는 것을 깨달았을 때 왔습니다. 일관된 결과를 보장할 만큼 구조화되어 있지만, AI 에이전트를 가치 있게 만드는 지능을 활용할 만큼 유연한 것 말입니다. 그 통찰력은 우리 커뮤니티가 신뢰성과 적응성의 균형을 맞추는 AI 에이전트 워크플로우를 정의하기 위한 표준화된 마크다운 형식인 Agent SOPs를 개발하도록 이끌었습니다.
우리 커뮤니티는 모든 팀이 직면하고 있던 실제 문제를 해결했기 때문에 이 개념을 빠르게 채택했습니다. 팀들은 프롬프트 엔지니어링 전문 지식 없이도 몇 분 만에 초기 자동화를 생성할 수 있다는 것을 발견했고, 즉시 유용하고 이해하기 쉬우며 쉽게 공유할 수 있는 워크플로우를 만들었습니다. 구조화된 접근 방식은 프롬프트 개발의 시행착오 과정을 극적으로 줄이면서 AI 자동화를 가치 있게 만드는 지능을 보존했습니다. 팀들은 기존 기능을 깨뜨리지 않을 것이라는 더 높은 확신을 가지고 SOP의 특정 동작을 반복할 수 있었고, 개선을 더 빠르고 예측 가능하게 만들었습니다.
오늘날 Amazon 팀들은 코드 리뷰와 문서 생성부터 장애 대응과 시스템 모니터링까지 다양한 사용 사례에서 수천 개의 SOPs를 사용합니다. 일관된 형식은 팀 간에 성공적인 접근 방식을 쉽게 공유하면서 다른 컨텍스트와 요구 사항에 맞게 적응시킬 수 있게 했습니다. 프롬프트 엔지니어링 문제에 대한 간단한 해결책으로 시작된 것이 전체 조직에 걸쳐 AI 전문 지식을 민주화하는 강력한 방법이 되었습니다.
이제 우리는 이 접근 방식이 더 넓은 AI 개발 커뮤니티에 도움이 될 수 있다고 믿기 때문에 Agent SOPs를 오픈 소스로 제공합니다. 개념과 실용적인 예제를 모두 공유함으로써, 우리는 업계 전반에 걸쳐 신뢰할 수 있는 AI 워크플로우의 채택을 가속화하기를 희망합니다.
Agent SOPs란 무엇인가?
Agent SOPs는 AI 에이전트로부터 반복 가능하고 이해할 수 있는 동작을 가능하게 하는 주요 기능을 가진 표준화된 마크다운 형식을 사용합니다:
- RFC 2119제약 조건이 있는 구조화된 단계 – 각 워크플로우 단계는 MUST, SHOULD, MAY와 같은 RFC 2119 키워드를 사용하여 경직된 스크립팅 없이 에이전트 동작에 대한 정확한 제어를 제공하며, 에이전트의 추론 능력을 보존하면서 신뢰할 수 있는 실행을 보장합니다.
- 매개변수화된 입력– 특정 값을 하드코딩하는 대신, SOPs는 다른 프로젝트, 팀 또는 요구 사항에 맞게 동작을 사용자 정의하는 매개변수를 받습니다. 이는 일회성 프롬프트를 일관성을 유지하면서 광범위하게 적용할 수 있는 유연한 템플릿으로 변환합니다.
- AI 지원을 통한 쉬운 작성– 팀들은 몇 분 만에 새로운 SOPs를 만들 수 있습니다. 코딩 에이전트는 SOP 형식 사양을 읽고 자연어 설명을 기반으로 새로운 워크플로우를 생성할 수 있어, 프롬프트 엔지니어링 전문 지식에 관계없이 누구나 생성 과정에 접근할 수 있게 합니다.
- 진행 상황 추적 및 재개 가능성– Agent SOPs는 에이전트가 작업하면서 진행 상황을 문서화하도록 지시할 수 있어, 무슨 일이 일어나고 있는지 쉽게 이해하고 문제가 발생하면 재개할 수 있게 합니다. 이러한 투명성은 프롬프트 디버깅과 AI 자동화에 대한 개발자 신뢰 구축에 중요했습니다.
형식은 간단하지만 매우 다재다능하여 자연어 지시사항이 허용되는 모든 곳에서 작동합니다. Strands와 같은 에이전트 프레임워크는 SOPs를 시스템 프롬프트로 임베드할 수 있고, Kiro와 Cursor와 같은 개발 도구는 구조화된 워크플로우에 사용할 수 있으며, Claude와 GPT-4와 같은 AI 모델은 직접 실행할 수 있습니다. 다른 모델들이 지시사항을 정확히 따르는 능력에서 차이가 날 수 있지만, 표준화된 형식은 워크플로우 자동화를 위한 일관된 기반을 제공합니다.
연습: 코드베이스 요약 SOP 실행하기
코드베이스 요약 SOP를 실행하여 Agent SOPs가 실제로 어떻게 작동하는지 살펴보겠습니다. 이 예제에서는 Kiro CLI를 사용하지만, Model Context Protocol (MCP) 서버를 지원하는 모든 AI 에이전트에서 이 연습을 시도할 수 있습니다.
먼저 strands-agents-sops Python 패키지를 설치합니다:
pip install strands-agents-sops
다음으로, strands-agents-sops MCP 서버를 포함하도록 MCP 서버 구성을 업데이트합니다:
{
"mcpServers": {
"strands-agents-sops": {
"command": "strands-agents-sops",
"args": []
}
}
}
이 MCP 서버는 SOPs를 AI 어시스턴트가 호출할 수 있는 MCP 프롬프트로 사용할 수 있게 합니다. Kiro CLI에서 /prompts 명령을 통해 사전 패키지된 Agent SOPs가 이제 사용 가능한지 확인할 수 있습니다:
다음으로, 코드베이스 요약 SOP를 호출합니다:
Kiro CLI는 SOP를 읽고 필수 및 선택적 매개변수를 요청합니다:
참고: 위의 프롬프트 내용은 한국어로 번역되었으며, 실제 사용 시에는 다소 다르게 표시될 수 있습니다.
우리는 자연어로 요청된 매개변수를 제공합니다. 이 예제에서는 strands-agents-sop 파이썬 소스 코드에서 이 SOP를 실행하겠습니다:
그러면 에이전트는 디렉토리 구조 설정부터 시작하여 SOP의 구조화된 단계를 따릅니다. SOP 제약 조건이 진행하기 전에 에이전트가 경로가 존재하는지 검증해야 한다고 명시(MUST)하기 때문에, 에이전트가 코드베이스 경로가 존재하는지 검증하는 것을 볼 수 있습니다:
이 SOP를 사용하여 단일 프롬프트를 호출함으로써, 에이전트는 추가적인 인간 개입 없이 포괄적인 코드베이스 문서를 생성할 수 있었습니다. SOP의 제약 조건은 일관된 구조와 완성도를 보장하는 동시에 에이전트의 지능이 코드베이스 특성에 맞게 내용을 조정했습니다.
SOP 체이닝: 완전한 개발 워크플로우 구축
SOP 체이닝은 집중된 SOPs를 지능적인 시퀀스로 연결하여 에이전트가 복잡한 다단계 워크플로우를 실행할 수 있게 합니다. 초기 SOP 저장소에는 기존 코드베이스 이해부터 새로운 기능 구현까지 SOPs가 함께 작동하는 것을 보여주는 완전한 개발 워크플로우 체인이 포함되어 있습니다:
- codebase-summary는 코드베이스를 분석하고 인간과 AI 에이전트 모두가 시스템 아키텍처, 컴포넌트, 워크플로우를 이해하는 데 도움이 되는 포괄적인 문서를 생성합니다. 이 SOP는 일반적으로 시작점 역할을 하며, 후속 자동화를 위한 컨텍스트를 제공합니다.
- pdd는 “프롬프트 주도 개발” 방법론(Kiro의 스펙 주도 개발의 전신)을 구현하여, 사용자를 대략적인 아이디어에서 체계적인 연구, 요구사항 명확화, 솔루션 설계, 구현 계획까지 안내합니다. 복잡한 기능 계획을 다루기 위해 코드베이스를 이해한 후에 사용하세요.
- code-task-generator는 고수준 요구사항을 실행 가능한 개발 작업으로 분해하여, SOPs가 컨텍스트를 이해하고 범위와 우선순위에 대한 정보에 입각한 결정을 내리는 것이 필요한 창의적이고 분석적인 작업을 어떻게 처리할 수 있는지 보여줍니다. 독립형 도구로 사용하거나 pdd SOP의 출력과 함께 사용하세요.
- code-assist는 구조화된 탐색, 계획, 코딩, 커밋 단계를 통해 에이전트를 안내하는 테스트 주도 개발 워크플로우를 구현합니다. 이 SOP는 자동화된 실행과 인간 감독의 균형을 맞추는 방법을 보여줍니다.
SOP 체이닝은 아티팩트 핸드오프를 통해 작동합니다: codebase-summary는 pdd가 기능을 설계할 때 참조하는 문서 파일을 생성하고, pdd는 code-task-generator가 작업 목록을 만드는 데 사용하는 기능 명세를 생성하며, code-assist는 이전에 설정된 아키텍처와 요구사항을 완전히 인식하면서 해당 작업을 구현합니다. 각 SOP는 발견한 내용을 다음 단계를 위한 간소화된 입력이 되는 집중된 출력으로 압축합니다.
이러한 체이닝 접근 방식은 단일 에이전트가 처리할 수 있는 것을 훨씬 뛰어넘는 워크플로우를 가능하게 합니다. 전체 개발 사이클로 하나의 에이전트를 압도하여 집중력을 잃고 예상 동작에서 벗어나게 하는 대신, 복잡한 문제를 관리 가능한 조각으로 분해할 수 있습니다. Agent SOPs를 개발할 때, 이러한 모듈식 접근 방식을 통해 각 컴포넌트를 독립적으로 구축하고 테스트한 다음 정교한 워크플로우로 연결할 수 있습니다. 순차적 구조는 중복 작업(반복적인 코드베이스 분석이나 정보 수집 없음)을 제거하면서 에이전트를 가치 있게 만드는 지능적 적응을 유지하여, 궁극적으로 모놀리식 접근 방식으로는 어려울 규모의 자동화를 가능하게 합니다.
Agent SOP 통합
Agent SOPs는 특정 에이전틱 제품에 묶여 있지 않으며 많은 환경에서 작동합니다:
Strands Agents
Agent SOPs는 Strands Agents의 시스템 프롬프트로 사용할 수 있습니다. 단순히 PyPI 패키지를 설치한 다음 SOP를 에이전트의 시스템 프롬프트로 가져오면 됩니다. 다음은 code-assist CLI 에이전트의 예제입니다:
from strands import Agent
from strands_tools import editor, shell
from strands_agents_sops import code_assist
agent = Agent(
system_prompt=code_assist,
tools=[editor, shell]
)
agent("Start code-assist sop")
while(True):
agent(input("\nInput: "))
이 Python 스크립트를 실행한 후, 다음과 같은 출력을 볼 수 있습니다:
앞서의 codebase-summary 예제를 기반으로, 코드베이스 문서를 자동으로 최신 상태로 유지하는 Strands Agents를 만들 수 있습니다:
from strands import Agent
from strands_tools import editor, shell, git
from strands_agents_sops import codebase_summary
doc_agent = Agent(
system_prompt=codebase_summary,
tools=[editor, shell, git]
)
# 최근 커밋을 기반으로 문서를 새로 고치기 위해 업데이트 모드에서 실행
doc_agent("Run codebase-summary with update_mode: true")
이를 통해 수동 개입 없이 지속적인 문서 유지 관리가 가능하며, 새로운 변경사항이 만들어질 때 코드베이스 요약을 자동으로 업데이트합니다.
Claude Skills
Agent SOPs는 Claude의 Skills 시스템과 완전히 호환되어, 대화와 프로젝트 전반에 걸쳐 재사용할 수 있는 전문화된 워크플로우를 Claude에게 가르칠 수 있습니다.
각 Agent SOP는 Anthropic의 Skills 형식으로 자동 변환될 수 있습니다:
이렇게 하면 개별 스킬 디렉토리가 생성됩니다:
그런 다음 Anthropic의 문서를 따라 이러한 SOPs를 스킬로 사용할 수 있습니다.
추가 제품 통합
Agent SOPs는 다양한 AI 개발 환경에서 작동합니다. 다른 LLM들이 지시사항 따르기 능력에서 차이가 날 수 있지만, 표준화된 형식은 플랫폼 전반에 걸쳐 일관된 결과를 제공합니다. 다음은 팀들이 Agent SOPs를 사용하는 추가적인 방법들입니다:
Kiro IDE 스티어링(Steering) 파일 및 훅(Hooks)– SOPs는 특정 개발 작업에 대한 구조화된 가이드를 제공하기 위해 Kiro IDE의 워크플로우 시스템에 통합될 수 있습니다.
Claude Code와 Cursor의 사용자 정의 명령– SOPs는 일반적인 개발 워크플로우를 위한 특정 SOPs를 호출하는 훌륭한 사용자 정의 명령을 만듭니다.
Python 모듈– 프로그래밍 방식 접근은 사용자 정의 애플리케이션과 더 큰 자동화 시스템에 통합을 가능하게 합니다.
Agent SOPs 작성하기
Agent SOPs의 가장 강력한 측면 중 하나는 대화형 작성을 통해 얼마나 쉽게 만들 수 있는가입니다. 우리는 AI 모델이 자연스러운 워크플로우 설명을 포착하고 표준화된 형식으로 변환하도록 조종하는 Agent SOP 형식 규칙을 제공합니다. 설명을 위해 회의 노트 처리를 위한 간단한 SOP 작성을 연습해보겠습니다. 사용하는 AI 애플리케이션에 따라 Agent SOP 형식을 스티어링 파일이나 규칙으로 설치할 수 있습니다. 하지만 이 연습의 목적상, Kiro CLI가 Agent SOP 규칙을 직접 읽도록 하겠습니다:
이제 Kiro CLI가 Agent SOP 형식을 이해했으므로, AI 어시스턴트에게 자연어로 원하는 것을 설명하기만 하면 됩니다:
SOP 형식 사양에 접근할 수 있는 AI 어시스턴트는 몇 초 만에 첫 번째 초안 Agent SOP를 생성합니다. 적절한 매개변수를 생성하고, 워크플로우를 논리적 단계로 구조화하며, SOP를 신뢰할 수 있고 반복 가능하게 만들기 위해 RFC 2119 제약 조건을 추가합니다.
자연어로 작성되었기 때문에 Agent SOP는 읽기 쉽습니다. 별도의 세션에서 실행해보고 돌아와서 에이전트와 채팅하여 SOP 개선을 반복할 수 있습니다. 예를 들어, 특정 폴더 구조를 사용하고, 회의 노트 폴더와 후속 조치 폴더 모두에 액션 아이템을 기록하고, 내린 결정을 프로젝트별 결정 로그에 추가하도록 이 SOP를 개선할 수 있습니다.
이와 동일한 접근 방식이 자동화하려는 모든 워크플로우에 적용됩니다. 프로세스를 자연어로 설명하기만 하면, AI 지원이 SOP 생성의 기술적 세부사항을 처리합니다. 참고로, SOP가 특정 MCP 도구를 사용하기를 원한다면, SOP를 작성하는 동안 해당 MCP 서버가 로드되어 있어야 합니다.
결론
Agent SOPs는 신뢰성과 유연성 사이의 딜레마를 해결하여 AI 자동화 도입의 걸림돌을 제거합니다. 구조화된 가이드와 지능적 추론을 결합함으로써, 팀이 전문 지식을 빠르게 포착하고 다양한 AI 시스템과 컨텍스트에 걸쳐 일관되게 적용할 수 있게 합니다. Amazon에서 Agent SOPs를 성공적으로 만든 적당한 예측 가능성을 가진 최적의 균형점이 이제 고객들이 더 신뢰할 수 있고 유능한 AI 시스템을 구축할 수 있도록 모든 곳에서 사용 가능합니다.
시작할 준비가 되셨나요?
- YouTube 라이브 데모시청
- 상세한 문서와 예제를 확인하기 위해GitHub 저장소 방문
- 패키지 설치: pip install strands-agents-sops
- MCP 서버 시작: strands-agents-sops
- 다음 프로젝트에서 codebase-summary SOP 사용해보기
- 정교한 개발 워크플로우를 위한 SOP 체이닝
Agent SOPs가 여러분들의 자동화 과제 해결에 도움이 되고, 커뮤니티에서 혁신적인 워크플로우들이 탄생하기를 기대합니다.