๋ฐ˜์‘ํ˜•

 

์ œ์กฐ๊ณต์ •์˜ ๋ถˆ๋Ÿ‰ ์›์ธ ๋ถ„์„(Anomaly Root Cause Analysis)์„ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•ด
Reasoning Chain ๊ธฐ๋ฐ˜ Agentic AI ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜๋ ค ํ•œ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•œ “์ด์ƒ ํƒ์ง€ → ์›์ธ ์ถ”๋ก  → ๊ทผ๊ฑฐ ๋ฌธํ—Œ ์ธ์šฉ → ์กฐ์น˜ ์ œ์•ˆ” ๊ณผ์ •์„
Agent Chain ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•˜๊ณ , ๊ฐ ๋‹จ๊ณ„์˜ ์ž…๋ ฅ·์ถœ๋ ฅ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜์‹œ์˜ค.

 

 

 

โ‘  ๋ชฉ์ 

  • ์ œ์กฐ ๋ถˆ๋Ÿ‰์˜ ์›์ธ์€ ๋‹จ์ผ ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ ๋‹ค์ˆ˜์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ณ€์ˆ˜์— ์˜ํ•ด ๋ฐœ์ƒ.
  • LLM์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ทผ๊ฑฐ๋กœ ๋…ผ๋ฆฌ์  Reasoning Chain์„ ๋”ฐ๋ผ๊ฐ€๋ฉฐ
    ์›์ธ์„ ์„ค๋ช…ํ•˜๊ณ  ๊ทผ๊ฑฐ ๋ฌธ์„œ๋ฅผ ์ธ์šฉํ•ด์•ผ ํ•จ.

โ‘ก ์ „์ฒด ๊ตฌ์กฐ

[Sensor Data] โ”€โ”€> Anomaly-Agent
                    ↓
                RootCause-Agent
                    ↓
                RAG-Agent
                    ↓
                Action-Agent
                    ↓
                Report-Agent

โ‘ข ๋‹จ๊ณ„๋ณ„ ์—ญํ• 

Agent์ž…๋ ฅ์ฒ˜๋ฆฌ ๋กœ์ง์ถœ๋ ฅ
Anomaly-Agent ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ Isolation Forest / TCN ์ด์ƒ ๊ตฌ๊ฐ„ (time range, variables)
RootCause-Agent ์ด์ƒ ๊ตฌ๊ฐ„ ๋ฐ์ดํ„ฐ ์ƒ๊ด€๋ถ„์„, SHAP, Causal Inference ์ฃผ์š” ๋ณ€์ˆ˜·์˜ํ–ฅ๋„
RAG-Agent ๋ณ€์ˆ˜๋ช…, ๊ณต์ •๋ช… ๋ฌธํ—Œ·SOP ๊ฒ€์ƒ‰ ๊ด€๋ จ ์ ˆ์ฐจ/ํ—ˆ์šฉ๋ฒ”์œ„
Action-Agent ์›์ธ+SOP ๋‚ด์šฉ ์กฐ์น˜ ์ œ์•ˆ ์ƒ์„ฑ ์กฐ์น˜ ํ…์ŠคํŠธ
Report-Agent ๋ชจ๋“  ๊ฒฐ๊ณผ ๋ฆฌํฌํŠธ ํ†ตํ•ฉ PDF/DOCX ๋ณด๊ณ ์„œ

โ‘ฃ ์˜ˆ์‹œ ์‹œ๋‚˜๋ฆฌ์˜ค

์ž…๋ ฅ: 2025-10-18 ๋ผ์ธ2 ์ˆ˜์œจ ๊ธ‰๋ฝ

Anomaly-Agent: OvenTemp(±8โ„ƒ), Speed(1.1m/s) ๊ฐ์ง€
RootCause-Agent: Corr(Temp,Yield)=−0.81 → ์ฃผ์š”์›์ธ Temp
RAG-Agent: SOP-HT-221 §3.2 ์ธ์šฉ (ํ—ˆ์šฉ ±5โ„ƒ)
Action-Agent: “์˜จ๋„ PID ์žฌํŠœ๋‹ ๋ฐ ์„ผ์„œ ์ ๊ฒ€”
Report-Agent: ๊ทผ๊ฑฐ ํฌํ•จ ๋ณด๊ณ ์„œ ์™„์„ฑ


โ‘ค LangGraph ์›Œํฌํ”Œ๋กœ ์˜ˆ์‹œ

