함수: mergeAgentTools()
호출 시그니처
function mergeAgentTools<TServerTools>(serverTools, clientTools): TServerTools;
정의 위치: packages/ai/src/utilities/chat-params.ts:355
요청 본문에서 받은 서버 측 도구 배열과 AG-UI 클라이언트 선언 도구를 병합합니다.
규칙:
- 이름이 충돌하면 서버 도구가 우선합니다. 서버에 이미 해당 이름의 도구가 있으면 클라이언트 선언은 무시됩니다. 스트리밍된 도구 결과 이벤트가 전달될 때 클라이언트 측 UI 핸들러는 여전히 실행되므로(
chat-client.tsonToolCall참조), "서버 실행 후 클라이언트도 처리" 의미가 자동으로 유지됩니다. - 클라이언트 전용 도구(
serverTools에 이름이 없음)는 실행하지 않는 항목이 됩니다. 런타임의 기존ClientToolRequest경로가 이를 처리합니다. 서버가 도구 호출 요청을 보내고, 클라이언트가 등록된 핸들러로 실행한 다음 결과를 다시 게시합니다.
타입 지정:
- 비어 있는
clientTools는 서버 튜플(닫힌 이름 유니언)을 유지합니다. - 비어 있지 않은
clientTools는 클라이언트 스텁을 정직하게 포함하는 확장 배열을 반환하므로, 병합된 배열은 서버 전용의 닫힌 이름 유니언이라고 주장하지 않습니다.
타입 매개변수
TServerTools
TServerTools extends readonly AnyTool[]
매개변수
serverTools
TServerTools
서버의 도구 배열입니다(예: [myToolDef.server(...)]). chat({ tools })에 직접 전달합니다.
clientTools
readonly []
chatParamsFromRequest(...)/chatParamsFromRequestBody(...)에서 받은 tools 배열입니다.
반환값
TServerTools
chat({ tools })에 적합한 병합 배열입니다.
호출 시그니처
function mergeAgentTools<TServerTools>(serverTools, clientTools): MergedAgentTools<TServerTools>;
정의 위치: packages/ai/src/utilities/chat-params.ts:358
요청 본문에서 받은 서버 측 도구 배열과 AG-UI 클라이언트 선언 도구를 병합합니다.
규칙:
- 이름이 충돌하면 서버 도구가 우선합니다. 서버에 이미 해당 이름의 도구가 있으면 클라이언트 선언은 무시됩니다. 스트리밍된 도구 결과 이벤트가 전달될 때 클라이언트 측 UI 핸들러는 여전히 실행되므로(
chat-client.tsonToolCall참조), "서버 실행 후 클라이언트도 처리" 의미가 자동으로 유지됩니다. - 클라이언트 전용 도구(
serverTools에 이름이 없음)는 실행하지 않는 항목이 됩니다. 런타임의 기존ClientToolRequest경로가 이를 처리합니다. 서버가 도구 호출 요청을 보내고, 클라이언트가 등록된 핸들러로 실행한 다음 결과를 다시 게시합니다.
타입 지정:
- 비어 있는
clientTools는 서버 튜플(닫힌 이름 유니언)을 유지합니다. - 비어 있지 않은
clientTools는 클라이언트 스텁을 정직하게 포함하는 확장 배열을 반환하므로, 병합된 배열은 서버 전용의 닫힌 이름 유니언이라고 주장하지 않습니다.
타입 매개변수
TServerTools
TServerTools extends readonly AnyTool[]
매개변수
serverTools
TServerTools
서버의 도구 배열입니다(예: [myToolDef.server(...)]). chat({ tools })에 직접 전달합니다.
clientTools
readonly object[]
chatParamsFromRequest(...)/chatParamsFromRequestBody(...)에서 받은 tools 배열입니다.
반환값
MergedAgentTools<TServerTools>
chat({ tools })에 적합한 병합 배열입니다.