ai:assistant_ops_cron
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| ai:assistant_ops_cron [2026-04-09 13:58] – 멀티 에이전트 환경 크론잡 안전 운영 초안 작성 [기존 위키에서 이전] 172.19.176.1 | ai:assistant_ops_cron [2026-10-30 14:55] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== 크론잡 ====== | ====== 크론잡 ====== | ||
| - | 이 문서는 | + | 멀티에이전트 환경에서 크론잡 |
| - | 특히 '' | + | |
| - | ===== 1. 문서 | + | 메뉴얼.md 문서는 작업자가 그대로 따라도 오차가 없도록 자세히 작성해야 |
| - | 크론잡은 정해진 시간에 | + | |
| - | 특히 멀티 에이전트 환경에서는 '' | + | |
| - | 이 문서는 아래 위험을 줄이기 위해 | + | 복잡한 |
| - | * 결과 메시지가 잘못된 채팅방으로 전송되는 문제 | + | |
| - | * 다른 에이전트 계정/ | + | |
| - | * 실행은 되었지만 대상이 불명확해지는 문제 | + | |
| - | * 반복 실행으로 같은 오발송이 누적되는 문제 | + | |
| - | ===== 2. 핵심 원칙 ===== | + | 구글드라이브 스프레드시트를 참조할 때에는 |
| - | * 크론잡은 '' | + | |
| - | * 목적지 정보가 없으면 전송하지 않는 것을 기본값으로 합니다. | + | |
| - | * 애매하면 보내지 않는 편이 잘못 보내는 것보다 안전합니다. | + | |
| - | * 계정, 채널, 세션 정보는 추론하지 않고 명시적으로 지정합니다. | + | |
| - | * 멀티 에이전트 환경에서는 '' | + | |
| - | ===== 3. 가장 중요한 | + | 결과 보고 및 진척 상황 확인을 |
| - | 멀티 에이전트 환경에서 가장 위험한 유형 중 하나는 '' | + | |
| - | 예를 들어 아래와 같은 상황이 발생할 | + | 메뉴얼은 크론잡 등록 전 수 번 테스트하면서 시행착오를 직접 업데이트하라고 |
| - | * 이전 실행의 컨텍스트를 | + | |
| - | * 기본 채널/ | + | |
| - | * 운영자가 예상하지 | + | |
| - | * 특정 사용자용 크론이 공용 또는 타 사용자 채널로 전달되는 경우 | + | |
| - | 따라서 목적지 정보는 선택값이 아니라 필수값으로 취급해야 합니다. | + | 크론잡을 수행해야 할 때 사용해야 하는 도구를 명시해야 한다. |
| - | + | ||
| - | ===== 4. 목적지 정보 필수 항목 ===== | + | |
| - | 크론잡 | + | |
| - | + | ||
| - | * 실행 에이전트 ID | + | |
| - | * 전송 채널 | + | |
| - | * accountId | + | |
| - | * 대상 chat_id 또는 세션 식별자 | + | |
| - | * 대상이 개인인지 그룹인지에 대한 구분 | + | |
| - | * 실패 시 재시도 여부 | + | |
| - | * 전송하지 말아야 하는 조건 | + | |
| - | + | ||
| - | 권장 원칙: | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | + | ||
| - | ===== 5. 안전한 설계 원칙 ===== | + | |
| - | ==== 5-1. 목적지 없으면 실패 처리 ==== | + | |
| - | 목적지 정보가 하나라도 빠져 있으면 성공처럼 넘기지 말고, | + | |
| - | 명시적으로 실패 또는 보류 처리하는 것이 안전합니다. | + | |
| - | + | ||
| - | 권장 기준: | + | |
| - | * chat_id 없음 → 전송 금지 | + | |
| - | * accountId 없음 → 전송 금지 | + | |
| - | * 채널 불명확 → 전송 금지 | + | |
| - | * 세션 식별 불가 → 전송 금지 | + | |
| - | + | ||
| - | ==== 5-2. 기본값 자동 추론 금지 ==== | + | |
| - | 멀티 에이전트 환경에서는 아래 방식이 특히 위험합니다. | + | |
| - | * 최근 대화 상대를 목적지로 간주 | + | |
| - | * 마지막 사용 채널을 자동 재사용 | + | |
| - | * 다른 세션의 delivery context를 재활용 | + | |
| - | * accountId 없이 기본 계정에 의존 | + | |
| - | + | ||
| - | 이런 방식은 단일 사용자 환경에서는 편해 보여도, | + | |
| - | 멀티 에이전트 환경에서는 오발송 가능성을 크게 높입니다. | + | |
| - | + | ||
| - | ==== 5-3. 읽기와 전송 분리 ==== | + | |
| - | 크론잡은 가능하면 아래처럼 2단계로 나누는 것이 안전합니다. | + | |
| - | + | ||
| - | * 1단계: 조회/ | + | |
| - | * 2단계: 전송 대상 검증 후 발송 | + | |
| - | + | ||
| - | 이렇게 분리하면, | + | |
| - | 조회는 성공했더라도 목적지 검증이 실패하면 발송만 막을 수 있습니다. | + | |
| - | + | ||
| - | ==== 5-4. 사람별 / 채널별 설정 분리 ==== | + | |
| - | 다음 정보는 한 파일 또는 한 변수에 뭉뚱그려 두기보다 | + | |
| - | * 사용자별 목적지 | + | |
| - | * 채널별 목적지 | + | |
| - | * 계정별 전송 권한 | + | |
| - | * 에이전트별 실행 범위 | + | |
| - | + | ||
| - | ===== 6. 권장 운영 방식 ===== | + | |
| - | ==== 6-1. 전송 전 검증 ==== | + | |
| - | 실제 발송 전에 최소한 아래를 검증합니다. | + | |
| - | * 지금 실행 중인 에이전트가 맞는가 | + | |
| - | * accountId가 의도한 계정인가 | + | |
| - | * chat_id가 의도한 대상인가 | + | |
| - | * 이 작업이 개인 DM용인지 그룹용인지 맞는가 | + | |
| - | * 동일 메시지가 최근 이미 전송되지 않았는가 | + | |
| - | + | ||
| - | ==== 6-2. dry-run 또는 로그 우선 ==== | + | |
| - | 새 크론잡을 만들거나 수정한 직후에는, | + | |
| - | 바로 실전 발송하지 말고 한동안은 아래 방식이 안전합니다. | + | |
| - | * dry-run으로 대상만 출력 | + | |
| - | * 실제 전송 대신 로그 파일에 기록 | + | |
| - | * 테스트 채널로만 발송 | + | |
| - | + | ||
| - | ==== 6-3. id 기반으로 관리 ==== | + | |
| - | 가능하면 이름보다 내부 식별자를 사용합니다. | + | |
| - | * 사람 이름보다 sessionKey / chat_id / accountId 우선 | + | |
| - | * 채널명보다 실제 채널 식별자 우선 | + | |
| - | + | ||
| - | 이유: | + | |
| - | * 이름은 중복되거나 바뀔 수 있지만, | + | |
| - | * 식별자는 훨씬 안정적입니다. | + | |
| - | + | ||
| - | ===== 7. 실패 확률을 줄이는 작성 규칙 ===== | + | |
| - | * 크론 목적을 한 문장으로 명확히 적습니다. | + | |
| - | * 입력값과 출력값을 분리해 적습니다. | + | |
| - | * 전송 대상 식별자를 명시합니다. | + | |
| - | * 대상이 비어 있을 때의 동작을 명시합니다. | + | |
| - | * 실패 시 재시도 여부를 적습니다. | + | |
| - | * 중복 전송 방지 조건을 적습니다. | + | |
| - | * 테스트 채널과 운영 채널을 분리합니다. | + | |
| - | * 환경변수나 설정 파일의 의존 항목을 문서화합니다. | + | |
| - | + | ||
| - | ===== 8. 권장 체크리스트 ===== | + | |
| - | 크론잡을 배포하기 전 아래를 확인합니다. | + | |
| - | + | ||
| - | * 이 크론은 누가 실행하는가? | + | |
| - | * 어떤 에이전트에서 실행되는가? | + | |
| - | * 어떤 계정으로 메시지를 보내는가? | + | |
| - | * 정확한 목적지 식별자가 있는가? | + | |
| - | * 목적지 정보가 없을 | + | |
| - | * 테스트 채널에서 먼저 검증했는가? | + | |
| - | * 중복 발송 방지 장치가 있는가? | + | |
| - | * 오발송 시 빠르게 끌 수 있는가? | + | |
| - | + | ||
| - | ===== 9. 권장 금지사항 ===== | + | |
| - | 아래 방식은 멀티 에이전트 환경에서 지양합니다. | + | |
| - | + | ||
| - | * 기본 채널에 자동 전송 | + | |
| - | * 마지막 활성 세션 재사용 | + | |
| - | * 사람 이름만 보고 목적지 결정 | + | |
| - | * accountId 없이 메시지 발송 | + | |
| - | * 실패 원인 기록 없이 자동 재시도 반복 | + | |
| - | * 테스트와 운영 목적지를 동일하게 사용 | + | |
| - | + | ||
| - | ===== 10. 예시 문구 ===== | + | |
| - | 크론 설계 문서에는 아래 수준으로 명시하는 것이 좋습니다. | + | |
| - | + | ||
| - | * 실행 에이전트: | + | |
| - | * 채널: googlechat | + | |
| - | * accountId: acc_sungyong | + | |
| - | * 목적지 chat_id: googlechat: | + | |
| - | * 목적지 누락 | + | |
| - | * 중복 방지: 동일 키 기준 1회만 발송 | + | |
| - | * 테스트 목적지: 별도 검증용 채널 | + | |
| - | + | ||
| - | ===== 11. 요약 ===== | + | |
| - | 멀티 에이전트 환경의 크론잡은 '' | + | |
| - | '' | + | |
| - | + | ||
| - | 특히 목적지 정보가 불명확한 상태에서는 보내지 않는 것이 기본 원칙이며, | + | |
| - | 이 원칙이 오발송과 운영 사고를 줄이는 가장 중요한 안전장치입니다. | + | |
ai/assistant_ops_cron.1775710686.txt.gz · 마지막으로 수정됨: (바깥 편집)