디지털 스레드
디지털 스레드는 공장에서 일어난 일을 시간순으로, 그리고 무엇과 무엇이 이어져 있는지로 꿰어 두는 서비스입니다. 플랫폼의 설비·태그 원장과 사건, 그리고 MES · ERP · PLM · 품질 · 정비 · 안전 같은 외부 시스템이 내주는 작업지시 · 부품 · 사람 · 설계 변경 · 부적합 · 정비 · 허가를 한 그래프로 잇습니다. 2026.10 부터 AI 스택에 기본으로 들어 있습니다 — 따로 켜는 스위치가 없습니다.
| 누가 | 어디서 | 무엇을 |
|---|---|---|
| 운영자(관리자) | AI 관리 콘솔 → 레일의 디지털 스레드 | 외부 시스템 커넥터를 붙이고, 칸을 잇고, 거울이 잘 도는지, 준비도 판정에 무엇이 붙어 있는지 본다 |
| 현장 사용자 | 코파일럿 묻기(/chat) — thread_ 도구 | 「오늘 작업 뭐 있어?」 「오늘 아침 충전기에 무슨 일이 있었나」 「이 설비 위아래로 뭐가 붙어 있나」 를 물어 답을 받는다. 코파일럿에 디지털 스레드 전용 화면은 없다 → 디지털 스레드 — 연결되면 늘어나는 것 |
| 자동화 · 제안 | 같은 thread_ 도구 · 행동 도구 | 자동화가 정해진 시각에 같은 것을 확인하고, 제안 상세에서 승인하면 외부 시스템에 초안을 만든다 |
무엇으로 이루어져 있나
| 구성 요소 | 하는 일 |
|---|---|
plantpulse-digital-thread-api (내부 7140) | 커넥터 등록부 · 적합성 시험 · 바인딩 동기화 · 거울 투영 · 타임라인/연결 질의 · 작업 준비도 판정 · 채팅 도구 |
plantpulse-digital-thread-neo4j (발행 안 함) | 공장 그래프 거울 저장소. 이 서비스 전용이며 LightRAG 의 Neo4j 와 따로 둡니다 |
PostgreSQL pi 의 스키마 dt | 커넥터 등록부 · 바인딩 · 동일성 선언 · 행동 기록 → 데이터베이스 모델 |
두 컨테이너 모두 호스트 포트를 열지 않습니다. 관리 콘솔과 코파일럿이 compose 네트워크 안에서 부릅니다 → 서비스 포트 맵
거울에는 사건과 객체의 ID 와 연결만 있고 본문은 없습니다. 원천(플랫폼 원장 · 사건, 외부 시스템)에서 언제든 다시 만들 수 있는 사본입니다. 외부 시스템의 이름 · 유효기한 같은 값은 질의할 때 커넥터에서 읽고 저장하지 않습니다.
연동 지도 — 커넥터 붙이기

