feat: add memory system and troubleshoot agent
Memory System: - Add category-based memory storage (company, tech, role, location, server) - Silent background saving via saveMemorySilently() - Category-based overwrite (same category replaces old memory) - Server-related pattern detection (AWS, GCP, k8s, traffic info) - Memory management tool (list, delete) Troubleshoot Agent: - Session-based troubleshooting conversation (KV, 1h TTL) - 20-year DevOps/SRE expert persona - Support for server/infra, domain/DNS, code/deploy, network, database issues - Internal tools: search_solution (Brave), lookup_docs (Context7) - Auto-trigger on error-related keywords - Session completion and cancellation support Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -372,6 +372,11 @@ export async function generateAIResponse(
|
||||
.join('\n\n')
|
||||
: null;
|
||||
|
||||
// 사용자 기억 조회 및 포맷팅
|
||||
const { getMemories, formatMemoriesForPrompt } = await import('./services/memory-service');
|
||||
const memories = await getMemories(env.DB, userId);
|
||||
const memoriesSection = formatMemoriesForPrompt(memories);
|
||||
|
||||
const systemPrompt = `당신은 친절하고 유능한 AI 어시스턴트입니다.
|
||||
${integratedProfile ? `
|
||||
## 사용자 프로필 (${context.summaries.length}개 버전 통합)
|
||||
@@ -380,16 +385,25 @@ ${integratedProfile}
|
||||
위 프로필들을 종합하여 사용자의 관심사, 맥락, 변화를 이해하고 개인화된 응답을 제공하세요.
|
||||
최신 버전(높은 번호)의 정보를 우선시하되, 이전 버전의 맥락도 고려하세요.
|
||||
` : ''}
|
||||
${memoriesSection ? `
|
||||
${memoriesSection}
|
||||
|
||||
위 배경 정보는 대화 맥락 이해용입니다. "기억", "저장된 정보" 등 직접 언급하지 마세요.
|
||||
` : ''}
|
||||
- 날씨, 시간, 계산 요청은 제공된 도구를 사용하세요.
|
||||
- 최신 정보, 실시간 데이터, 뉴스, 특정 사실 확인이 필요한 질문은 반드시 search_web 도구로 검색하세요. 자체 지식으로 답변하지 마세요.
|
||||
- 예치금, 입금, 충전, 잔액, 계좌 관련 요청은 반드시 manage_deposit 도구를 사용하세요. 금액 제한이나 규칙을 직접 판단하지 마세요.
|
||||
- 서버, VPS, 클라우드, 호스팅 관련 요청:
|
||||
• 첫 요청: manage_server(action="start_consultation")을 호출하여 상담 시작
|
||||
• 서버 상담 중인 메시지는 자동으로 전문가 AI에게 전달됨 (추가 처리 불필요)
|
||||
- 기술 문제, 에러, 오류, 장애 관련 요청:
|
||||
• "에러가 나요", "안돼요", "문제가 있어요", "느려요" 등의 문제 해결 요청 시
|
||||
• manage_troubleshoot(action="start")를 호출하여 트러블슈팅 시작
|
||||
• 트러블슈팅 진행 중인 메시지는 자동으로 전문가 AI에게 전달됨
|
||||
- 도메인 추천, 도메인 제안, 도메인 아이디어 요청은 반드시 suggest_domains 도구를 사용하세요. 직접 도메인을 나열하지 마세요.
|
||||
- 도메인/TLD 가격 조회(".com 가격", ".io 가격" 등)는 manage_domain 도구의 action=price를 사용하세요.
|
||||
- 기타 도메인 관련 요청(조회, 등록, 네임서버, WHOIS 등)은 manage_domain 도구를 사용하세요.
|
||||
- manage_deposit, manage_domain, manage_server, suggest_domains 도구 결과는 그대로 전달하세요. 추가 질문이나 "도움이 필요하시면~" 같은 멘트를 붙이지 마세요.`;
|
||||
- manage_deposit, manage_domain, manage_server, manage_troubleshoot, suggest_domains 도구 결과는 그대로 전달하세요.`;
|
||||
|
||||
const recentContext = context.recentMessages.slice(-10).map((m) => ({
|
||||
role: m.role === 'user' ? 'user' as const : 'assistant' as const,
|
||||
|
||||
Reference in New Issue
Block a user