nodes:
  - anomaly_agent
  - rootcause_agent
  - rag_agent
  - action_agent
  - report_agent
edges:
  - anomaly_agent -> rootcause_agent
  - rootcause_agent -> rag_agent
  - rag_agent -> action_agent
  - action_agent -> report_agent
  • ๊ฐ ๋…ธ๋“œ์˜ ์ถœ๋ ฅ์€ JSON ํ˜•ํƒœ๋กœ ์ „๋‹ฌ:
 
{
  "variable": "OvenTemp",
  "deviation": 8,
  "impact": 0.81,
  "sop_reference": "SOP-HT-221 §3.2",
  "recommended_action": "Adjust PID controller"
}

โ‘ฅ ๊ธฐ์ˆ ์  ํฌ์ธํŠธ

์˜์—ญ๊ธฐ์ˆ ์„ค๋ช…
์ด์ƒํƒ์ง€ IsolationForest / TCN ์‹ค์‹œ๊ฐ„ ์ด์ƒ ๊ฐ์ง€
์›์ธ์ถ”๋ก  SHAP, CausalImpact ๋ณ€์ˆ˜ ์˜ํ–ฅ๋„ ์ถ”์ •
๊ทผ๊ฑฐ๊ฒ€์ƒ‰ BM25+pgvector RAG SOP/WI ์ธ์šฉ
์กฐ์น˜์ƒ์„ฑ LLM (Instruction-tuned) ์ž์—ฐ์–ด ์กฐ์น˜ ์ƒ์„ฑ
์ฒด์ธ๊ด€๋ฆฌ LangGraph ํ”Œ๋กœ์šฐ ๋ฐ ์žฌ์‹œ๋„ ๊ด€๋ฆฌ

