Skip to main content
Agent가 하길 바라는 것 중에는 떠올릴 사실이 아니라 지킬 인 것이 있습니다. 절차적 메모리가 이를 일급 항목으로 담아 알맞은 순간에 넣어 줍니다.

  • “환불하기 전에 주문 상태를 항상 확인.”
  • “고객 티어를 확인하지 않고는 가격 정보를 절대 공유하지 않기.”
  • “배포 전 린터 실행, 에러면 중단.”
  • “사용자가 경쟁사를 말하면 세일즈로 넘김.”
각각이 트리거 조건과 기대 동작을 가진 룰입니다.

룰의 구성

  • Trigger 조건입니다. 이런 게 됩니다.
    • 의미형(“사용자가 가격을 물으면”).
    • 구조형(“refund 도구 호출 전”).
    • 이벤트형(“낮은 확신 리트리벌이 일어나면”).
  • Action 무엇이 일어나야 하는지. 보통 Agent가 따를 지시입니다.
  • Scope 스코핑 참고. 전역, 테넌트별, 사용자별.
  • Priority 부딪히면 높은 우선순위가 낮은 걸 덮어씁니다.

룰이 가는 곳

Wiki 스페이스에 type = rule로 더합니다. 아니면 전용 절차 스페이스를 씁니다. Agent는 턴마다 룰을 읽습니다. 리트리벌에 맡기지 않죠. 높은 우선순위 룰은 늘 컨텍스트 안에 있습니다.

룰 쓰기

룰은 구조화된 노트일 뿐입니다. Wiki 에디터에서 Rule 템플릿을 씁니다.
또는 자유롭게 쓰고 Nora가 구조를 파싱하게 두면, 텍스트에서 트리거와 액션을 뽑아냅니다.

도구로

Agent는 사실을 쓰는 것과 같은 방식으로 룰을 쓸 수 있습니다. remember_rule 도구로요. Agent가 교정에서 룰을 배울 때 좋습니다.
사용자: 가격이 최종이라고 말하면 안 돼. 항상 부가세 전이라고 밝혀. Agent: [룰 쓰기: “가격 답변에서 ‘부가세 전’ 을 밝힘”]

리뷰어로

Approvals 큐에서 리뷰어가 교정을 룰로 바꿀 수 있습니다.
  • Agent 액션을 이유와 함께 거부합니다.
  • 교정에서 Save as rule을 누릅니다.
  • 관련 메모리 스페이스에 룰이 더해져, 앞으로 모든 실행에 적용됩니다.

룰 충돌

같은 턴에 두 룰이 다른 액션으로 걸리면 우선순위가 정합니다. 우선순위가 같으면 두 액션 다 Agent에 뜨고, Agent가 둘 다 다루는 응답을 짭니다.

룰 은퇴

룰은 inactive로 표시하거나(참고용으로 남기고 더는 적용 안 함), (노트·문서처럼) 대체할 수 있습니다. 대체된 룰은 리트리벌에서 빠지고, inactive 룰은 조회는 되지만 걸리지 않습니다.

트레이스에서 룰 살피기

턴에서 걸린 룰이 모두 모델 호출 위 트레이스에 뜹니다.
  • 맞은 트리거.
  • 프롬프트에 넣은 액션.
  • Agent 동작이 룰과 맞았는지.
룰이 계속 걸리는데 Agent가 무시하면 그게 신호입니다. 룰이 틀렸거나 흐릿하거나 프롬프트와 부딪히는 것이죠.