AI 에이전트가 포럼 관련 질문에만 답변하도록 제한하는 방법은?

포럼에 Discourse AI를 설정하고 있으며, Gemini 2.5 Flash, LiteLLM 및 Google Vertex AI를 통해 작동하는 AI 봇/에이전트를 구축했습니다.

봇은 정상적으로 작동하지만, 그 범위(스콥)에 문제가 있습니다.

예를 들어, 제 포럼은 비즈니스에 특화된 커뮤니티입니다. 봇에게 다음과 같이 질문하면:

“우버(Uber)의 소유주는 누구인가요?”

질문이 제 포럼과 전혀 관련이 없음에도 불구하고, LLM의 일반 지식을 활용하여 답변합니다.

이로 인해 두 가지 문제가 발생합니다:

  1. 봇이 범용 Gemini/ChatGPT 인터페이스가 아니라 포럼 특화 지식 어시스턴트로 기능하기를 원합니다.
  2. 사용자가 임의의 질문을 하여 제 LLM 크레딧을 소모하는 것을 원치 않습니다.

이상적으로는 다음과 같은 흐름이 되기를 바랍니다:

사용자가 질문

이 포럼과 관련이 있는가?

아니오 → 정중하게 거절



포럼 지식 검색

포럼 콘텐츠 기반 답변 생성

에이전트를 확인해 보셨나요? 포럼에 맞춰 조정되어 있으므로 포럼 리서처나 포럼 헬퍼 에이전트가 더 적합할 수 있습니다. 아니면 이미 해당 에이전트를 사용 중이신가요?

포럼 헬퍼에도 이런 문제가 있습니다:

음… 그렇다면 포럼의 범위를 벗어난 질의에는 응답하지 않도록 사용자 정의 시스템 프롬프트를 적용한 에이전트를 직접 만들어 보시는 것도 좋을 것 같습니다.

오늘 ask.discourse.com에서 이걸 시도하면 이렇게 보입니다.

질문해 주셔서 감사합니다! Discourse 지원 채널에서 질문하셨으니, Discourse의 AI 기능이 언어 모델을 어떻게 활용하는지에 대한 맥락에서 답변드리겠습니다. 하지만 LLM이 어떻게 작동하는지에 대한 일반적인 기술적 설명을 원하셨다면 말씀해 주세요. 다른 곳에서 확인하실 수 있도록 안내해 드리겠습니다.

여기서 그 ‘catch’(함정/미묘한 차이)가 어떻게 잡혔는지 아시는 분이 계실 것 같습니다.

테스트에서 사용하신 “Creative” 에이전트는 시스템 프롬프트 없이 요청을 그대로 기본 LLM에 전달하는 “no system prompt” 에이전트입니다.

자신의 포럼에서 어떻게, 그리고 언제 답변할지를 명시하는 시스템 프롬프트를 갖춘 새로운 에이전트를 만들어야 합니다.

@Ed_S 님이 언급했듯이, ask.discourse.com에서도 그렇게 했습니다.

프롬프트는 에이전트의 행동에 영향을 미칠 수 있지만, 항상 신뢰할 수 있는 것은 아닙니다. 저는 ask.discourse.com의 에이전트를 속여 주제와 무관한 몇 가지 질문에 답하게 만들 수 있었습니다.

(이것은 아마도 100% 강제 시행이 이익보다 불편함을 더 많이 초래하는 상황 중 하나일 것입니다.)

네, 대화가 깊어졌을 때 체인(chaining)을 사용하면 대화가 계속 이어지도록 만들 수 있습니다. 저희는 모델을 직접 호스팅하므로 토큰당 비용을 지불하지 않기 때문에 이 부분은 걱정하지 않아도 됩니다. 또한 Ask의 모든 대화를 매일 분석하여 악의적인 사용자를 차단할 수 있습니다. 포럼 운영(모더레이션) 프로세스는 이전과 동일합니다.

시스템 프롬프트가 제공하는 것보다 더 많은 제어가 필요하시다면 다음 방법들을 시도해 보실 수 있습니다:

워크플로(Workflows)

새로운 워크플로 플러그인을 사용하면 모든 메시지에 대해 2단계 처리를 수행할 수 있습니다. 먼저 에이전트가 해당 메시지에 반응해야 하는지를 평가하고, 그 후 조건부 응답을 생성하는 방식입니다.

파인튜닝된 모델

제어를 위한 가장 확실한 방법은 원하는 동작으로 실제로 학습된 모델을 배포하는 것입니다.

Discourse AI를 사용하면 각 에이전트에 사용할 LLM을 자유롭게 선택할 수 있어 이 작업이 매우 쉽습니다.