import{s as wt,o as kt,n as qt}from"../chunks/scheduler.f6b352c8.js";import{S as Et,i as It,g as a,s as i,r as I,A as yt,h as r,f as n,c as s,j as At,u as y,x as m,k as Mt,y as Ot,a as l,v as O,d as j,t as z,w as S,m as Rt,n as bt}from"../chunks/index.7f38e934.js";import{T as Ht}from"../chunks/Tip.ae532637.js";import{H as Pt,E as jt}from"../chunks/getInferenceSnippets.b4820bde.js";function zt(q){let p;return{c(){p=Rt("이 섹션에서는 AI 에이전트의 내면—즉, 추론하고 계획하는 능력을 자세히 살펴봅니다. 에이전트가 내부 대화를 통해 정보를 분석하고, 복잡한 문제를 다루기 쉬운 단계로 나누며, 다음 행동을 결정하는 과정을 탐구합니다. 또한 'Re-Act' 방식이라는 프롬프팅 기법을 소개합니다. 이는 모델이 행동하기 전에 '단계적으로 생각'하도록 유도하는 방법입니다.")},l(f){p=bt(f,"이 섹션에서는 AI 에이전트의 내면—즉, 추론하고 계획하는 능력을 자세히 살펴봅니다. 에이전트가 내부 대화를 통해 정보를 분석하고, 복잡한 문제를 다루기 쉬운 단계로 나누며, 다음 행동을 결정하는 과정을 탐구합니다. 또한 'Re-Act' 방식이라는 프롬프팅 기법을 소개합니다. 이는 모델이 행동하기 전에 '단계적으로 생각'하도록 유도하는 방법입니다.")},m(f,o){l(f,p,o)},d(f){f&&n(p)}}}function St(q){let p,f,o="이런 모델들은 특정 <em>사고</em> 영역(<code>&lt;think&gt;</code>와 <code>&lt;/think&gt;</code> 특수 토큰 사이에 포함)을 항상 생성하도록 훈련되었습니다. 이는 ReAct처럼 단순한 프롬프팅 기법이 아니라, 우리가 원하는 결과물의 수천 가지 예시를 분석한 후 이런 사고 영역을 생성하는 방법을 학습하는 훈련 방식입니다.";return{c(){p=Rt(`최근 추론 전략에 대한 관심이 크게 늘고 있습니다. Deepseek R1이나 OpenAI의 o1과 같은 모델들이 바로 이런 흐름을 반영합니다. 이 모델들은 "대답하기 전에 먼저 생각하도록" 특별히 미세 조정되었습니다.
`),f=a("p"),f.innerHTML=o},l(u){p=bt(u,`최근 추론 전략에 대한 관심이 크게 늘고 있습니다. Deepseek R1이나 OpenAI의 o1과 같은 모델들이 바로 이런 흐름을 반영합니다. 이 모델들은 "대답하기 전에 먼저 생각하도록" 특별히 미세 조정되었습니다.
`),f=r(u,"P",{"data-svelte-h":!0}),m(f)!=="svelte-qaw75v"&&(f.innerHTML=o)},m(u,$){l(u,p,$),l(u,f,$)},p:qt,d(u){u&&(n(p),n(f))}}}function Ut(q){let p,f,o,u,$,U,d,B,v,rt="사고는 <strong>에이전트가 작업을 해결하기 위해 내부적으로 추론하고 계획하는 과정</strong>을 의미합니다.",D,_,ft="이는 에이전트의 대규모 언어 모델(LLM)이 가진 <strong>프롬프트에 제시된 정보를 분석하는 능력</strong>을 활용하는 것입니다.",G,x,mt="마치 에이전트의 머릿속 대화라고 생각하면 됩니다. 주어진 과제를 검토하고 어떻게 접근할지 전략을 세우는 과정이죠.",F,h,ut="에이전트의 사고 과정은 현재 상황을 관찰하고 다음에 취해야 할 행동을 결정하는 역할을 합니다.",K,C,ot="이를 통해 에이전트는 <strong>복잡한 문제를 더 작고 다루기 쉬운 단계로 분해</strong>하고, 이전 경험을 되돌아보며, 새로운 정보를 바탕으로 계획을 지속적으로 조정합니다.",Q,g,$t="다음은 일반적인 사고 유형의 예시입니다:",J,L,dt="<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>",N,T,ct=`<p><strong>참고:</strong> 함수 호출에 최적화된 LLM의 경우, 사고 과정은 선택적으로 사용할 수 있습니다.
<em>함수 호출에 익숙하지 않다면, 행동(Actions) 섹션에서 더 자세한 내용을 확인할 수 있습니다.</em></p>`,V,A,W,M,vt="핵심 방법론 중 하나는 “추론”(Reasoning)과 “행동”(Acting)을 결합한 <strong>ReAct 방식</strong>입니다.",X,H,_t="ReAct는 LLM이 다음 토큰을 생성하기 전에 “단계별로 생각해보자”라는 문구를 추가하는 간단한 프롬프팅 기법입니다.",Y,P,xt="모델에게 “단계별로 생각”하도록 지시하면, 바로 최종 해답을 내놓기보다 <strong>계획을 세우는 방향</strong>으로 토큰 생성이 유도됩니다. 이는 모델이 문제를 <em>하위 과제</em>로 <strong>분해</strong>하도록 장려하기 때문입니다.",Z,R,ht="이렇게 하면 모델이 각 단계를 더 상세히 고려할 수 있어, 일반적으로 최종 해답을 바로 생성하려 할 때보다 오류가 적게 발생합니다.",tt,b,Ct='<img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/ReAct.png" alt="ReAct"/> <figcaption>(d)는 &quot;단계별로 생각해보자&quot;라는 프롬프트를 사용한 Re-Act 방식의 예시입니다</figcaption>',et,c,nt,lt,it,w,gt="이제 사고 과정에 대해 더 잘 이해했으니, 프로세스의 두 번째 부분인 행동(Act)에 대해 더 자세히 살펴보겠습니다.",st,k,pt,E,at;return $=new Pt({props:{title:"사고: AI 에이전트의 내부 추론과 Re-Act 방식",local:"thought-internal-reasoning-and-the-re-act-approach",headingTag:"h1"}}),d=new Ht({props:{$$slots:{default:[zt]},$$scope:{ctx:q}}}),A=new Pt({props:{title:"Re-Act 방식",local:"the-re-act-approach",headingTag:"h2"}}),c=new Ht({props:{$$slots:{default:[St]},$$scope:{ctx:q}}}),k=new jt({props:{source:"https://github.com/huggingface/agents-course/blob/main/units/ko/unit1/thoughts.mdx"}}),{c(){p=a("meta"),f=i(),o=a("p"),u=i(),I($.$$.fragment),U=i(),I(d.$$.fragment),B=i(),v=a("p"),v.innerHTML=rt,D=i(),_=a("p"),_.innerHTML=ft,G=i(),x=a("p"),x.textContent=mt,F=i(),h=a("p"),h.textContent=ut,K=i(),C=a("p"),C.innerHTML=ot,Q=i(),g=a("p"),g.textContent=$t,J=i(),L=a("table"),L.innerHTML=dt,N=i(),T=a("blockquote"),T.innerHTML=ct,V=i(),I(A.$$.fragment),W=i(),M=a("p"),M.innerHTML=vt,X=i(),H=a("p"),H.textContent=_t,Y=i(),P=a("p"),P.innerHTML=xt,Z=i(),R=a("p"),R.textContent=ht,tt=i(),b=a("figure"),b.innerHTML=Ct,et=i(),I(c.$$.fragment),nt=i(),lt=a("hr"),it=i(),w=a("p"),w.textContent=gt,st=i(),I(k.$$.fragment),pt=i(),E=a("p"),this.h()},l(t){const e=yt("svelte-u9bgzb",document.head);p=r(e,"META",{name:!0,content:!0}),e.forEach(n),f=s(t),o=r(t,"P",{}),At(o).forEach(n),u=s(t),y($.$$.fragment,t),U=s(t),y(d.$$.fragment,t),B=s(t),v=r(t,"P",{"data-svelte-h":!0}),m(v)!=="svelte-11hqt39"&&(v.innerHTML=rt),D=s(t),_=r(t,"P",{"data-svelte-h":!0}),m(_)!=="svelte-1xowaao"&&(_.innerHTML=ft),G=s(t),x=r(t,"P",{"data-svelte-h":!0}),m(x)!=="svelte-z02p5j"&&(x.textContent=mt),F=s(t),h=r(t,"P",{"data-svelte-h":!0}),m(h)!=="svelte-t2v2he"&&(h.textContent=ut),K=s(t),C=r(t,"P",{"data-svelte-h":!0}),m(C)!=="svelte-4m4lwb"&&(C.innerHTML=ot),Q=s(t),g=r(t,"P",{"data-svelte-h":!0}),m(g)!=="svelte-blgeoj"&&(g.textContent=$t),J=s(t),L=r(t,"TABLE",{"data-svelte-h":!0}),m(L)!=="svelte-1pb3uky"&&(L.innerHTML=dt),N=s(t),T=r(t,"BLOCKQUOTE",{"data-svelte-h":!0}),m(T)!=="svelte-r3rmop"&&(T.innerHTML=ct),V=s(t),y(A.$$.fragment,t),W=s(t),M=r(t,"P",{"data-svelte-h":!0}),m(M)!=="svelte-1qcyct2"&&(M.innerHTML=vt),X=s(t),H=r(t,"P",{"data-svelte-h":!0}),m(H)!=="svelte-uv737i"&&(H.textContent=_t),Y=s(t),P=r(t,"P",{"data-svelte-h":!0}),m(P)!=="svelte-ifheqh"&&(P.innerHTML=xt),Z=s(t),R=r(t,"P",{"data-svelte-h":!0}),m(R)!=="svelte-1p0pjwl"&&(R.textContent=ht),tt=s(t),b=r(t,"FIGURE",{"data-svelte-h":!0}),m(b)!=="svelte-1xz0do8"&&(b.innerHTML=Ct),et=s(t),y(c.$$.fragment,t),nt=s(t),lt=r(t,"HR",{}),it=s(t),w=r(t,"P",{"data-svelte-h":!0}),m(w)!=="svelte-auazfh"&&(w.textContent=gt),st=s(t),y(k.$$.fragment,t),pt=s(t),E=r(t,"P",{}),At(E).forEach(n),this.h()},h(){Mt(p,"name","hf:doc:metadata"),Mt(p,"content",Bt)},m(t,e){Ot(document.head,p),l(t,f,e),l(t,o,e),l(t,u,e),O($,t,e),l(t,U,e),O(d,t,e),l(t,B,e),l(t,v,e),l(t,D,e),l(t,_,e),l(t,G,e),l(t,x,e),l(t,F,e),l(t,h,e),l(t,K,e),l(t,C,e),l(t,Q,e),l(t,g,e),l(t,J,e),l(t,L,e),l(t,N,e),l(t,T,e),l(t,V,e),O(A,t,e),l(t,W,e),l(t,M,e),l(t,X,e),l(t,H,e),l(t,Y,e),l(t,P,e),l(t,Z,e),l(t,R,e),l(t,tt,e),l(t,b,e),l(t,et,e),O(c,t,e),l(t,nt,e),l(t,lt,e),l(t,it,e),l(t,w,e),l(t,st,e),O(k,t,e),l(t,pt,e),l(t,E,e),at=!0},p(t,[e]){const Lt={};e&2&&(Lt.$$scope={dirty:e,ctx:t}),d.$set(Lt);const Tt={};e&2&&(Tt.$$scope={dirty:e,ctx:t}),c.$set(Tt)},i(t){at||(j($.$$.fragment,t),j(d.$$.fragment,t),j(A.$$.fragment,t),j(c.$$.fragment,t),j(k.$$.fragment,t),at=!0)},o(t){z($.$$.fragment,t),z(d.$$.fragment,t),z(A.$$.fragment,t),z(c.$$.fragment,t),z(k.$$.fragment,t),at=!1},d(t){t&&(n(f),n(o),n(u),n(U),n(B),n(v),n(D),n(_),n(G),n(x),n(F),n(h),n(K),n(C),n(Q),n(g),n(J),n(L),n(N),n(T),n(V),n(W),n(M),n(X),n(H),n(Y),n(P),n(Z),n(R),n(tt),n(b),n(et),n(nt),n(lt),n(it),n(w),n(st),n(pt),n(E)),n(p),S($,t),S(d,t),S(A,t),S(c,t),S(k,t)}}}const Bt='{"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}';function Dt(q){return kt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Jt extends Et{constructor(p){super(),It(this,p,Dt,Ut,wt,{})}}export{Jt as component};
