동적 에이전트는 사용자 ID와 기타 중요한 매개변수와 같은 런타임 컨텍스트를 사용하여 실시간으로 설정을 조정합니다.
이는 사용하는 모델을 변경하고, 지침을 업데이트하며, 다른 도구를 선택하고, 필요에 따라 메모리를 구성할 수 있음을 의미합니다.
이 컨텍스트를 사용함으로써 에이전트는 각 사용자의 요구사항에 더 잘 응답할 수 있습니다. 또한 모든 API를 호출하여 더 많은 정보를 수집할 수 있어, 에이전트의 기능을 향상시키는 데 도움이 됩니다.
구성 예제
다음은 사용자의 구독 등급과 언어 선호도에 따라 동작을 조정하는 동적 고객지원 에이전트의 예제입니다:
const supportAgent = new Agent({
name: "Dynamic Support Agent",
instructions: async ({ runtimeContext }) => {
const userTier = runtimeContext.get("user-tier");
const language = runtimeContext.get("language");
return `당신은 저희 SaaS 플랫폼의 고객 지원 에이전트입니다.
현재 사용자는 ${userTier} 등급이며 ${language} 언어를 선호합니다.
${userTier} 등급 사용자를 위해:
${userTier === "free" ? "- 기본 지원과 문서 링크를 제공하세요" : ""}
${userTier === "pro" ? "- 상세한 기술 지원과 모범 사례를 제공하세요" : ""}
${userTier === "enterprise" ? "- 맞춤형 솔루션과 함께 우선 지원을 제공하세요" : ""}
항상 ${language} 언어로 응답하세요.`;
},
model: ({ runtimeContext }) => {
const userTier = runtimeContext.get("user-tier");
return userTier === "enterprise"
? openai("gpt-4")
: openai("gpt-3.5-turbo");
},
tools: ({ runtimeContext }) => {
const userTier = runtimeContext.get("user-tier");
const baseTools = [knowledgeBase, ticketSystem];
if (userTier === "pro" || userTier === "enterprise") {
baseTools.push(advancedAnalytics);
}
if (userTier === "enterprise") {
baseTools.push(customIntegration);
}
return baseTools;
},
memory: ({ runtimeContext }) => {
const userTier = runtimeContext.get("user-tier");
if (userTier === "enterprise") {
return new Memory({
storage: new LibSQLStore({ url: "file:enterprise.db" }),
options: {
semanticRecall: { topK: 15, messageRange: 8 },
workingMemory: { enabled: true },
},
});
} else if (userTier === "pro") {
return new Memory({
storage: new LibSQLStore({ url: "file:pro.db" }),
options: {
semanticRecall: { topK: 8, messageRange: 4 },
workingMemory: { enabled: true },
},
});
}
// 무료 등급을 위한 기본 메모리
return new Memory({
storage: new LibSQLStore({ url: "file:free.db" }),
options: {
semanticRecall: { topK: 3, messageRange: 2 },
workingMemory: { enabled: false },
},
});
},
});
이 예제에서 에이전트는:
-
사용자의 구독 등급(무료, 프로, 또는 엔터프라이즈)에 따라 지침을 조정합니다
-
엔터프라이즈 사용자에게는 더 강력한 모델(GPT-4)을 사용합니다
-
사용자의 등급에 따라 다른 도구 세트를 제공합니다
-
사용자의 등급에 따라 다른 기능을 가진 메모리를 구성합니다
-
사용자가 선호하는 언어로 응답합니다
이는 런타임 컨텍스트를 활용하여 단일 에이전트가 다양한 유형의 사용자와 시나리오를 처리할 수 있음을 보여주며, 각 사용 사례별로 별도의 에이전트를 생성하는 것보다 더 유연하고 유지보수가 쉽습니다.
API 라우트, 미들웨어 설정 및 런타임 컨텍스트 처리를 포함한 완전한 구현 예제는 동적 에이전트 예제를 참조하세요.
2025년 7월 26일 기준 번역
by dongne.lab@gmail.com