gemini-cli의 memory 옵션은 RAM이나 cache를 지칭하는게 아니다.
gemini-cli의 GEMINI.md는 gemini에게 룰을 설정하는 파일이다.
.gemini/GEMINI.md해당 파일은 gemini-cli가 동작하는데 필요한 rule을 설정하는파일이다.
파일이 정상 적용되면 "Using 1 GEMINI.md file"이 프롬프트 창 위에 존재한다.
session_memory.json 파일 하나 만들어본 것
{ "meta": { "description": " 대충 이 저장공간에 대한 설명(안써도됨)", "last_ai_process_timestamp": null, "last_user_interaction_timestamp": null }, "context": { "project_snapshot": { "name": "MyAwesomeproject", "version": "4.2.1", "current_feature_module": null, "main_focus": [], "project_state_flags": [] }, "architectural_focus_areas": [], "decision_impact_log": [], "priority_tags": [] }, "current_session_log": { "session_id": null, "start_timestamp": null, "analysis_summary": null, "findings": [], "user_feedback_on_suggestions": {} }, "history": [ { "session_id": "initial_setup", "timestamp": "2023-10-26T09:00:00Z", "summary": "Project initialization. AI analysis module configured. Basic structure established.", "high_impact_focus_areas_added": [] } ] }세션을 유지하기 위한 용도정도로 생각하면 된다. 기존 /chat resume 기능을 사용해도 되지만 좀더 상세하게 context를 기억하도록 하기 위한 설정이다.
context window의 크기가 정해져있기 때문에 너무 긴 context를 유지하면 결과물의 consistency가 망가지게 된다.
general purpose LLM의 한계인데, 이를 극복하기 위해서는 결국 fine-tuning이나 RAG 구성이 필요하다.
session context는 유지한채 대화를 reset해서 context window의 크기를 조절하는게 결과물의 consistency를 유지하는데 도움이 된다.
중요도에 따라서 어떤 context를 유지할 것이고, 작업 요청에 사용할 context를 customize하는게 LLM의 오류를 줄이는데 핵심적이다. 이를 위해 많은 서비스가 있는데 mcp하나를 소개한다.
https://smithery.ai/server/@mem0ai/mem0-memory-mcp