Buckets:
| <meta charset="utf-8" /><meta name="hf:doc:metadata" content="{"title":"사고-행동-관찰 주기를 통해 AI 에이전트 이해하기","local":"understanding-ai-agents-through-the-thought-action-observation-cycle","sections":[{"title":"핵심 구성 요소","local":"the-core-components","sections":[],"depth":2},{"title":"사고(Thought)-행동(Action)-관찰(Observation) 주기","local":"the-thought-action-observation-cycle","sections":[],"depth":2},{"title":"날씨 에이전트 알프레드(Alfred)","local":"alfred-the-weather-agent","sections":[{"title":"사고(Thought)","local":"thought","sections":[],"depth":3},{"title":"행동(Action)","local":"action","sections":[],"depth":3},{"title":"관찰(Observation)","local":"observation","sections":[],"depth":3},{"title":"업데이트된 사고(thought)과정","local":"updated-thought","sections":[],"depth":3},{"title":"최종 행동(Action)","local":"final-action","sections":[],"depth":3}],"depth":2}],"depth":1}"> | |
| <link href="/docs/agents-course/pr_545/ko/_app/immutable/assets/0.e3b0c442.css" rel="modulepreload"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/ko/_app/immutable/entry/start.6bd6007b.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/ko/_app/immutable/chunks/scheduler.f6b352c8.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/ko/_app/immutable/chunks/singletons.d509bc8a.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/ko/_app/immutable/chunks/index.26cf6c5a.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/ko/_app/immutable/chunks/paths.ee75497a.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/ko/_app/immutable/entry/app.5df77bcf.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/ko/_app/immutable/chunks/index.7f38e934.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/ko/_app/immutable/nodes/0.e7b8cf8b.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/ko/_app/immutable/chunks/each.e59479a4.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/ko/_app/immutable/nodes/7.ef216f24.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/ko/_app/immutable/chunks/CodeBlock.3ee8293b.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/ko/_app/immutable/chunks/getInferenceSnippets.1ddaa658.js"><!-- HEAD_svelte-u9bgzb_START --><meta name="hf:doc:metadata" content="{"title":"사고-행동-관찰 주기를 통해 AI 에이전트 이해하기","local":"understanding-ai-agents-through-the-thought-action-observation-cycle","sections":[{"title":"핵심 구성 요소","local":"the-core-components","sections":[],"depth":2},{"title":"사고(Thought)-행동(Action)-관찰(Observation) 주기","local":"the-thought-action-observation-cycle","sections":[],"depth":2},{"title":"날씨 에이전트 알프레드(Alfred)","local":"alfred-the-weather-agent","sections":[{"title":"사고(Thought)","local":"thought","sections":[],"depth":3},{"title":"행동(Action)","local":"action","sections":[],"depth":3},{"title":"관찰(Observation)","local":"observation","sections":[],"depth":3},{"title":"업데이트된 사고(thought)과정","local":"updated-thought","sections":[],"depth":3},{"title":"최종 행동(Action)","local":"final-action","sections":[],"depth":3}],"depth":2}],"depth":1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <h1 class="relative group"><a id="understanding-ai-agents-through-the-thought-action-observation-cycle" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#understanding-ai-agents-through-the-thought-action-observation-cycle"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>사고-행동-관찰 주기를 통해 AI 에이전트 이해하기</span></h1> <img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/whiteboard-check-3.jpg" alt="Unit 1 planning"> <p data-svelte-h="svelte-1xaf06h">이전 섹션에서 우리는 다음 내용을 배웠습니다:</p> <ul data-svelte-h="svelte-mtxc0b"><li><strong>도구가 시스템 프롬프트에서 에이전트에 어떻게 제공되는지</strong>.</li> <li><strong>AI 에이전트가 ‘추론’하고, 계획을 세우며, 환경과 상호작용하는 시스템이라는 것</strong>.</li></ul> <p data-svelte-h="svelte-c62pen">이번 섹션에서는 <strong>AI 에이전트의 전체 워크플로우, 사고(Thought)-행동(Action)-관찰(Observation) 주기</strong>에 대해 살펴보겠습니다.</p> <p data-svelte-h="svelte-i495b8">그리고 각 단계에 대해 더 깊이 탐구해 보겠습니다.</p> <h2 class="relative group"><a id="the-core-components" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#the-core-components"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>핵심 구성 요소</span></h2> <p data-svelte-h="svelte-18dl1so">에이전트는 <strong>사고(Thought) → 행동(Act) → 관찰(Observe)</strong>의 연속적인 주기로 작동합니다.</p> <p data-svelte-h="svelte-1l4qbzz">이 과정의 각 단계를 자세히 살펴보겠습니다:</p> <ol data-svelte-h="svelte-j1dngr"><li><strong>사고(Thought)</strong>: 에이전트의 LLM부분이 다음에 수행할 단계를 결정합니다.</li> <li><strong>행동(Action):</strong> 에이전트가 도구를 호출하고 필요한 인자를 전달하여 특정 행동을 수행합니다.</li> <li><strong>관찰(Observation):</strong> 모델이 도구의 응답을 검토합니다.</li></ol> <h2 class="relative group"><a id="the-thought-action-observation-cycle" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#the-thought-action-observation-cycle"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>사고(Thought)-행동(Action)-관찰(Observation) 주기</span></h2> <p data-svelte-h="svelte-nf3kue">이 세 가지 구성 요소는 반복루프 내에서 함께 작동합니다. 프로그래밍에 비유하자면, 에이전트는 <strong>while 루프</strong>를 사용합니다. 즉, 에이전트의 목표가 달성될 때까지 루프가 계속 실행됩니다.</p> <p data-svelte-h="svelte-1rtroba">이를 시각적으로 표현하면 다음과 같습니다:</p> <img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/AgentCycle.gif" alt="Think, Act, Observe cycle"> <p data-svelte-h="svelte-jt6gaf">많은 에이전트 프레임워크에서는 <strong>규칙과 가이드라인이 시스템 프롬프트에 직접 내장</strong>되어 있어, 각 주기가 정의된 논리에 따라 실행됩니다.</p> <p data-svelte-h="svelte-hifi88">이를 단순화한 시스템 프롬프트 예시는 다음과 같습니다:</p> <img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/system_prompt_cycle.png" alt="Think, Act, Observe cycle"> <p data-svelte-h="svelte-s80dx0">이 시스템 메시지에서 우리는 다음 요소들을 정의했습니다:</p> <ul data-svelte-h="svelte-e4c3vp"><li><em>에이전트의 행동 방식</em></li> <li><em>에이전트가 접근할 수 있는 도구들</em> (이전 섹션에서 설명한 내용)</li> <li><em>사고(Thought)-행동(Action)-관찰(Observation) 주기</em> 를 LLM 지침에 내장</li></ul> <p data-svelte-h="svelte-jimqqx">이제, 각 단계를 더 깊이 탐구하기 전에, 간단한 예제를 통해 이 과정이 어떻게 작동하는지 살펴보겠습니다.</p> <h2 class="relative group"><a id="alfred-the-weather-agent" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#alfred-the-weather-agent"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>날씨 에이전트 알프레드(Alfred)</span></h2> <p data-svelte-h="svelte-16iu1sb">우리는 날씨 정보를 제공하는 에이전트 Alfred를 만들었습니다.</p> <p data-svelte-h="svelte-1gz3mhc">사용자가 Alfred에게 다음과 같이 질문합니다: “오늘 뉴욕 날씨 어때?”</p> <img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/alfred-agent.jpg" alt="Alfred Agent"> <p data-svelte-h="svelte-18hgnk9">Alfred의 역할은 날씨 API 도구를 사용하여 이 질문에 답하는 것입니다.</p> <p data-svelte-h="svelte-1ql8lev">다음과 같이 사고-행동-관찰 주기가 진행됩니다:</p> <h3 class="relative group"><a id="thought" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#thought"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>사고(Thought)</span></h3> <p data-svelte-h="svelte-1oz332a"><strong>내부 사고 과정(Internal Reasoning):</strong></p> <p data-svelte-h="svelte-1p9omz">질문을 받은 후, Alfred의 내부에서 이루어지는 대화는 다음과 같을 수 있습니다 :</p> <p data-svelte-h="svelte-26ycdd"><em>“사용자는 뉴욕의 현재 날씨 정보를 원하고 있어. 내가 사용할 수 있는 날씨 API 도구가 있으니, 먼저 이 도구를 호출해서 최신 정보를 가져와야 해.”</em></p> <p data-svelte-h="svelte-5a2zlp">이 단계에서 에이전트는 문제를 단계별로 나눕니다 : 첫 번째 단계는 필요한 데이터를 수집하는 것입니다.</p> <img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/alfred-agent-1.jpg" alt="Alfred Agent"> <h3 class="relative group"><a id="action" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#action"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>행동(Action)</span></h3> <p data-svelte-h="svelte-1kh4iz0"><strong>도구 사용:</strong></p> <p data-svelte-h="svelte-ievo5j">Alfred는 추론과 <code>get_weather</code> 도구를 알고 있다는 사실에 기반해, 날씨 API 도구를 호출하기 위한 JSON 형식의 명령을 준비합니다. | |
| 예를 들어, 첫 번째 액션은 다음과 같을 수 있습니다:</p> <p data-svelte-h="svelte-14j86bo">사고(Thought): 뉴욕의 현재 날씨를 확인해야 해.</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START --> <span class="hljs-punctuation">{</span> | |
| <span class="hljs-attr">"action"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"get_weather"</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"action_input"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> | |
| <span class="hljs-attr">"location"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"New York"</span> | |
| <span class="hljs-punctuation">}</span> | |
| <span class="hljs-punctuation">}</span><!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-u780jw">Here, the action clearly specifies which tool to call (e.g., get_weather) and what parameter to pass (the “location”: “New York”).</p> <p data-svelte-h="svelte-1fz8y3k">여기서, action은 어떤 도구를 호출할지 지정하고 (get_weather) 필요한 입력값(예: “location”: “New York”)을 설정합니다.</p> <img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/alfred-agent-2.jpg" alt="Alfred Agent"> <h3 class="relative group"><a id="observation" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#observation"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>관찰(Observation)</span></h3> <p data-svelte-h="svelte-9a9pit"><strong>환경으로부터의 피드백:</strong></p> <p data-svelte-h="svelte-125sbdc">도구 호출 후, Alfred는 관찰 결과를 받습니다. 예를 들어, API에서 반환된 날씨 데이터가 다음과 같을 수 있습니다:</p> <p data-svelte-h="svelte-1xtk08x"><em>“뉴욕의 현재 날씨: 부분적으로 흐림, 15°C, 습도 60%”</em></p> <img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/alfred-agent-3.jpg" alt="Alfred Agent"> <p data-svelte-h="svelte-pofch8">이러한 관찰 결과는 추가 컨텍스트로 프롬프트에 더해집니다. 즉, 관찰은 현실 세계에서의 피드백 역할을 하며, 에이전트가 실행한 행동이 성공했는지 확인하고 필요한 정보를 제공합니다.</p> <h3 class="relative group"><a id="updated-thought" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#updated-thought"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>업데이트된 사고(thought)과정</span></h3> <p data-svelte-h="svelte-1m1dcqm"><strong>성찰(Reflecting):</strong></p> <p data-svelte-h="svelte-hgyaya">관찰 데이터를 얻은 후, Alfred는 내부 사고 과정을 업데이트합니다:</p> <p data-svelte-h="svelte-1wzms3d"><em>“이제 뉴욕의 날씨 데이터를 확보했으니, 사용자에게 답변을 정리할 수 있어.”</em></p> <img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/alfred-agent-4.jpg" alt="Alfred Agent"> <h3 class="relative group"><a id="final-action" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#final-action"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>최종 행동(Action)</span></h3> <p data-svelte-h="svelte-1oir7gs">Alfred는 이제 사용자에게 전달할 최종 응답을 우리가 지정해준 형식에 맞게 생성합니다:</p> <p data-svelte-h="svelte-1l1y9xa">사고: 이제 날씨 데이터를 확보했어. 뉴욕의 현재 날씨는 부분적으로 흐리고, 기온은 15°C, 습도는 60%야.</p> <p data-svelte-h="svelte-1l7d0cm">최종 답변 : 뉴욕의 현재 날씨는 부분적으로 흐리고, 기온은 15°C, 습도는 60%입니다.</p> <p data-svelte-h="svelte-1nedm7y">이 최종 행동을 통해 답변을 사용자에게 전달하고, 루프를 종료합니다.</p> <img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/alfred-agent-5.jpg" alt="Alfred Agent"> <p data-svelte-h="svelte-fouqa8">이 예제를 통해 배운 것:</p> <ul data-svelte-h="svelte-6fa6nx"><li><strong>에이전트는 목표가 달성될 때까지 반복적으로 루프를 실행한다.:</strong></li></ul> <p data-svelte-h="svelte-bmqji9"><strong>Alfred의 과정은 순환적입니다.</strong>. 사고(thought)에서 시작해, 도구를 호출함으로 행동(Action)을 취하고, 마지막으로 결과를 관찰(Observation)합니다. 만약 관찰 단계에서 오류가 발생하거나 데이터가 불완전하면, Alfred는 루프를 다시 실행하여 문제를 해결합니다.</p> <ul data-svelte-h="svelte-ntgcob"><li><strong>도구(Tool) 통합:</strong></li></ul> <p data-svelte-h="svelte-13s3yjy">에이전트는 <strong>정적인 지식을 넘어, 외부 도구(날씨 API같은)를 호출하여 실시간 데이터</strong>를 가져올 수 있습니다. 이것은 AI 에이전트의 핵심 기능 중 하나입니다.</p> <ul data-svelte-h="svelte-mlghg3"><li><strong>동적 적응(Dynamic Adaptation):</strong></li></ul> <p data-svelte-h="svelte-pl1h9c">에이전트는 각 주기를 거치면서, 새로운 정보(관찰)를 반영하여 사고 과정을 조정합니다. 이를 통해 최종 답변이 더 정확하고 신뢰할 수 있도록 만듭니다.</p> <p data-svelte-h="svelte-s4sn5j">이 예제는 우리가 다음 섹션에서 다룰 <strong>ReAct(강화학습-Reinforcement Learning + 행동-Action) 주기</strong>의 핵심 개념을 보여줍니다: | |
| <strong>사고(Thought), 행동(Action), 관찰(Observation)의 상호작용을 통해 AI 에이전트가 복잡한 문제를 점진적으로 해결</strong>할 수 있도록 합니다.</p> <p data-svelte-h="svelte-7g5kwj">이러한 원칙을 이해하고 적용함으로써, 에이전트를 설계할 때 단순히 작업을 추론하는 것뿐만 아니라 <strong>외부 도구를 효과적으로 활용하여 작업을 완료</strong>할 수 있도록 만들 수 있습니다. 또한, 환경에서 받은 피드백을 바탕으로 지속적으로 출력을 개선해나갑니다.</p> <hr> <p data-svelte-h="svelte-cvq2jw">이제 Thought, Action, Observation을 개별 단계별로 더 깊이 탐구해 보겠습니다.</p> <a class="!text-gray-400 !no-underline text-sm flex items-center not-prose mt-4" href="https://github.com/huggingface/agents-course/blob/main/units/ko/unit1/agent-steps-and-structure.mdx" target="_blank"><span data-svelte-h="svelte-1kd6by1"><</span> <span data-svelte-h="svelte-x0xyl0">></span> <span data-svelte-h="svelte-1dajgef"><span class="underline ml-1.5">Update</span> on GitHub</span></a> <p></p> | |
| <script> | |
| { | |
| __sveltekit_wsuob5 = { | |
| assets: "/docs/agents-course/pr_545/ko", | |
| base: "/docs/agents-course/pr_545/ko", | |
| env: {} | |
| }; | |
| const element = document.currentScript.parentElement; | |
| const data = [null,null]; | |
| Promise.all([ | |
| import("/docs/agents-course/pr_545/ko/_app/immutable/entry/start.6bd6007b.js"), | |
| import("/docs/agents-course/pr_545/ko/_app/immutable/entry/app.5df77bcf.js") | |
| ]).then(([kit, app]) => { | |
| kit.start(app, element, { | |
| node_ids: [0, 7], | |
| data, | |
| form: null, | |
| error: null | |
| }); | |
| }); | |
| } | |
| </script> | |
Xet Storage Details
- Size:
- 26.9 kB
- Xet hash:
- 79f801d0dbee36369284f6ff9878e83c950b933457cc32c804f2220ca9a426cb
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.