Buckets:
| <meta charset="utf-8" /><meta name="hf:doc:metadata" content="{"title":"사고: AI 에이전트의 내부 추론과 Re-Act 방식","local":"thought-internal-reasoning-and-the-re-act-approach","sections":[{"title":"Re-Act 방식","local":"the-re-act-approach","sections":[],"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/16.501bdb6e.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/ko/_app/immutable/chunks/Tip.ae532637.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 에이전트의 내부 추론과 Re-Act 방식","local":"thought-internal-reasoning-and-the-re-act-approach","sections":[{"title":"Re-Act 방식","local":"the-re-act-approach","sections":[],"depth":2}],"depth":1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <h1 class="relative group"><a id="thought-internal-reasoning-and-the-re-act-approach" 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-internal-reasoning-and-the-re-act-approach"><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 에이전트의 내부 추론과 Re-Act 방식</span></h1> <div class="course-tip bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400">이 섹션에서는 AI 에이전트의 내면—즉, 추론하고 계획하는 능력을 자세히 살펴봅니다. 에이전트가 내부 대화를 통해 정보를 분석하고, 복잡한 문제를 다루기 쉬운 단계로 나누며, 다음 행동을 결정하는 과정을 탐구합니다. 또한 'Re-Act' 방식이라는 프롬프팅 기법을 소개합니다. 이는 모델이 행동하기 전에 '단계적으로 생각'하도록 유도하는 방법입니다.</div> <p data-svelte-h="svelte-11hqt39">사고는 <strong>에이전트가 작업을 해결하기 위해 내부적으로 추론하고 계획하는 과정</strong>을 의미합니다.</p> <p data-svelte-h="svelte-1xowaao">이는 에이전트의 대규모 언어 모델(LLM)이 가진 <strong>프롬프트에 제시된 정보를 분석하는 능력</strong>을 활용하는 것입니다.</p> <p data-svelte-h="svelte-z02p5j">마치 에이전트의 머릿속 대화라고 생각하면 됩니다. 주어진 과제를 검토하고 어떻게 접근할지 전략을 세우는 과정이죠.</p> <p data-svelte-h="svelte-t2v2he">에이전트의 사고 과정은 현재 상황을 관찰하고 다음에 취해야 할 행동을 결정하는 역할을 합니다.</p> <p data-svelte-h="svelte-4m4lwb">이를 통해 에이전트는 <strong>복잡한 문제를 더 작고 다루기 쉬운 단계로 분해</strong>하고, 이전 경험을 되돌아보며, 새로운 정보를 바탕으로 계획을 지속적으로 조정합니다.</p> <p data-svelte-h="svelte-blgeoj">다음은 일반적인 사고 유형의 예시입니다:</p> <table data-svelte-h="svelte-1pb3uky"><thead><tr><th>사고 유형</th> <th>예시</th></tr></thead> <tbody><tr><td>계획 수립</td> <td>“이 작업을 세 단계로 나눠야겠다: 1) 데이터 수집, 2) 트렌드 분석, 3) 보고서 작성”</td></tr> <tr><td>분석</td> <td>“오류 메시지를 보니, 문제는 데이터베이스 연결 설정과 관련이 있는 것 같다”</td></tr> <tr><td>의사 결정</td> <td>“사용자의 예산 제약을 고려하면, 중간 가격대 옵션을 추천하는 것이 좋겠다”</td></tr> <tr><td>문제 해결</td> <td>“이 코드를 최적화하려면, 먼저 어디가 병목인지 프로파일링해봐야 한다”</td></tr> <tr><td>기억 활용</td> <td>“사용자가 앞서 파이썬을 선호한다고 했으니, 파이썬 예제를 제공해야겠다”</td></tr> <tr><td>자기 성찰</td> <td>“이전 접근법이 효과적이지 않았으니, 다른 방식을 시도해봐야겠다”</td></tr> <tr><td>목표 설정</td> <td>“이 작업을 완료하려면, 먼저 성공 기준을 명확히 해야 한다”</td></tr> <tr><td>우선순위 결정</td> <td>“새 기능을 추가하기 전에 보안 취약점부터 해결하는 것이 옳다”</td></tr></tbody></table> <blockquote data-svelte-h="svelte-r3rmop"><p><strong>참고:</strong> 함수 호출에 최적화된 LLM의 경우, 사고 과정은 선택적으로 사용할 수 있습니다. | |
| <em>함수 호출에 익숙하지 않다면, 행동(Actions) 섹션에서 더 자세한 내용을 확인할 수 있습니다.</em></p></blockquote> <h2 class="relative group"><a id="the-re-act-approach" 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-re-act-approach"><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>Re-Act 방식</span></h2> <p data-svelte-h="svelte-1qcyct2">핵심 방법론 중 하나는 “추론”(Reasoning)과 “행동”(Acting)을 결합한 <strong>ReAct 방식</strong>입니다.</p> <p data-svelte-h="svelte-uv737i">ReAct는 LLM이 다음 토큰을 생성하기 전에 “단계별로 생각해보자”라는 문구를 추가하는 간단한 프롬프팅 기법입니다.</p> <p data-svelte-h="svelte-ifheqh">모델에게 “단계별로 생각”하도록 지시하면, 바로 최종 해답을 내놓기보다 <strong>계획을 세우는 방향</strong>으로 토큰 생성이 유도됩니다. 이는 모델이 문제를 <em>하위 과제</em>로 <strong>분해</strong>하도록 장려하기 때문입니다.</p> <p data-svelte-h="svelte-1p0pjwl">이렇게 하면 모델이 각 단계를 더 상세히 고려할 수 있어, 일반적으로 최종 해답을 바로 생성하려 할 때보다 오류가 적게 발생합니다.</p> <figure data-svelte-h="svelte-1xz0do8"><img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/ReAct.png" alt="ReAct"> <figcaption>(d)는 "단계별로 생각해보자"라는 프롬프트를 사용한 Re-Act 방식의 예시입니다</figcaption></figure> <div class="course-tip bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400">최근 추론 전략에 대한 관심이 크게 늘고 있습니다. Deepseek R1이나 OpenAI의 o1과 같은 모델들이 바로 이런 흐름을 반영합니다. 이 모델들은 "대답하기 전에 먼저 생각하도록" 특별히 미세 조정되었습니다. | |
| <p data-svelte-h="svelte-qaw75v">이런 모델들은 특정 <em>사고</em> 영역(<code><think></code>와 <code></think></code> 특수 토큰 사이에 포함)을 항상 생성하도록 훈련되었습니다. 이는 ReAct처럼 단순한 프롬프팅 기법이 아니라, 우리가 원하는 결과물의 수천 가지 예시를 분석한 후 이런 사고 영역을 생성하는 방법을 학습하는 훈련 방식입니다.</p></div> <hr> <p data-svelte-h="svelte-auazfh">이제 사고 과정에 대해 더 잘 이해했으니, 프로세스의 두 번째 부분인 행동(Act)에 대해 더 자세히 살펴보겠습니다.</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/thoughts.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, 16], | |
| data, | |
| form: null, | |
| error: null | |
| }); | |
| }); | |
| } | |
| </script> | |
Xet Storage Details
- Size:
- 11.3 kB
- Xet hash:
- ff0640c325d5b6f661a98e42d6f14d295d3bb50ac82615a4503812985de54a0b
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.