โ‘ฆ ํ‰๊ฐ€ ํฌ์ธํŠธ

  • ๋‹จ๊ณ„๋ณ„ ์ž…๋ ฅ/์ถœ๋ ฅ ๊ตฌ์กฐ๋ฅผ ๋ช…ํ™•ํžˆ ์ œ์‹œํ–ˆ๋Š”๊ฐ€
  • RootCause-Agent๊ฐ€ ์ˆ˜์น˜์ /๋ฌธํ—Œ์  ๊ทผ๊ฑฐ๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ–ˆ๋Š”๊ฐ€
  • ์ตœ์ข… ๋ฆฌํฌํŠธ ์ƒ์„ฑ๊นŒ์ง€์˜ Reasoning Chain์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ตฌ์„ฑํ–ˆ๋Š”๊ฐ€โ‘  ๋ชฉ์ 
    • ์ œ์กฐ ๋ถˆ๋Ÿ‰์˜ ์›์ธ์€ ๋‹จ์ผ ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ ๋‹ค์ˆ˜์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ณ€์ˆ˜์— ์˜ํ•ด ๋ฐœ์ƒ.
    • LLM์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ทผ๊ฑฐ๋กœ ๋…ผ๋ฆฌ์  Reasoning Chain์„ ๋”ฐ๋ผ๊ฐ€๋ฉฐ
      ์›์ธ์„ ์„ค๋ช…ํ•˜๊ณ  ๊ทผ๊ฑฐ ๋ฌธ์„œ๋ฅผ ์ธ์šฉํ•ด์•ผ ํ•จ.

    โ‘ก ์ „์ฒด ๊ตฌ์กฐ
    โ‘ข ๋‹จ๊ณ„๋ณ„ ์—ญํ• 
    โ‘ฃ ์˜ˆ์‹œ ์‹œ๋‚˜๋ฆฌ์˜ค
    โ‘ค LangGraph ์›Œํฌํ”Œ๋กœ ์˜ˆ์‹œ
    • ๊ฐ ๋…ธ๋“œ์˜ ์ถœ๋ ฅ์€ JSON ํ˜•ํƒœ๋กœ ์ „๋‹ฌ:
     
    {
      "variable": "OvenTemp",
      "deviation": 8,
      "impact": 0.81,
      "sop_reference": "SOP-HT-221 §3.2",
      "recommended_action": "Adjust PID controller"
    }

    โ‘ฅ ๊ธฐ์ˆ ์  ํฌ์ธํŠธ
    โ‘ฆ ํ‰๊ฐ€ ํฌ์ธํŠธ
    • ๋‹จ๊ณ„๋ณ„ ์ž…๋ ฅ/์ถœ๋ ฅ ๊ตฌ์กฐ๋ฅผ ๋ช…ํ™•ํžˆ ์ œ์‹œํ–ˆ๋Š”๊ฐ€
    • RootCause-Agent๊ฐ€ ์ˆ˜์น˜์ /๋ฌธํ—Œ์  ๊ทผ๊ฑฐ๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ–ˆ๋Š”๊ฐ€
    • ์ตœ์ข… ๋ฆฌํฌํŠธ ์ƒ์„ฑ๊นŒ์ง€์˜ Reasoning Chain์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ตฌ์„ฑํ–ˆ๋Š”๊ฐ€
  • ์˜์—ญ๊ธฐ์ˆ ์„ค๋ช…
    ์ด์ƒํƒ์ง€ IsolationForest / TCN ์‹ค์‹œ๊ฐ„ ์ด์ƒ ๊ฐ์ง€
    ์›์ธ์ถ”๋ก  SHAP, CausalImpact ๋ณ€์ˆ˜ ์˜ํ–ฅ๋„ ์ถ”์ •
    ๊ทผ๊ฑฐ๊ฒ€์ƒ‰ BM25+pgvector RAG SOP/WI ์ธ์šฉ
    ์กฐ์น˜์ƒ์„ฑ LLM (Instruction-tuned) ์ž์—ฐ์–ด ์กฐ์น˜ ์ƒ์„ฑ
    ์ฒด์ธ๊ด€๋ฆฌ LangGraph ํ”Œ๋กœ์šฐ ๋ฐ ์žฌ์‹œ๋„ ๊ด€๋ฆฌ
  • nodes:
      - anomaly_agent
      - rootcause_agent
      - rag_agent
      - action_agent
      - report_agent
    edges:
      - anomaly_agent -> rootcause_agent
      - rootcause_agent -> rag_agent
      - rag_agent -> action_agent
      - action_agent -> report_agent
  • ์ž…๋ ฅ: 2025-10-18 ๋ผ์ธ2 ์ˆ˜์œจ ๊ธ‰๋ฝ
  • Anomaly-Agent: OvenTemp(±8โ„ƒ), Speed(1.1m/s) ๊ฐ์ง€
    RootCause-Agent: Corr(Temp,Yield)=−0.81 → ์ฃผ์š”์›์ธ Temp
    RAG-Agent: SOP-HT-221 §3.2 ์ธ์šฉ (ํ—ˆ์šฉ ±5โ„ƒ)
    Action-Agent: “์˜จ๋„ PID ์žฌํŠœ๋‹ ๋ฐ ์„ผ์„œ ์ ๊ฒ€”
    Report-Agent: ๊ทผ๊ฑฐ ํฌํ•จ ๋ณด๊ณ ์„œ ์™„์„ฑ
  • Agent์ž…๋ ฅ์ฒ˜๋ฆฌ ๋กœ์ง์ถœ๋ ฅ
    Anomaly-Agent ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ Isolation Forest / TCN ์ด์ƒ ๊ตฌ๊ฐ„ (time range, variables)
    RootCause-Agent ์ด์ƒ ๊ตฌ๊ฐ„ ๋ฐ์ดํ„ฐ ์ƒ๊ด€๋ถ„์„, SHAP, Causal Inference ์ฃผ์š” ๋ณ€์ˆ˜·์˜ํ–ฅ๋„
    RAG-Agent ๋ณ€์ˆ˜๋ช…, ๊ณต์ •๋ช… ๋ฌธํ—Œ·SOP ๊ฒ€์ƒ‰ ๊ด€๋ จ ์ ˆ์ฐจ/ํ—ˆ์šฉ๋ฒ”์œ„
    Action-Agent ์›์ธ+SOP ๋‚ด์šฉ ์กฐ์น˜ ์ œ์•ˆ ์ƒ์„ฑ ์กฐ์น˜ ํ…์ŠคํŠธ
    Report-Agent ๋ชจ๋“  ๊ฒฐ๊ณผ ๋ฆฌํฌํŠธ ํ†ตํ•ฉ PDF/DOCX ๋ณด๊ณ ์„œ
  • [Sensor Data] โ”€โ”€> Anomaly-Agent
                        ↓
                    RootCause-Agent
                        ↓
                    RAG-Agent
                        ↓
                    Action-Agent
                        ↓
                    Report-Agent
๋ฐ˜์‘ํ˜•

+ Recent posts