| 번호 | 자리 | 하는 일 |
|---|---|---|
| ① | 화면 머리 | 보기 단추 지도 / 목록 / 준비도 원천(목록은 같은 내용을 표로, 준비도 원천은 아래), 커넥터 추가(아래 네 단계), 새로고침 |
| ② | 요약 카드 | 등록된 커넥터 수 · 켜진 수 · 적합성 실패 수 · 커넥터가 내는 도구 수. 적합성 실패가 0 이 아니면 그 커넥터부터 봅니다 |
| ③ | 지도 | 외부 시스템 → 커넥터 → 도구 → 바인딩 → 공장 그래프 를 왼쪽에서 오른쪽으로 잇습니다. 노드를 누르면 옆 창에 설정 · 적합성 검사별 결과 · 최근 행동 호출이 열리고, 지도는 그 노드의 사슬만 밝힙니다 |
가족이 열하나라 지도가 넓습니다. 지도 위 거르기 줄에서 가족 · 상태 로 좁히고, 끌어 옮기기 · 휠 · Ctrl+휠(확대)로 돌아봅니다 → AI 관리 콘솔 — 연동 지도
지도에서 색과 선은 이렇게 읽습니다.
| 표시 | 뜻 |
|---|---|
| 초록 | 켜짐 — 적합성 시험을 통과했습니다 |
| 빨강 | 적합성 실패 |
| 회색 | 꺼짐 |
| 실선 바인딩 | 커넥터가 선언한 것 |
| 점선 바인딩 | 운영자가 지정한 것, 또는 서비스의 기본 칸 표(동기화가 늘 싣는 칸) |
| 🔒 행동 도구 | 외부 시스템에 초안·요청을 만드는 도구 — 콘솔에서는 부르지 않습니다(아래 「안전장치」) |
커넥터 등록 — 네 단계
커넥터 추가를 누르면 옆 창이 열립니다.
- 외부 시스템 — 가족(아래 표) · 시스템 이름 · 커넥터 이름을 정합니다.
- 끝점과 자격증명 — 커넥터의 MCP 엔드포인트와 인증 헤더 · 값을 넣고 등록하고 발견을 누릅니다. 서비스가 커넥터에서 도구 목록과 사이트를 읽어 「사이트 … 에서 도구 N개 발견」을 보여 줍니다. 커넥터는 꺼진 채로 만들어집니다.
- 적합성 — 적합성 시험을 돌립니다. 검사마다 통과 · 실패가 나오고, 실패한 검사는 무엇을 어겼는지 말합니다.
- 켜기 — 🔴 적합성 시험을 통과해야만 켤 수 있습니다. 켜면 그 커넥터의 도구가 그 사이트에 제공됩니다.
수정에서 끝점 · 자격증명을 바꾸고 저장하면 커넥터가 꺼지고 적합성 결과가 지워집니다. 3 단계부터 다시 밟으십시오. 커넥터의 도구 목록이 바뀌어도(도구 발견) 같습니다.
화면에는 「설정됨 / 설정 안 됨」 만 보입니다. 수정할 때 비워 두면 저장된 값이 그대로 남습니다. 값은
PI_DT_SECRET_KEY 로 암호화해 저장합니다 — 이 키를 잃으면 저장된 자격증명을 풀 수 없어 커넥터마다 다시
넣어야 합니다 → 비밀번호 · API 키 변경
적합성 시험이 재는 것
커넥터가 스펙대로 답하는지를 실제로 불러 봅니다. 대표적인 검사는 이렇습니다.
| 묶음 | 재는 것 |
|---|---|
| 발견 | capabilities 가 스키마를 지키는지, 도구 이름이 선언한 판의 스펙에 있는지, 가족의 필수 도구가 다 있는지 |
| 선언 | 읽기 도구에 읽기 전용 표시가 있는지, 입력 스키마가 스펙과 같은지 |
| 출력 | 표본 호출의 결과가 스펙 스키마를 지키는지 — 선언한 판보다 새 판의 칸을 내도 떨어집니다 |
| 시각 · 페이지 · 한도 | 시각 형식, 끝까지 따라가도 중복 · 누락이 없는지, 너무 넓은 구간 · 조건 없는 목록을 거절하는지 |
| 오류 · 크기 | 없는 ID 에 not_found 를 내는지, 응답이 16,000자 안인지 |
| 사건 · 바인딩 | 사건 봉투 모양, 사건의 대상이 바인딩으로 풀리는지, 같은 사건을 두 번 읽어도 ID 가 같은지 |
| 지연 | 필수 읽기 도구의 p95 가 2초 미만인지 |
검사는 «최근 7일 ~ 앞으로 7일» 구간의 표본으로 돕니다. 데이터가 하나도 없는 구간이면 스키마를 재지 못하므로 실제 데이터가 있는 커넥터로 시험하십시오.
지원하는 스펙과 가족
등록 화면이 고르게 하는 가족은 열하나이고, 따르는 스펙 줄기는 아홉입니다. 스펙이 없는 가족은 등록되지 않습니다. 가족마다 내야 하는 도구 · 쓰이는 곳 · 주의할 점은 디지털 스레드 커넥터 에 가족별로 있습니다.
| 가족 (화면 이름) | 스펙 · 최소 판 | 싣는 것(키만) |
|---|---|---|
mes (MES) | mes-mcp/0.7 | 설비 · 작업지시 · 공정 · 마일스톤 · 수주 프로젝트 · 실적 로트 · 계보 · 제조 BOM |
scm (SCM) | mes-mcp/0.7 | 협력사 · 구매 · 공급 라인 · 출하 · 입고 · 결품 · 공급 능력 |
sched (일정 계획(APS)) | mes-mcp/0.7 | 발행된 계획의 공정 일정 · 자원 달력 · 시나리오 |
erp (ERP) | erp-mcp/0.4 | 사람(가명 ID) · 자격 · 배정, 자재 구매오더 · 입고 · 고객 주문, 제조 BOM |
plm (PLM) | plm-mcp/0.2 | 설계 변경 지시 · 설계 BOM · 문서 메타데이터 |
qm (품질) | qm-mcp/0.2 | 검사 로트 · 부적합(NCR) |
cmms (정비(CMMS)) | cmms-mcp/0.2 | 정비 작업지시 · 예방정비 창 |
tool (공구 관리) | tool-mcp/0.2 | 공구 · 지그 · 계측기 대장과 선언한 기능(불출 · 교정 · 수명 · 작업별 공구) |
wms (창고(WMS)) | wms-mcp/0.2 | 재고 · 이동(거울에 싣지 않고 물을 때 읽습니다) |
lims (시험실(LIMS)) | lims-mcp/0.2 | 시료 · 시험 결과 |
ehs (안전(EHS)) | ehs-mcp/0.3 | 작업 허가 · 격리(LOTO) · 사고 참조 · 점검 · 위험성평가 · 역할 자격 |
- 🔴 최소 판보다 낮은 판을 선언한 커넥터는 쓰이지 않습니다(2026.10 재릴리즈(2026-10-20) 부터) — 동기화가 거절되고 판정에서 «붙지 않음» 이 됩니다. 올리는 법은 판 올리기.
- 이미 붙은 커넥터가 새 판을 선언하게 되면 도구 발견에서 꺼집니다 — 그 커넥터만 적합성 시험 → 켜기를 다시 밟습니다.
- 행동 도구(🔒 — 초안 · 요청을 만드는 도구)는
mes-mcp줄기에만 있습니다 — MES 의 보류 요청 · 정비 요청 · 작업지시 초안, SCM 의 독촉 · 협력사 문의 초안, 일정 계획의 시나리오 초안. 나머지 여덟 스펙은 읽기 전용입니다. - 이 스펙들은 특정 제품이 아니라 공통 분모로 정한 것입니다. 쓰는 시스템 앞에 이 스펙을 따르는 커넥터를 세워 붙입니다.
상용 제품 어댑터 — 사전 검증 단계
SAP S/4HANA(ERP · 정비) · IBM Maximo(정비) · Siemens Teamcenter(PLM) · Dassault 3DEXPERIENCE(PLM) 어댑터는 모의 서버를 상대로 적합성 시험을 통과한 단계이고, 실제 제품에 붙여 검증하지는 않았습니다 → 상용 제품 어댑터
한 현장에 같은 가족 커넥터가 여럿일 때
한 현장에 같은 가족의 커넥터를 여럿 붙일 수 있습니다(예: 라인마다 다른 MES). 가족마다 대표가 하나 있고, 처음 등록한 커넥터가 대표가 됩니다.
- 대표를 넘기려면 다른 커넥터를 대표로 지정합니다 — 기존 대표는 저절로 내려갑니다. 대표를 비워 둘 수는 없습니다.
- 두 커넥터가 같은 도구 이름을 내면 나중에 붙인 쪽이 거절됩니다. 커넥터 쪽에서 도구를 빼십시오.
- 코파일럿의 제안 카드가 행동을 보낼 때, 같은 가족이 여럿이면 대표에게 보냅니다.
외부 링크 — 원 시스템에서 열기
코파일럿 묻기의 근거 패널에서 스레드 노드(PO 줄 · 작업지시 · 품번 …)를 누르면 「SAP 에서 열기」 처럼 원 시스템의 그 기록 화면으로 가는 링크가 붙습니다 → 디지털 스레드 — 답의 근거. 이 링크는 관리자가 커넥터에 링크 틀을 넣었을 때만 생깁니다. 틀이 없으면 링크도 없습니다(설치 기본).
넣는 자리는 연동 지도 › 커넥터 노드 › 옆 창의 외부 링크 입니다.
| 칸 | 넣는 것 |
|---|---|
| 기본 URL | 원 시스템 화면의 뿌리(예: https://s4.example.com). https 만 됩니다. user:pass@ · 쿼리 · 조각은 넣지 않습니다 |
| 버튼 라벨 | 화면에 보일 말, 60자까지(예: 「SAP 에서 열기」). 비우면 커넥터 이름이 그대로 버튼 글이 됩니다 |
| http:// 허용 (사내 데모 전용) | 평문 http 인 사내 데모 시스템에서만 켭니다. 운영 시스템은 https 여야 합니다 |
| 객체 종류별 틀 | 종류(po_line · work_order · part · ncr …)마다 URL 틀 하나. 틀 추가로 늘립니다. 하나 이상 있어야 합니다 |
| 미리보기 표본 키 | 표본 키를 넣으면 틀로 만든 주소가 미리 보입니다(참고용) |
틀의 자리표는 셋뿐입니다.
| 자리표 | 들어가는 것 |
|---|---|
{base} | 기본 URL(끝 / 없이) |
{key} | 객체 키 전체(URL 인코딩 — / 도 %2F) |
{key.1} ~ {key.9} | 키를 / 로 나눈 N 번째 조각. PO 줄 4500001/10 의 PO 번호와 줄 번호를 따로 쓸 때 |
po_line {base}/sap/bc/ui2/flp#PurchaseOrder-display?PurchaseOrder={key.1}&PurchaseOrderItem={key.2}
customer {base}/sap/bc/ui2/flp#Customer-display?Customer={key}
- 링크 저장을 누르면 디지털 스레드가 틀을 검사합니다. 틀에
{key}·{key.N}이 없거나, 모르는 자리표 · 종류 · 공백이 있거나, 결과 주소가 기본 URL 의 호스트를 벗어나면 거절하고 그 사유를 보입니다. 🔴 최종 판정은 저장할 때의 검사이고, 화면의 미리보기는 참고용입니다. - 링크 지우기는 그 커넥터의 틀을 지웁니다. 틀을 넣거나 지워도 적합성 결과와 켜짐 상태는 그대로입니다.
- JSON 으로 채우기에 링크 설정(
{"base_url": …, "templates": …})이나 데모 시스템이 낸 제안({"links": …})을 붙여 넣으면 폼이 채워집니다. - 같은 종류의 틀을 여러 커넥터가 가지면 그 노드와 같은 현장의 켜진 커넥터 가운데 그 종류의 정본 가족(PO 줄 · 고객 주문은 ERP, 작업지시 · 공정은 MES, 품번 · 문서 · 설계 변경은 PLM, 부적합 · 검사는 QM, 정비 작업지시는 CMMS)을 먼저, 그다음 대표를 씁니다. 같은 번호가 여러 현장에 있어 주소가 갈리면 링크를 내지 않습니다.
- 코파일럿은 버튼 옆에 가는 곳의 호스트를 함께 보이고, 범위 밖 노드에는 링크가 없습니다. 링크를 연 사람의 권한은 원 시스템이 다시 판정합니다.
- 바꾼 틀은 바로 먹습니다. 다만 이미 저장된 답의 근거 카드는 답할 때의 링크를 그대로 들고 있고, 노드를 눌러 연 원 시스템의 지금 값의 링크가 지금 틀로 만든 것입니다.
칸 잇기(바인딩) — 끌어 놓기
동기화가 기본으로 싣지 않는 칸을 공장 그래프의 객체로 잇거나, 커넥터가 선언한 칸의 종류를 바꾸거나 끕니다.
- 지도에서 읽기 도구 묶음을 누릅니다. 옆 창에 도구별 칸 목록이 펼쳐집니다.
- 칸을 지도 오른쪽 공장 그래프 열의 종류(설비 · 작업지시 · 부품 …)로 끌어 놓습니다(또는 칸을 누른 뒤 종류를 누릅니다).
- 옆 창의 확인 상자에서 묶기를 누릅니다. 선언된 칸을 다른 종류에 놓으면 «선언된 종류를 덮어씁니다» 가 함께 보입니다.
- 끄려면 🚫, 지우려면 칸 줄의 휴지통이나 지도의 점선 노드에서 지웁니다.
- 운영자 바인딩이 커넥터 선언을 이깁니다.
- 바뀐 것은 다음 동기화부터 적용됩니다. 주기 동기화(아래)를 기다리지 않으려면 옆 창의 지금 동기화를 누릅니다 — 객체 · 연결 수를 보여 줍니다. 켜진 커넥터만 동기화할 수 있습니다.
- 레코드 자신의 ID 칸은 바꿀 수 없습니다.
- 누가 언제 무엇을 바꿨는지는 바인딩 변경 기록과 관리 콘솔 감사 로그(
thread.write)에 남습니다.
제조 BOM (M-BOM)
설계 BOM(PLM 의 plm_get_bom)은 «무엇으로 이루어졌나» 이고, 제조 BOM 은 «공장에서 실제로 어떻게 만드나» — 팬텀 · 반제품 · 대체
자재 · 어느 공정에서 소비하나 입니다. 정본이 어디냐에 따라 둘 중 한쪽 커넥터가 냅니다.
| M-BOM 정본 | 커넥터 | 도구 |
|---|---|---|
| ERP | erp 가 erp-mcp/0.2 선언 | erp_get_mbom |
| MES · MPM | mes 가 mes-mcp/0.6 선언 | mes_get_mbom |
두 도구는 같은 모양을 냅니다. 둘 다 켜져 있으면 ERP 쪽을 먼저 읽습니다.
- 회복안이 더 정확해집니다. M-BOM 이 있으면 설계 변경 · 부적합이 닿은 품번이 어느 공정을 막는지 소비 공정으로 가립니다. 없으면 «작업지시 단위로 막는다» 고 가정하고, 답의 «고려하지 않은 것» 에 그렇다고 적습니다.
- BOM 3자 대조 — 설계 BOM · 제조 BOM · 도면 부품표를 견줘 빠진 자품번 · 수량 · 단위 · 판 뒤짐을 보고만 합니다.
아무것도 고치지 않습니다. 화면은 없고 서비스 API(
/api/v1/bom/reconcile)로 봅니다.
자재 구매오더와 고객 주문 — PO 로 잇는 스레드
2026.10 재릴리즈 3 부터 스레드가 주문으로 양 끝을 잇습니다.
자재 PO 줄 ─(걸림)→ 작업지시 ─(속함)→ 마일스톤 · 프로젝트 ─(이행)→ 고객 주문 줄 ─(주문자)→ 고객
자재 PO 줄 — ERP 와 SCM 을 하나로 합칩니다. PO 의 정본은 ERP(erp-mcp/0.3 의 erp_list_purchase_orders)이고, SCM 은 협력사가
확정한 납기를 압니다. 둘 다 붙어 있으면 같은 po_id · po_line 을 한 줄로 합칩니다.
| 칸 | 어느 쪽 값을 쓰나 |
|---|---|
| 납기(약속일 · 확정일) | SCM 에 협력사 확정(confirmed_date)이 있으면 SCM, 없으면 ERP |
| 상태 · 미결 수량 등 나머지 | ERP(정본) |
- 🔴 두 원천의 값이 다르면 조용히 하나를 고르지 않습니다. 고른 값과 규칙을
conflicts[]로 함께 내고, 회복안 답에도 그대로 실립니다. - 한쪽에만 있는 줄은 그쪽 값 그대로입니다.
- SCM 이 없어도 ERP 만으로 준비도의 자재 항목과 회복안이 돕니다. 이때 «작업지시에 걸린 미결 PO 줄 = 그 작업지시가 기다리는 자재» 로
보며, ERP PO 는 재고를 말하지 않으므로 재고는 모릅니다 — 이 가정은 답의
assumptions에 적힙니다.
고객 주문 줄 — 여유일과 위험. 고객 주문 줄은 ERP erp_list_sales_orders 가 냅니다(고객 · 고객 PO 번호 · 계약 납기 · 확약 납기 ·
지체상금 조건 등). 줄은 마일스톤(출하) · 작업지시 · 프로젝트 중 하나로 공장 일에 닿습니다.
- 여유일(
slack_days) = 납기일(확약 납기가 있으면 그것, 없으면 계약 납기)의 다음날 00:00(현지) − 예상 완료 시각. 0.1일 단위입니다. 예상 완료는 계획 · 지연 계산의 숫자만 씁니다 — 숫자가 없으면slack_days: null과 이유입니다. - 프로젝트로만 닿은 줄은 어느 날이 인도인지 몰라, 여유일이 그 작업지시 뒤의 일을 세지 않은 «상한» 이라고
slack_basis로 밝힙니다. slack_basis는 여유일의 기준입니다 —work_order_planned_end(작업지시 계획 끝) ·work_order_planned_end_project_only(같은 기준의 상한) ·delay_propagated(회복 계산이 부품 지연을 전파한 뒤). 준비도 · 오늘 목록은 앞의 둘, 회복 계산(explain_recovery· 영향 표)은delay_propagated입니다. 같은 고객 주문 줄이라도 두 값은 크게 다를 수 있어, 코파일럿은 이 칸으로 «계획 여유» · «(지연 반영)» 을 가릅니다.
| 여유일 | risk |
|---|---|
| 0 미만 | late(납기 넘김) |
| 2일 미만 | at_risk(위험) |
| 그 밖 | on_track(여유) |
| 셈하지 못함 | unknown(모름) |
ERP 커넥터가 고객 주문을 내지 않으면(0.3 미만이거나 꺼져 있으면) 고객 주문 칸은 비지 않고 «모름» 이 되며, 이유가
customer_orders_unknown_because 에 실립니다.
커넥터 동기화 — 주기와 지금 동기화
커넥터 동기화는 켜진 커넥터의 바인딩 · 사건을 거울에 싣는 일입니다. 2026.10 재릴리즈 3 부터 서비스가 주기로 돌립니다 — 그래프 거울의 10분 주기 투영(플랫폼 원장 · 학습된 간선)과는 다른 것입니다.
- 주기 — 커넥터마다 그 가족의 신선도 상한의 절반(최소 300초)마다 동기화합니다. 예를 들어 MES · 일정은 1시간, EHS 는 30분, ERP 는 12시간입니다. 거울이 늘 상한 안쪽에 있게 하려는 것입니다. 서비스가 다시 뜨면 잠시 뒤 켜진 커넥터를 한 번씩 동기화합니다.
- 창 은 «지금 ± 15일» 입니다.
- 사라진 연결을 닫습니다. 이번 창에 원천이 더는 말하지 않는 연결은 지우지 않고 닫습니다(끝난 시각을 적습니다) → 연결 이력
- 🔴 커넥터가 돌려준 목록이 잘렸으면 닫기를 건너뜁니다 — 잘린 목록으로 닫으면 멀쩡한 연결까지 닫히기 때문입니다. 응답의
prune_skipped가 그 이유이고, 콘솔에는 노란 줄 「이번 동기화는 사라진 연결을 닫지 않았습니다 — 수집이 잘렸습니다 …」 로 보입니다. - 한 커넥터가 실패해도 다른 커넥터는 돕니다. 실패한 커넥터는 다음 주기에 다시 시도합니다.
- 같은 커넥터의 동기화는 줄을 서서 하나씩 돕니다.
연동 지도 옆 창의 지금 동기화는 같은 동기화를 바로 한 번 돌립니다 — 커넥터를 켠 직후나 칸 바인딩을 바꾼 직후에 누릅니다. 실은 객체 · 연결 수가 나오고, 주기 동기화와 똑같이 사라진 연결을 닫습니다.
상태 보기. 디지털 스레드의 /health 에 connector_sync 가 실립니다 — 켜짐 여부 · 회차 · 커넥터별 마지막 결과 · 실패 중인 커넥터 목록
(failing). 정보일 뿐이라, 커넥터가 실패해도 서비스 상태를 «주의» 로 내리지 않습니다(바깥 시스템의 일이기 때문입니다).
설정. 설치 env 로 바꿀 수 있습니다. 모두 비워 두면 위의 기본이 적용됩니다 → 환경 설정
| 키 | 기본 | 뜻 |
|---|---|---|
DT_CONNECTOR_SYNC_ENABLED | true | 주기 동기화. false 면 콘솔의 지금 동기화 만 남습니다 |
DT_CONNECTOR_SYNC_INTERVAL_S | 0 | 동기화 간격(초). 0 이면 가족별(상한의 절반) |
DT_CONNECTOR_MAX_AGE | 비움 | 가족별 신선도 상한. 예: mes=2h,erp=1d |
DT_LINK_HISTORY_DAYS | 비움(= 180) | 닫힌 연결을 남겨 두는 날 수 |
디지털 스레드 저장소의 참조 데모 커넥터(제품 이미지에는 실리지 않습니다) 가운데 중공업 주문생산 세계 heavy 의 ERP 는 erp-mcp/0.3 을
선언하고 구매오더 · 입고 · 고객 주문을 냅니다. 이 판의 PO 스레드를 시험 환경에서 따라가 볼 때 씁니다.
연결 이력 — 그 날짜 기준 상태
커넥터가 실은 연결(작업지시 → 설비, 설계 변경 → 품번, 자품번 → 모품번 …)은 원천에서 사라져도 지우지 않고 닫습니다. 그래서 「지난주 화요일 이 작업지시는 어느 설비에 걸려 있었나」, 「설계 변경 전 이 품번의 상위 조립은 무엇이었나」 에 답할 수 있습니다.
- 채팅 도구
thread_trace_links와 연결 질의가as_of(그 순간)를 받습니다. 기본은 «지금 열린» 연결만입니다. - 닫힌 연결은 180일(
DT_LINK_HISTORY_DAYS) 동안 남습니다. 그보다 앞 순간을 물으면 «없었다» 가 아니라 «모른다» 로 답합니다. - 연결을 «닫는» 것은 커넥터 동기화입니다 — 주기 동기화와 콘솔의 지금 동기화 가 모두 닫습니다
(서비스 API 로는
POST /api/v1/connectors/{id}/sync에prune: true). 응답의prune_applied가 닫았는지,prune_skipped가 건너뛴 이유(목록이 잘림)를 말합니다. - 원장 투영 · 학습된 간선 · 동일성 연결은 이력이 없습니다(늘 «지금»).
시스템마다 번호가 다를 때 — 동일성(SAME_AS)
PLM 은 BLD-SX-S1, MES 는 100234-01 처럼 같은 품번을 다르게 부르면 스레드가 끊기고, 회복안이 「MES 에서 찾지 못함」 을
냅니다. 이때 사람이 확인한 쌍만 같은 것이라고 선언합니다. 거울에 SAME_AS 연결 하나가 생기고, 원천의 번호는 바뀌지 않습니다.
- 🔴 자동으로 잇지 않습니다. 잘못 이은 동일성은 틀린 지연 숫자를 만듭니다. 서비스가 후보(대소문자 · 구분 기호 · 앞자리 0 을 무시해 같은 것, 다른 커넥터가 말한 쌍)를 보여 줄 뿐, 선언은 사람이 합니다.
- 화면은 없습니다 — 서비스 API(
/api/v1/identities, 후보는/api/v1/identities/suggestions)로 선언 · 거두기를 합니다. 거두면 거울 연결도 지워지고, 누가 언제 선언 · 거뒀는지는 기록에 남습니다. - 선언 목록에서
applied: false인 선언은 두 번호 중 하나가 아직 거울에 없는 것입니다 — 동기화 뒤 이어집니다. - 타임라인은 동일성을 두 걸음까지 따라가 다른 번호로 걸린 사건도 보이고, 회복안은 «어느 선언으로 이었나» 를 답에 밝힙니다.
자료가 낡으면 — 신선도 상한
커넥터 응답에는 «언제 기준 자료인가»(as_of)가 붙습니다. 그 시각이 가족별 상한보다 오래되면 회복안과 준비도 판정이 숫자 ·
판정을 내지 않고 「낡은 원천」(stale_inputs)으로 멈춥니다. 낡은 자료로 틀린 답을 내지 않기 위해서입니다.
| 가족 | 상한 |
|---|---|
ehs | 1시간 |
mes · sched · wms | 2시간 |
cmms | 4시간 |
lims | 12시간 |
scm · erp · plm · qm · tool | 1일 |
멈췄다면 먼저 커넥터 뒤의 원천(복제본 · 배치 내보내기)이 멈췄는지 봅니다. 어느 커넥터가 낡았는지는 연동 지도의 준비도 원천 보기의 낡음 표찰로 보입니다.
2026.10 재릴리즈 3 부터 설치 env 의 DT_CONNECTOR_MAX_AGE(예: mes=2h,erp=1d, 단위 s · m · h · d)로 가족별 상한을 바꿀 수 있습니다.
비워 두면 위 표입니다. 커넥터의 주기 동기화 간격도 이 상한의 절반을 따라갑니다 → 커넥터 동기화
그래프 거울 — 잘 돌고 있나

| 번호 | 자리 | 하는 일 |
|---|---|---|
| ① | 화면 머리 | 새로고침. 이 화면은 읽기 전용입니다 |
| ② | 요약 카드 | 지난 투영의 판정(정상 · 부분 완료 · 실패 …) · 마지막 성공 시각 · 거울의 객체 수 · 투영된 연결 수 |
| ③ | 「마지막 실행」 · 「그래프 탐침」 | 왼쪽: 끝난 시각, 회차 · 연속 실패 · 주기, 단계별 결과(플랫폼 원장 · 학습된 간선). 오른쪽: 전용 Neo4j 에 닿는지와 라벨별 노드 수 |
| ④ | 「거울에 담긴 것」 | 항목(자산 · 태그 · 계층 · 공급/의존 · 선행 관계 …)마다 출처(플랫폼 원장 · 학습(insight))와 건수 |
서비스 안의 주기 잡이 10분마다 플랫폼 원장(사이트 · 설비 계층 · 태그 · 설비 관계)과 시계열 인사이트가 학습한 연결을 거울에 싣습니다. 첫 회차는 기동하고 1분 뒤입니다. 플랫폼 사건은 따로 계속 읽어 들이고, 거울의 사건 참조는 180일 동안 둡니다.
| 판정 | 뜻 | 할 일 |
|---|---|---|
| 정상 | 원장과 학습 간선 모두 실었다 | — |
| 부분 완료 | 원장은 실었고 학습 간선만 못 실었다(지난 간선이 남아 있다) | 시계열 인사이트가 막 떴다면 다음 회차에 풀립니다 |
| 실패 | 원장을 못 실었다 — 거울이 원장보다 낡아 간다. 관리 콘솔 홈의 카드가 노란불로 내려갑니다 | 「운영자가 고쳐야 합니다」가 보이면 설정 · 자격증명 문제입니다 → 로그 |
현장과 채팅에서 쓰이는 곳
디지털 스레드는 코파일럿에게 선택 연동입니다. 코파일럿에는 디지털 스레드 전용 화면 · 카드 · 메뉴가 없고(옛 /thread 화면, 채팅 시작 화면의
«오늘 작업» 카드, 설비 화면의 타임라인은 새 화면에서 없어졌습니다), 연결되면 셋이 늘어날 뿐입니다.
| 늘어나는 것 | 무엇 |
|---|---|
| 묻기가 쓰는 도구 | 아래 채팅 도구의 thread_ 도구 |
| 자동화가 고르는 도구 | 자동화를 만들 때 도구 목록의 디지털 스레드 묶음과, 이 연결이 있어야 쓰는 템플릿 → 자동화 |
| 제안의 근거와 초안 | 제안 상세의 근거, 그리고 승인하면 외부 시스템에 만들어지는 초안(아래 「안전장치」) → 제안 |
- 디지털 스레드 전용 자동화 템플릿은 도구가 있을 때만 보입니다. 템플릿 갤러리 열넷 가운데 납기 위험 PO · 품질 이상 추적 · 도면 개정 알림 셋은
thread_도구에 기대므로, 그 도구가 이 설치에 없거나 자동화를 만드는 사람이 쓸 수 없으면 갤러리에 나오지 않습니다(«쓸 수 없음» 으로 흐리게 보이는 것이 아닙니다). 커넥터를 붙이고 아래 채팅 도구가 켜져 있으면 그 사람의 갤러리에 나타납니다 — 도면 개정 알림은thread_today_work에 더해 기본이 꺼짐인 판 상태 도구 (thread_part_revision_status또는thread_work_readiness) 가운데 하나를 켜야 보입니다. 이미 저장해 둔 자동화는 갤러리와 상관없이 그대로 열리고 돕니다. - 제안의 근거는 오른쪽 패널로 열립니다. 제안 상세의 근거 줄(문서 원문 · 도면 · 영상)을 누르면 새 탭이 아니라 상세 위에 패널이 하나 더 쌓여 열리고, 패널 머리의 뒤로를 누르면 보던 상세로 스크롤 위치 그대로 돌아옵니다. 도면 근거는 패널의 미리보기에서 뷰어로 열기(새 탭) 로 넘어갑니다.
- 묻기 답의 근거 패널이 원 시스템을 한 번 더 읽습니다. 연결 그래프에서 노드를 누르면 디지털 스레드가 그 종류의 정본 커넥터의 읽기 도구로 그 한 건을 지금 읽어 원 시스템의 지금 값으로 보이고(저장하지 않습니다, 커넥터 한 번에 15초), 이 객체의 이력은 거울의 사건을 30일씩 보입니다(보존 180일). 그 커넥터가 없거나 꺼져 있으면 «모름 — 연결은 선택» 으로 보일 뿐 오류가 아닙니다. 원 시스템 링크는 외부 링크 틀이 있을 때만 붙습니다 → 디지털 스레드 — 답의 근거
연결이 없는 설치에서는 이 도구들이 목록에 나오지 않을 뿐, 코파일럿 화면에는 빈 칸도 «연결 안 됨» 안내도 없습니다. 현장 사용자가 무엇을 물으면 되는지는 디지털 스레드 — 연결되면 늘어나는 것에 있습니다.
설비 타임라인 — 묻기에서
설비에 일어난 일은 묻기에서 「이 설비에 최근 무슨 일이 있었어?」 처럼 물으면 thread_get_timeline 이 거울의 사건을 시간순으로 돌려줍니다 —
설비 상태 · 일정, 작업 오더, KPI 확정, 알람, 이상 접수, AI 제안 · 발견. 무엇과 이어져 있는지는 thread_trace_links 가 답합니다.
그 설비가 아직 디지털 스레드에 없다고 답하면 거울 투영이 아직 그 설비를 싣지 않은 것입니다 — 위 그래프 거울 화면에서 마지막 성공 시각을 보십시오.
반장 작업 준비도와 준비도 원천
작업 준비도는 지금부터 한 교대(기본 12시간, 최대 48시간) 안에 시작할 공정마다 GO · AT_RISK · NO_GO · UNKNOWN 을 내고, 막힌 것부터
돌려줍니다. 판정은 디지털 스레드가 하고, 묻기와 자동화는 그 값을 옮기기만 합니다. 묻기에서는 thread_today_work(기본 켜짐)의 줄마다 준비도가 실리고,
준비도만 따로 묻는 thread_work_readiness 는 기본이 꺼짐이라 관리자가 켜야 합니다.
공정마다 여덟 항목을 봅니다 — 선행 공정 · 자재 · 공구·교정 · 인원·자격 · 허가·격리 · 품질 막힘 · 설비 정비 · 도면 판. 항목마다 읽는 커넥터 가족이 정해져 있고(MES · SCM · 공구 관리 · ERP · 안전 · 품질 · 정비 · PLM), 그 표는 AI 관리 콘솔 — 준비도 원천 에 있습니다.
- 🔴 모름은 GO 가 아닙니다. 원천 커넥터가 없거나 답하지 않은 항목은 UNKNOWN 이고, 통과로 세지 않습니다.
- MES 커넥터가 없으면 작업지시를 몰라 판정 전체를 하지 않습니다(«MES 없음 — 판정 안 함»).
- 원천 자료가 신선도 상한보다 낡았으면 판정을 멈춥니다(«낡은 원천 — 판정 멈춤»).
- 판정은 보고만 합니다 — 작업을 내보내거나 사람을 다시 배정하지 않습니다.
운영자가 할 일은 원천을 붙이는 것입니다. 준비도 답에 UNKNOWN 이 많으면 연동 지도의 준비도 원천 보기에서 없음(회색) · 낡음 인 항목을 찾아 그 가족의 커넥터를 붙이거나 원천을 살립니다.
준비도 응답(GET /api/v1/readiness, GET /api/v1/readiness/{작업지시})에는 2026.10 재릴리즈 3 부터 다음이 더 실립니다.
| 자리 | 칸 | 뜻 |
|---|---|---|
| 항목마다 | reason_code · reason_params | 사유를 기계가 읽는 코드와 값으로. 코파일럿은 이것을 사용자 언어의 문장으로 옮깁니다(영어 reason 은 같은 코드를 편 것) |
| 응답 머리 | purchase_orders | ERP 구매오더를 읽었을 때만 — ERP 줄에서 만든 부족 줄(derived_shortage_lines), SCM 과 어긋난 값(conflicts), 그때 둔 가정(assumptions). 읽지 않았으면 null |
| 응답 머리 | customer_orders_unknown_because | 고객 주문을 못 읽은 이유(ERP 가 erp_list_sales_orders 를 내지 않음 등). 읽었으면 null |
| 공정마다 | customer_orders[] | 그 작업지시가 이행하는 고객 주문 줄 — 납기 · 여유일 · risk · 여유일의 근거(slack_basis) |
도면 판 항목
도면 판은 그 공정이 쓰는 품번에 대해 둘을 봅니다.
- 설계 변경 — PLM 에 배포된 설계 변경이 있어 옛 판 부품만 남았으면 NO_GO. PLM 커넥터가 없으면 UNKNOWN 입니다.
- 작업장 도면 — RAG 에 색인된 도면의 판이 PLM 의 배포 판과 다르면 NO_GO. 이 비교는 아래의 도면 참조가 거울에 있을 때만 합니다. 없으면 검사 하나가 빠질 뿐 항목 값은 그대로입니다.
품번 판 상태(최신판 · 옛 판 · 변경 진행 · 확인 불가)는 따로도 물을 수 있습니다 — 채팅 도구
thread_part_revision_status, 그리고 도면 대장의 판 표찰이 이것을 씁니다. 확인 불가는 «최신» 이 아닙니다.
오늘 작업 목록 — 반장의 하루
묻기와 자동화가 쓰는 도구 thread_today_work 가 이 목록을 돌려줍니다(옛 판에서는 반장의 채팅 시작 화면 「오늘 작업」 카드도 같은 목록을 썼습니다). 서비스 API 로는
GET /api/v1/today?date=YYYY-MM-DD 입니다(날짜는 설치 시간대 PP_TZ 의 하루, 비우면 오늘).
- 줄 = 그날 계획된 열린 공정(MES) + 플랫폼에서 지금 돌고 있는 공정. MES 가 «완료» 라고 해도 플랫폼에서 돌고 있으면 싣습니다.
- 줄의 칸 — 준비도(
readiness), 이행하는 고객 주문(customer_orders[], 여유일slack_days·risk), 기다리는 자재 PO(materials[]— 도착 예정 · 늦은 날 수), 작업장에서 쓸 도면(drawings[]— 판 표찰current·outdated·change_open·unknown), 플랫폼의 오더와 설비 상태(platform), 주의할 것(attention[]). attention값은readiness_no_go(준비도 NO_GO) ·material_late(자재 늦음) ·outdated_drawing_on_file(옛 판 도면이 걸려 있음) ·drawing_change_open(설계 변경 진행) ·customer_due_at_risk(고객 납기 위험) ·platform_running_outside_plan(MES 계획 밖 공정이 돎) 입니다.- 정렬 — 여유일이 빠듯한 것부터, 그다음 NO_GO · 옛 판 도면 · 계획 시작 순입니다.
- 🔴 못 읽은 칸은
null과<칸>_unknown_because(이유)입니다. 빈 목록은 «읽었는데 없음» 입니다 — 둘을 헷갈리지 마십시오. - 플랫폼에서 도는 주문은 플랫폼 주문 목록(
/api/v5/order/query) 행의 외부 식별 쌍(external_system+external_id)으로 MES 공정에 잇습니다 — 쌍의external_system이 MES 커넥터 이름과 같을 때만 잇고(예: 데모 MES 는demo-mes, 시뮬레이터는PLANTPULSE-SIM), 그때external_id가 곧 MES 공정 id 입니다. 주문 상세를 따로 부르지 않습니다. 쌍이 비었거나 시스템 이름이 다르면 어느 공정에도 붙지 않습니다. - 플랫폼의 오더 · 설비 상태는 오늘만 읽습니다(다른 날짜면
platform: null). 플랫폼 API 주소 · 토큰(DT_PLATFORM_API_URL·DT_PLATFORM_API_TOKEN)이 비어 있어도platform_unknown_because에 이유가 실립니다. - 오류 — 날짜 형식이 틀리면 400 「date must be YYYY-MM-DD: …」, 등록부나 커넥터에 닿지 못하면 503
{종류}: {상세}.
채팅 도구 thread_today_work 는 같은 목록을 16,000자 안으로 줄여 돌려주고, 코파일럿이 답 끝에 «오늘 작업» 표와 «영향받는 고객 PO» 표를
붙입니다 → 디지털 스레드 — 연결되면 늘어나는 것
도면 참조 — RAG 가 싣는 것
RAG 의 도면 색인(DRAWING_INGEST_ENABLED, 출하 기본 꺼짐)이 켜져 있으면, RAG 는 도면을 색인할 때마다 표제란에서 읽은
도면 번호 · 판 · 품번 · 부품표 품번 · 특성 ID 를 디지털 스레드로 보냅니다. 거울에는 «이 도면 판이 이 품번을 설명한다»
는 연결만 생기고, 치수 · 재질 같은 값은 싣지 않습니다. 새 판이 들어오면 옛 판의 연결은 닫힙니다.
받을 때 디지털 스레드는 PLM 의 BOM · 설계 변경과 견줘 부품표 불일치 · 설계 변경보다 뒤진 판 · 설계 변경과 다른 판 을 가려 답합니다. 켜는 법은 환경 설정, 도면을 보는 화면은 AI 관리 콘솔 — 도면 대장 에 있습니다.
채팅 도구
| 도구 | 기본 | 하는 일 |
|---|---|---|
thread_get_timeline | 켜짐 | 객체 하나에 일어난 일을 시간순으로 |
thread_trace_links | 켜짐 | 객체가 무엇과 어떻게 이어져 있는지, 두 객체 사이의 경로 |
thread_today_work | 켜짐 | 반장의 오늘 작업 목록 — 공정마다 준비도 · 고객 주문 여유일 · 기다리는 자재 PO · 쓸 도면 판(위) |
thread_impact_range | 켜짐 | 늦은 PO · 협력사 · 설비 · 불량 로트가 어디까지 닿는지 — 작업지시 · 고객 주문 · 고객(앞으로 = 지연, 뒤로 = 품질 추적), 지난 시점(as_of)의 연결도 |
thread_interval_production | 켜짐 | 설비 이상 · 정지 구간에 그 설비에서 돈 작업지시 · 로트 · 일련번호와 그 로트가 닿는 고객(최대 31일) |
thread_explain_recovery | 켜짐 | 부품이 늦을 때 일정이 얼마나 밀리는지와 회복안(what-if). 아래 참고 |
thread_work_readiness | 켜짐 | 반장 작업 준비도 — 공정마다 GO · AT_RISK · NO_GO · UNKNOWN 과 항목별 사유 |
thread_part_revision_status | 켜짐 | 품번 · 판이 지금 써도 되는 판인지(PLM 배포 판 · 설계 변경과 대조) |
thread_check_tooling | 켜짐 | 공구 관리 커넥터에서 — 교정이 늦었거나 떨어진 계측기로 잰 측정, 작업지시에 들어간 공구, 부적합의 원인 후보가 될 마모 공구 |
MCP 게이트웨이가 이 서버를 내장 서버로 등록하고, 아홉 다 처음 발견될 때 켠 채로 들입니다(2026.10 재릴리즈(2026-10-20) — 그 전에는 코파일럿이 넷만 켰습니다). 관리자가 한 번 바꾼 값은 덮지 않고, 디지털 스레드에 새 도구가 생기면 꺼진 채 들어옵니다. 켜고 끄는 자리는 AI 관리 콘솔 › MCP 게이트웨이 › 도구 입니다 → MCP 게이트웨이 · MCP 도구 지도
today_work · work_readiness · part_revision_status · check_tooling 은 커넥터 등록부가 설정돼 있을 때만, explain_recovery 는 회복 입력을 읽을 곳이 있을 때만 목록에 나옵니다. 여기서 켜고 끈 값은
묻기와 자동화에 함께 적용됩니다 — 끈 도구는 묻기도 자동화도 쓰지 못합니다. 코파일럿 화면이 디지털 스레드를 직접 부르는 자리는 없습니다.
thread_explain_recovery 의 숫자는 디지털 스레드의 최적화 풀이기가 내고, 모델은 그것을 옮기기만 합니다.
켜진 커넥터에 따라 답에 담기는 것이 늘어납니다.
| 켜진 커넥터 | 답에 더해지는 것 |
|---|---|
| PLM · QM | 설계 변경 · 부적합 한 건마다 그것이 막은 작업과, 그 한 건이 마일스톤에 더한 지연. 시각 · 처리 · 효력을 몰라 숫자를 못 내면 숫자 없이 그 이유를 말합니다 |
SCM (mes-mcp/0.5 공급 능력) | 늦은 부품마다 협력사 능력으로 당겨 받을 수 있는지와 그때의 마일스톤 지연. 능력을 모르면 «영향만» 말하고 회복 숫자를 내지 않습니다 |
ERP erp-mcp/0.2 · MES mes-mcp/0.6 (제조 BOM) | 설계 변경 · 부적합이 막는 것을 작업지시 전체가 아니라 그 품번을 소비하는 공정으로 좁힙니다 |
| 일정 계획(APS) | 발행된 계획의 공정 일정을 회복 계산의 기준으로 씁니다 |
| 정비(CMMS) · 안전(EHS) | 예방정비 창 · 설비를 세운 고장 수리, 격리를 설비 제약으로 싣습니다 |
| 공구 관리 · 창고(WMS) | 범위 작업지시의 공구 준비 상태, 늦은 부품의 재고(가용 · 보유 · 예약 · 검사 중) |
ERP erp-mcp/0.3 (구매오더 · 고객 주문) | SCM 없이도 ERP 구매오더로 늦은 자재를 셉니다. 영향이 닿는 고객 주문 줄(customer_orders[] — 납기 · 여유일 · 위험)과, ERP · SCM 이 어긋난 PO 값(purchase_order_conflicts[])이 실립니다. 고객 주문을 못 읽으면 customer_orders_unknown_because 에 이유가 실립니다 |
없는 커넥터는 답의 «고려하지 않은 것» 에 적힙니다 — 모델은 그것을 «모른다» 로 말해야 합니다.
이 도구는 출하 기본이 켜짐입니다. 회복안이 독촉 «초안» 을 제안하면 묻기 답 밑에 행동 카드(«할 수 있는 행동»)가 붙습니다(아래 「안전장치」). 카드를 내지 않으려면 AI 관리 콘솔 › MCP 게이트웨이 › 도구 에서 이 도구를 끕니다 → MCP 게이트웨이
안전장치
디지털 스레드는 외부 시스템에 닿지만, 설비를 제어하거나 확정 기록을 쓰는 길은 없습니다.
| 장치 | 내용 |
|---|---|
| 읽기 도구 | 질의 때 부르고 돌려받은 값은 저장하지 않습니다. thread_ 채팅 도구도 모두 읽기 전용입니다 |
| 행동 도구(🔒) | 외부 시스템에 초안 · 요청을 만드는 도구입니다. 사람의 승인 없이는 불리지 않습니다 — 승인자 · 승인 시각 · 사유 · 제안 ID · 멱등 키가 없으면 서비스가 거절합니다 |
| 관리 콘솔 | 행동 도구를 부르지 않습니다(요청하면 403) |
| 코파일럿 제안 상세 | 승인하고 초안 만들기 — 권한 «승인 — 제안 카드 초안»(기본 묶음으로는 관리자만)이 있어야 승인할 수 있고 사유가 필수입니다. 그 행동을 내는 켜진 커넥터가 있을 때만 됩니다. 결과는 카드에 「초안 생성됨」 으로 남고, 확정은 그 시스템에서 사람이 합니다 |
| 채팅 행동 카드 (2026.10) | thread_explain_recovery 의 답이 독촉 초안을 제안하거나, insight_list_findings 의 답에 열린 고장 위험 발견이 있으면 붙습니다. 승인하고 실행 은 사유가 필수이고, 승인할 수 있는 사람이 업무 역할로 정해집니다 — SCM 독촉 초안은 공장장, MES 정비 요청 초안은 반장 · 정비 · 공장장, 관리자는 언제나. 물어본 사람은 자기 카드를 승인하지 못합니다(2인 승인). 제안 상세의 정비 요청 초안은 관리자만 승인합니다(기본 묶음 기준). 정비 요청 카드는 MES 커넥터가 mes_create_maintenance_request 를 낼 때만 나옵니다. 카드는 대화 주인에게만 보입니다 |
| 같은 요청 반복 | 같은 멱등 키로 다시 오면 커넥터에 다시 가지 않고 처음 만든 초안을 돌려줍니다 |
외부 시스템 커넥터는 여기 연동 지도에서만 등록합니다. 코파일럿의 옛 도구 서버(MCP) 화면은 2026.10 재릴리즈(2026-10-20) 에서 없어졌고, 거기 남아 있던 옛 등록은
그 판에서 지워집니다. MCP 게이트웨이에 외부 서버로 붙여도 커넥터 도구(mes_ · erp_ …)는 켤 수 없습니다.
옛 판에서 코파일럿에 등록해 둔 커넥터가 있었다면 끝점과 헤더 이름을 적어 두었다가 여기서 다시 등록하고 인증 값을 다시 넣으십시오 →
MCP 도구 지도
문제가 생기면
| 증상 | 원인과 할 일 |
|---|---|
| 연동 지도에 「커넥터 등록부를 쓸 수 없습니다: 503 … config_error」 | 등록부 저장소(PG)나 암호화 키(PI_DT_SECRET_KEY)가 비었습니다. 거울 화면은 그와 무관하게 돕니다 |
| 「켜기」가 안 된다 | 적합성 시험을 안 돌렸거나 떨어졌거나, 그 뒤 끝점 · 자격증명 · 도구가 바뀌었습니다 — 다시 시험합니다 |
| 등록할 때 인증 오류 | 커넥터 토큰이나 헤더 이름이 틀렸습니다 |
| 저장된 자격증명을 못 푼다는 오류 | 그 값을 봉한 키가 지금 키 · 이전 키(PI_DT_SECRET_KEY_PREVIOUS)에 없습니다. 옛 키를 이전 키 자리에 넣고 재기동하거나, 자격증명을 다시 넣습니다 |
| 그래프 거울 판정이 「실패」 | 단계별 결과와 서비스 로그를 봅니다 — bin/logs.sh plantpulse-digital-thread-api |
| 동기화했는데 설비가 거울에 없다고 나온다 | 커넥터가 대응한 설비 ID 가 플랫폼 원장에 없습니다. 투영이 돌았는지, 커넥터의 설비 대응표가 맞는지 봅니다 |
| 칸 바인딩을 바꿨는데 거울이 그대로다 | 다음 주기 동기화 전입니다 — 옆 창의 지금 동기화 를 누릅니다. DT_CONNECTOR_SYNC_ENABLED=false 인 설치는 이것만 동기화합니다 |
| 원천에서 사라진 연결이 거울에 계속 «열려» 있다 | 동기화 때 목록이 잘려 닫기를 건너뛰었습니다(노란 줄 「수집이 잘렸습니다」, 응답의 prune_skipped) — 끝까지 읽는 동기화에서 닫힙니다. 계속 잘리면 커넥터 쪽 페이지 · 한도를 봅니다 |
| ERP 판을 올렸더니 ERP 커넥터가 꺼졌다 | 선언한 판이 바뀌면 도구 발견에서 꺼집니다 — 적합성 시험 → 켜기를 다시 밟습니다 |
| 오늘 작업 · 회복안의 고객 주문이 «모름» | ERP 커넥터가 erp-mcp/0.3 의 erp_list_sales_orders 를 내지 않거나 꺼져 있습니다. 이유가 customer_orders_unknown_because 에 있습니다 |
| 커넥터 주기 동기화가 도는지 모르겠다 | 디지털 스레드 /health 의 connector_sync — 커넥터별 마지막 결과와 failing 목록 |
회복안 · 준비도가 「낡은 원천」(stale_inputs)으로 멈춘다 | 어느 커넥터의 자료가 신선도 상한보다 낡았습니다. 준비도 원천 보기의 낡음 표찰로 찾고, 그 커넥터 뒤의 원천이 멈췄는지 봅니다 |
회복안이 「MES 에서 찾지 못함」(unresolved_ids) | PLM · QM 이 가리키는 번호가 MES 에 다른 번호로 있습니다 — 동일성을 선언합니다 |
| 준비도 답이 UNKNOWN 투성이 | 원천 커넥터가 안 붙었습니다 — 준비도 원천 보기에서 없음 인 항목의 가족을 붙입니다 |
| 채팅 행동 카드가 안 나온다 | 관리자가 thread_explain_recovery 를 껐거나, 답에 초안 재료(발주 라인 · 필요일)가 없거나, 그 행동을 내는 켜진 커넥터가 없습니다 |
관련 문서
- AI 관리 콘솔 — 디지털 스레드 레일과 공통 메뉴(로그 · API 키 · 설정)
- 코파일럿 관리 콘솔 — 채팅 도구 켜고 끄기
- 디지털 스레드 — 연결되면 늘어나는 것 — 현장 사용자가 묻기에서 묻는 법
- 디지털 스레드 커넥터 — 가족별 도구 · 쓰이는 곳 · 최소 판
- MCP 도구 지도 —
thread_도구 - 환경 설정 — 도면 색인 스위치(
DRAWING_INGEST_ENABLED), 커넥터 동기화 · 신선도 상한(DT_CONNECTOR_*·DT_LINK_HISTORY_DAYS) - 사용자 권한과 업무 역할 — 행동 카드를 승인할 수 있는 사람
- 데이터베이스 관리 — 두 Neo4j 와
pi.dt