모델은 브랜드 이름이 아니야
채팅 제품은 모델을 성격으로 팔아. 루프를 소유하려는 하네스는 그 명사를 쪼개야 해. Firebrand는 그 쪼갬을 레그라고 해. 닿을 수 있는 엔드포인트, 들여보내는 인증 출처, 그 벤더의 선을 하나의 이벤트 계약으로 바꾸는 방언. 루프는 레그에게 스트림을 부탁해. 벤더가 누구인지는 안 물어.
그래서 브레인을 하나 더한다고 엔진을 다시 쓰지 않아. stream()을 구현한 모듈을 넣고, 방언을 고르거나 쓰고, 입장이 어떻게 되는지 선언하고, 종류로 등록해. 조립과 실행과 기록 경로는 그대로야. 벤더를 더할 때마다 루프에 if가 필요하면, 루프는 이미 벤더 거야.
번역기는 방언뿐이야
어떤 벤더는 도구 호출 객체를 한 덩어리로 보내. 어떤 벤더는 인자 문자열 조각을 인덱스로 흘려. 어떤 벤더는 블록 시작과 증분과 끝을 써. 루프는 그 모양을 안 배워. text_delta와 tool_call_end(complete=True)와, 선상의 이유와 실제로 도착한 블록을 같이 보고 만든 정지 이유만 배워. 끝 이벤트 전에 운송이 죽으면 cut이지, 추측이 아니야.
입장 등급
모든 레그가 세션 머리를 맡는 건 아니야. 운전 가능 레그는 스트림하고 도구를 부르고 사용량을 세. 일꾼 전용 레그는 묶인 자식 일만 해. 슬며시 운전을 시작하는 일꾼은 변장한 두 번째 루프야. 에이전트 등급 레그는 선언된 면제야. 벤더 런타임이 턴을 갖고, Firebrand는 관찰한 것을 적고, 그런 레그는 클린룸 머리를 못 맡아.