notes
Telegram + Ollama CS 봇 운영 가이드
Telegram과 Ollama를 연결한 CS 봇의 모델·웹훅·운영 구성 가이드.
0) 이 구성의 핵심 의도
이 가이드는 “텔레그램 AI 자동화”를 하나로 뭉뚱그리지 않고 2개 경로로 분리합니다.
- Cursor MCP 경로 (알림/명령형 전송)
- 목적: 개발 중 이벤트, 점검 결과, 수동 알림을 텔레그램으로 보내기
- 주체: Cursor Agent
- 특징: 도구 호출 중심, 짧고 확실한 액션
- Telegram Bot + Ollama 경로 (대화형 응답)
- 목적: 사용자가 텔레그램에서 질문하면 AI 답변 받기
- 주체:
bot.py+ Ollama - 특징: 챗봇 경험 중심
이렇게 분리하면 장애가 났을 때
- “MCP 전송 문제인지”
- “대화형 봇/Ollama 문제인지” 빠르게 구분됩니다.
1) 사전 준비의 의미 (왜 이걸 먼저 해야 하나)
A. BotFather에서 봇/토큰 확인
- 토큰은 텔레그램 API의 인증 키입니다.
- 토큰이 맞아야 API 호출이 200으로 응답합니다.
- 봇은 이미 있다면 재사용하는 게 맞고, 새로 만들 필요는 없습니다.
B. chat.id 확보 (getUpdates)
chat.id는 “어느 채팅방으로 보낼지”의 대상 식별자입니다.chat not found (400)의 대부분은 여기서 발생합니다.- 첫 메시지를 봇에게 한 번 보내야
getUpdates에 그 채팅이 올라옵니다.
2) Cursor MCP 설정 파트 상세
파일 1: ~/.cursor/mcp.json
역할: Cursor가 어떤 MCP 서버를 어떤 명령으로 띄울지 정의
핵심 필드:
command: "npx": npm 패키지를 즉시 실행args: ["-y", "@harnyk/telegram-notifier-mcp"]: 텔레그램 전송 서버 지정envFile: 민감정보 파일 경로 참조
파일 2: ~/.cursor/telegram-mcp.env
역할: 비밀값 저장소
필수 값:
TELEGRAM_BOT_TOKENTELEGRAM_CHAT_ID
실무 포인트:
- 이 파일은 코드 저장소가 아니라 홈 디렉토리(
~/.cursor)에 둬야 안전 - 수정 후에는 MCP 서버 재로딩 필요 (토글 Off/On 또는 Cursor 재시작)
3) Ollama + 대화형 봇 설정 파트 상세
3-1. Ollama 점검
which ollama: 설치 경로 확인ollama --version: 실행 가능 여부 확인ollama list: 다운로드된 모델 목록 확인
3-2. ollama serve
- Ollama는 서버 프로세스가 떠 있어야
bot.py가 호출 가능 - 설치만 되어 있고 서버가 안 떠 있으면 연결 실패
3-3. ollama pull gemma3:4b
- 실제로 답변할 모델을 로컬에 내려받는 단계
- pull이 끝나야
OLLAMA_MODEL=gemma3:4b지정 시 정상 응답
3-4. 봇 실행
run.sh실행 후 로그에서 아래 3개가 중요:폴링 시작getMe 200getUpdates 200
이 3개가 뜨면:
- 봇 토큰 인증 OK
- 텔레그램 연결 OK
- 폴링 루프 OK
4) “친근한 CS형 톤” 설계 의도
문구를 바꾼 이유는 간단합니다:
- 사용자에게 내부 구현(로컬 모델, 엔진 호출 방식)을 노출하지 않고
- “문의 접수 → 처리중 → 결과 반환” 흐름을 자연스럽게 보이게 하기 위함
적용 원칙:
- 기술 디버그 문구 제거
- 안내/공감 문장 먼저
- 명령어 도움말은 짧고 행동 중심
즉, 엔지니어용 로그는 서버 로그로 보고, 사용자 채팅창은 CS 경험 중심으로 유지합니다.
5) 실제 운영 시나리오 (하루 운영 기준)
시나리오 A: 운영 알림 보내기
- Cursor Agent에서 알림 요청
- MCP 승인
- 텔레그램 도착 확인
- 실패 시
MCP Logs확인
시나리오 B: 사용자 질의 응답
- 사용자 텔레그램에서 일반 문장 또는
/ask - 봇이 처리중 안내 메시지 응답
- Ollama 결과 반환
- 지연/실패 시
run.sh로그 확인
6) 장애 대응을 더 실무적으로 보면
chat not found (400)
가장 먼저 볼 것:
TELEGRAM_CHAT_ID숫자 오타/붙여넣기 실수- 봇과 그 채팅의 관계 형성 여부(첫 메시지)
해결 루틴:
- 봇 채팅에 메시지 1회
getUpdates재조회chat.id재복사- env 반영 후 MCP 재시작
getUpdates가 result: []
의미:
- 아직 봇이 받은 업데이트가 없거나, 다른 대상에 메시지 보낸 상태
해결:
- 정확한 봇 username으로 들어가서 메시지
- 다시 조회
Ollama 실패
빠른 체크:
ollama serve떠 있는가- 모델이 목록에 있는가 (
ollama list) - 모델명 환경변수 오타 없는가
7) 운영 안정성 체크리스트
- 토큰은 절대 채팅/문서/스크린샷에 원문 노출 금지
- 유출 의심 시 BotFather에서 즉시 재발급
- 문구 수정 시
run.sh재시작 - env 수정 시 MCP 재로딩
- “알림 기능”과 “대화 기능” 로그를 분리 관찰
8) 다음 고도화 추천 (원하면 바로 진행 가능)
/ask답변 템플릿 고정- 인사 → 핵심 답변 → 추가 안내 → 마무리
- 관리자 전용 명령 분리
- 특정 chat/user만
/sysinfo허용 - 장애 자동 알림
- Ollama 실패/타임아웃 시 별도 텔레그램 경보
- 프롬프트 정책 파일화
- CS 톤 가이드 문구를 코드 밖 설정으로 분리
원하시면 다음 메시지에서 이 문서를 기준으로 “초급 운영자용 1페이지 SOP” 버전(진짜 따라하기용)으로 다시 압축해드릴게요.
Cursor MCP 연동부터 로컬 Ollama 기반 텔레그램 응답 봇까지, 실제로 진행한 과정을 한 번에 정리한 문서입니다.
실무에서 바로 따라 할 수 있게 **순차 절차 + 운영 방법론 + 사용법 + 장애 대응*\* 중심으로 작성했습니다.
- --
📌 구성 요약
| 구분 | 역할 |
|------|------|
| `Cursor MCP` | Cursor Agent가 텔레그램으로 알림/메시지 전송 |
| `Telegram Bot` | 사용자와 직접 대화하는 인터페이스 |
| `Ollama` | 로컬 LLM 추론 엔진 |
| `bot.py` | 텔레그램 메시지를 받아 Ollama 응답으로 반환 |
1) 아키텍처 이해 (방법론)
이번 구성은 목적이 다른 두 흐름을 분리해서 운영합니다.
- **운영 알림 흐름 (Cursor MCP)*\*
Cursor가 MCP 서버(`telegram-notifier`)를 통해 특정 채팅으로 알림을 보냅니다.
- **대화형 응답 흐름 (Telegram Bot + Ollama)*\*
사용자가 텔레그램에서 봇에게 질문하면, `bot.py`가 받아 Ollama에 질의하고 답을 돌려줍니다.
핵심 방법론은 다음과 같습니다.
- *채널 분리\*: “알림”과 “대화”를 분리하면 장애 원인 파악이 쉽습니다.
- *비밀 분리\*: 토큰/채팅 ID는 코드가 아니라 `env` 파일에 보관합니다.
- *재기동 단순화\*: 설정 변경 후에는 MCP 토글 재시작 또는 프로세스 재기동으로 반영합니다.
- *관측 가능성\*: Cursor는 `MCP Logs`, 봇은 `run.sh` 로그로 점검합니다.
- --
2) 사전 준비 체크리스트
A. 텔레그램 봇 준비
- `@BotFather`에서 봇 생성(이미 생성한 경우 재사용 가능)
- `/mybots`에서 해당 봇의 API 토큰 확인
- 봇과 1:1 채팅을 열고 메시지 1회 전송
- 아래 URL로 `chat.id` 확인
`https://api.telegram.org/bot<TOKEN>/getUpdates`
> `result[].message.chat.id` 값을 `TELEGRAM_CHAT_ID`로 사용합니다.
> 그룹/채널은 음수 ID인 경우가 많습니다.
B. Cursor MCP 준비
- `~/.cursor/mcp.json`
- `~/.cursor/telegram-mcp.env`
- --
3) Cursor MCP 설정 (알림 전송용)
`~/.cursor/mcp.json`
```json
{
"mcpServers": {
"telegram-notifier": {
"command": "npx",
"args": ["-y", "@harnyk/telegram-notifier-mcp"],
"envFile": "${userHome}/.cursor/telegram-mcp.env"
}
}
}
```
`~/.cursor/telegram-mcp.env`
```env
TELEGRAM_BOT_TOKEN=여기에_봇_토큰
TELEGRAM_CHAT_ID=여기에_chat_id
```
반영 순서:
- 파일 저장
- Cursor Settings에서 MCP 토글 Off → On
- 필요하면 Cursor 재실행
- Agent에서 “텔레그램으로 연결 테스트 보내줘”로 검증
- --
4) Ollama + 텔레그램 응답 봇 설정 (대화용)
아래는 실제 사용한 기준 절차입니다.
4-1. Ollama 상태 확인
```bash
which ollama
ollama --version
ollama list
```
4-2. 서버 실행 + 모델 다운로드
```bash
ollama serve
```
새 터미널에서:
```bash
ollama pull gemma3:4b
ollama list
```
4-3. 봇 실행
```bash
cd /Users/kms/workspace/ai-test/telegram-command-bot
export OLLAMA_MODEL=gemma3:4b
./run.sh
```
정상 로그 예시:
- `폴링 시작... model=gemma3:4b`
- Telegram `getMe` 200
- Telegram `getUpdates` 200
- --
5) 친근한 CS 톤 응답 정책 (현재 반영됨)
`bot.py`의 사용자 노출 문구는 다음 원칙으로 정리했습니다.
- 내부 기술 표현 최소화 (예: “로컬 Ollama에 넘김” 제거)
- 먼저 공감/안내 후 처리 진행 메시지 제공
- 명령어 도움말을 고객센터 톤으로 단순화
예시 톤:
- 시작: “안녕하세요 :) 문의 주셔서 감사합니다.”
- 처리중: “문의 감사합니다. 잠시만 기다려 주세요 :)”
- 상태확인: “네, 현재 정상적으로 연결되어 있습니다. ✅”
지원 명령어:
- `/help`
- `/ping`
- `/echo <글>`
- `/ask <질문>` (추가 alias)
- `/ollama <질문>` (기존 호환)
- `/sysinfo`
- --
6) 실제 사용법
사용자 입장 (텔레그램)
- 봇 채팅방 열기
- 일반 질문 입력 (예: “오늘 할 일 정리해줘”)
- 또는 `/ask 질문내용` 형태로 명시 입력
운영자 입장 (Cursor)
- Agent 채팅에서 알림 요청
- MCP 도구 승인 후 텔레그램 전송 확인
- 실패 시 `Output > MCP Logs` 확인
- --
7) 장애 대응 가이드
`chat not found (400)`
원인:
- `TELEGRAM_CHAT_ID` 오입력
- 봇과 해당 채팅의 관계 미형성(첫 메시지 미전송)
해결:
- 봇 채팅에 메시지 1회 전송
- `getUpdates`로 `chat.id` 재확인
- `telegram-mcp.env` 수정
- MCP 재시작 또는 Cursor 재실행
`result: []` (getUpdates 빈 배열)
원인:
- 잘못된 봇에 메시지를 보냈거나, 아직 업데이트 없음
해결:
- 정확한 봇 username 재확인
- 해당 봇 채팅에서 메시지 전송
- `getUpdates` 재조회
Ollama 연결 실패
원인:
- `ollama serve` 미실행
- 모델 미다운로드
- 모델명 오타
해결:
```bash
ollama serve
ollama list
```
모델 없으면:
```bash
ollama pull gemma3:4b
```
- --
8) 운영 팁
- 봇 문구 수정 후에는 `./run.sh` 프로세스 재시작
- MCP env 수정 후에는 MCP 토글 재시작 또는 Cursor 재실행
- 토큰은 문서/채팅/스크린샷에 노출 금지
- 토큰 유출 의심 시 BotFather에서 즉시 재발급
- --
9) 빠른 점검 명령어 모음
```bash
# Ollama
which ollama
ollama --version
ollama list
# 모델 준비
ollama pull gemma3:4b
# 봇 실행
cd /Users/kms/workspace/ai-test/telegram-command-bot
export OLLAMA_MODEL=gemma3:4b
./run.sh
```
필요하다면 다음 단계로, /ask 답변 스타일도
- *고객센터 템플릿(인사 → 핵심 답변 → 추가 안내 → 마무리)\* 형태로 맞춰 일관되게 출력되도록 프롬프트 규칙을 추가할 수 있습니다.
telegram-ollama-cs-bot-runbook.md 기준으로, 실무에서 바로 운영할 수 있도록 왜 이렇게 구성했는지 + 각 단계에서 무엇을 확인해야 하는지까지 풀어서 설명드릴게요.
0) 이 구성의 핵심 의도
이 가이드는 “텔레그램 AI 자동화”를 하나로 뭉뚱그리지 않고 2개 경로로 분리합니다.
- Cursor MCP 경로 (알림/명령형 전송)
- 목적: 개발 중 이벤트, 점검 결과, 수동 알림을 텔레그램으로 보내기
- 주체: Cursor Agent
- 특징: 도구 호출 중심, 짧고 확실한 액션
- Telegram Bot + Ollama 경로 (대화형 응답)
- 목적: 사용자가 텔레그램에서 질문하면 AI 답변 받기
- 주체:
bot.py+ Ollama - 특징: 챗봇 경험 중심
이렇게 분리하면 장애가 났을 때
- “MCP 전송 문제인지”
- “대화형 봇/Ollama 문제인지” 빠르게 구분됩니다.
1) 사전 준비의 의미 (왜 이걸 먼저 해야 하나)
A. BotFather에서 봇/토큰 확인
- 토큰은 텔레그램 API의 인증 키입니다.
- 토큰이 맞아야 API 호출이 200으로 응답합니다.
- 봇은 이미 있다면 재사용하는 편이 맞고, 새로 만들 필요는 없습니다.
B. chat.id 확보 (getUpdates)
chat.id는 “어느 채팅방으로 보낼지”에 대한 대상 식별자입니다.chat not found (400)의 대부분은 여기서 발생합니다.- 첫 메시지를 봇에게 한 번 보내야
getUpdates에 해당 채팅이 올라옵니다.
2) Cursor MCP 설정 파트 상세
파일 1: ~/.cursor/mcp.json
역할: Cursor가 어떤 MCP 서버를 어떤 명령으로 띄울지 정의
핵심 필드:
command: "npx": npm 패키지를 즉시 실행args: ["-y", "@harnyk/telegram-notifier-mcp"]: 텔레그램 전송 서버 지정envFile: 민감정보 파일 경로 참조
파일 2: ~/.cursor/telegram-mcp.env
역할: 비밀값 저장소
필수 값:
TELEGRAM_BOT_TOKENTELEGRAM_CHAT_ID
실무 포인트:
- 이 파일은 코드 저장소가 아니라 홈 디렉토리(
~/.cursor)에 두는 편이 안전합니다. - 수정 후에는 MCP 서버 재로딩이 필요합니다. (토글 Off/On 또는 Cursor 재시작)
3) Ollama + 대화형 봇 설정 파트 상세
3-1. Ollama 점검
which ollama: 설치 경로 확인ollama --version: 실행 가능 여부 확인ollama list: 다운로드된 모델 목록 확인
3-2. ollama serve
- Ollama는 서버 프로세스가 떠 있어야
bot.py가 호출할 수 있습니다. - 설치만 되어 있고 서버가 떠 있지 않으면 연결이 실패합니다.
3-3. ollama pull gemma3:4b
- 실제로 답변할 모델을 로컬에 내려받는 단계입니다.
- pull이 끝나야
OLLAMA_MODEL=gemma3:4b지정 시 정상 응답합니다.
3-4. 봇 실행
run.sh실행 후 로그에서 아래 3개가 중요합니다.폴링 시작getMe 200getUpdates 200
이 3개가 뜨면:
- 봇 토큰 인증 OK
- 텔레그램 연결 OK
- 폴링 루프 OK
4) “친근한 CS형 톤” 설계 의도
문구를 바꾼 이유는 간단합니다.
- 사용자에게 내부 구현(로컬 모델, 엔진 호출 방식)을 노출하지 않고
- “문의 접수 → 처리중 → 결과 반환” 흐름을 자연스럽게 보이게 하기 위함
적용 원칙:
- 기술 디버그 문구 제거
- 안내/공감 문장 먼저
- 명령어 도움말은 짧고 행동 중심
즉, 엔지니어용 로그는 서버 로그로 보고, 사용자 채팅창은 CS 경험 중심으로 유지합니다.
5) 실제 운영 시나리오 (하루 운영 기준)
시나리오 A: 운영 알림 보내기
- Cursor Agent에서 알림 요청
- MCP 승인
- 텔레그램 도착 확인
- 실패 시
MCP Logs확인
시나리오 B: 사용자 질의 응답
- 사용자 텔레그램에서 일반 문장 또는
/ask - 봇이 처리중 안내 메시지 응답
- Ollama 결과 반환
- 지연/실패 시
run.sh로그 확인
6) 장애 대응을 더 실무적으로 보면
chat not found (400)
가장 먼저 볼 것:
TELEGRAM_CHAT_ID숫자 오타, 붙여넣기 실수- 봇과 해당 채팅의 관계 형성 여부(첫 메시지)
해결 루틴:
- 봇 채팅에 메시지 1회
getUpdates재조회chat.id재복사- env 반영 후 MCP 재시작
getUpdates가 result: []
의미:
- 아직 봇이 받은 업데이트가 없거나, 다른 대상에 메시지를 보낸 상태
해결:
- 정확한 봇 username으로 들어가서 메시지 전송
- 다시 조회
Ollama 실패
빠른 체크:
ollama serve가 떠 있는가- 모델이 목록에 있는가 (
ollama list) - 모델명 환경변수 오타가 없는가
7) 운영 안정성 체크리스트
- 토큰은 절대 채팅, 문서, 스크린샷에 원문 노출 금지
- 유출 의심 시 BotFather에서 즉시 재발급
- 문구 수정 시
run.sh재시작 - env 수정 시 MCP 재로딩
- “알림 기능”과 “대화 기능” 로그를 분리해 관찰
8) 다음 고도화 추천 (원하면 바로 진행 가능)
/ask답변 템플릿 고정- 인사 → 핵심 답변 → 추가 안내 → 마무리
- 관리자 전용 명령 분리
- 특정 chat/user만
/sysinfo허용 - 장애 자동 알림
- Ollama 실패, 타임아웃 시 별도 텔레그램 경보
- 프롬프트 정책 파일화
- CS 톤 가이드 문구를 코드 밖 설정으로 분리
원하시면 다음 메시지에서 이 문서를 기준으로 “초급 운영자용 1페이지 SOP” 버전(진짜 따라하기용)으로 다시 압축해드릴게요.
telegram-ollama-cs-bot-runbook.md 기준으로, 실무에서 바로 운영할 수 있게 왜 이렇게 구성했는지 + 각 단계에서 뭘 확인해야 하는지까지 풀어서 설명드릴게요.
0) 이 구성의 핵심 의도
이 가이드는 “텔레그램 AI 자동화”를 하나로 뭉뚱그리지 않고 2개 경로로 분리합니다.
- Cursor MCP 경로 (알림/명령형 전송)
- 목적: 개발 중 이벤트, 점검 결과, 수동 알림을 텔레그램으로 보내기
- 주체: Cursor Agent
- 특징: 도구 호출 중심, 짧고 확실한 액션
- Telegram Bot + Ollama 경로 (대화형 응답)
- 목적: 사용자가 텔레그램에서 질문하면 AI 답변 받기
- 주체:
bot.py+ Ollama - 특징: 챗봇 경험 중심
이렇게 분리하면 장애가 났을 때
- “MCP 전송 문제인지”
- “대화형 봇/Ollama 문제인지” 빠르게 구분됩니다.
1) 사전 준비의 의미 (왜 이걸 먼저 해야 하나)
A. BotFather에서 봇/토큰 확인
- 토큰은 텔레그램 API의 인증 키입니다.
- 토큰이 맞아야 API 호출이 200으로 응답합니다.
- 봇은 이미 있다면 재사용하는 게 맞고, 새로 만들 필요는 없습니다.
B. chat.id 확보 (getUpdates)
chat.id는 “어느 채팅방으로 보낼지”의 대상 식별자입니다.chat not found (400)의 대부분은 여기서 발생합니다.- 첫 메시지를 봇에게 한 번 보내야
getUpdates에 그 채팅이 올라옵니다.
2) Cursor MCP 설정 파트 상세
파일 1: ~/.cursor/mcp.json
역할: Cursor가 어떤 MCP 서버를 어떤 명령으로 띄울지 정의
핵심 필드:
command: "npx": npm 패키지를 즉시 실행args: ["-y", "@harnyk/telegram-notifier-mcp"]: 텔레그램 전송 서버 지정envFile: 민감정보 파일 경로 참조
파일 2: ~/.cursor/telegram-mcp.env
역할: 비밀값 저장소
필수 값:
TELEGRAM_BOT_TOKENTELEGRAM_CHAT_ID
실무 포인트:
- 이 파일은 코드 저장소가 아니라 홈 디렉토리(
~/.cursor)에 둬야 안전 - 수정 후에는 MCP 서버 재로딩 필요 (토글 Off/On 또는 Cursor 재시작)
3) Ollama + 대화형 봇 설정 파트 상세
3-1. Ollama 점검
which ollama: 설치 경로 확인ollama --version: 실행 가능 여부 확인ollama list: 다운로드된 모델 목록 확인
3-2. ollama serve
- Ollama는 서버 프로세스가 떠 있어야
bot.py가 호출 가능 - 설치만 되어 있고 서버가 안 떠 있으면 연결 실패
3-3. ollama pull gemma3:4b
- 실제로 답변할 모델을 로컬에 내려받는 단계
- pull이 끝나야
OLLAMA_MODEL=gemma3:4b지정 시 정상 응답
3-4. 봇 실행
run.sh실행 후 로그에서 아래 3개가 중요:폴링 시작getMe 200getUpdates 200
이 3개가 뜨면:
- 봇 토큰 인증 OK
- 텔레그램 연결 OK
- 폴링 루프 OK
4) “친근한 CS형 톤” 설계 의도
문구를 바꾼 이유는 간단합니다:
- 사용자에게 내부 구현(로컬 모델, 엔진 호출 방식)을 노출하지 않고
- “문의 접수 → 처리중 → 결과 반환” 흐름을 자연스럽게 보이게 하기 위함
적용 원칙:
- 기술 디버그 문구 제거
- 안내/공감 문장 먼저
- 명령어 도움말은 짧고 행동 중심
즉, 엔지니어용 로그는 서버 로그로 보고, 사용자 채팅창은 CS 경험 중심으로 유지합니다.
5) 실제 운영 시나리오 (하루 운영 기준)
시나리오 A: 운영 알림 보내기
- Cursor Agent에서 알림 요청
- MCP 승인
- 텔레그램 도착 확인
- 실패 시
MCP Logs확인
시나리오 B: 사용자 질의 응답
- 사용자 텔레그램에서 일반 문장 또는
/ask - 봇이 처리중 안내 메시지 응답
- Ollama 결과 반환
- 지연/실패 시
run.sh로그 확인
6) 장애 대응을 더 실무적으로 보면
chat not found (400)
가장 먼저 볼 것:
TELEGRAM_CHAT_ID숫자 오타/붙여넣기 실수- 봇과 그 채팅의 관계 형성 여부(첫 메시지)
해결 루틴:
- 봇 채팅에 메시지 1회
getUpdates재조회chat.id재복사- env 반영 후 MCP 재시작
getUpdates가 result: []
의미:
- 아직 봇이 받은 업데이트가 없거나, 다른 대상에 메시지 보낸 상태
해결:
- 정확한 봇 username으로 들어가서 메시지
- 다시 조회
Ollama 실패
빠른 체크:
ollama serve떠 있는가- 모델이 목록에 있는가 (
ollama list) - 모델명 환경변수 오타 없는가
7) 운영 안정성 체크리스트
- 토큰은 절대 채팅/문서/스크린샷에 원문 노출 금지
- 유출 의심 시 BotFather에서 즉시 재발급
- 문구 수정 시
run.sh재시작 - env 수정 시 MCP 재로딩
- “알림 기능”과 “대화 기능” 로그를 분리 관찰
8) 다음 고도화 추천 (원하면 바로 진행 가능)
/ask답변 템플릿 고정- 인사 → 핵심 답변 → 추가 안내 → 마무리
- 관리자 전용 명령 분리
- 특정 chat/user만
/sysinfo허용 - 장애 자동 알림
- Ollama 실패/타임아웃 시 별도 텔레그램 경보
- 프롬프트 정책 파일화
- CS 톤 가이드 문구를 코드 밖 설정으로 분리