> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 클래스: WeaveClient

> TypeScript SDK 레퍼런스

[weave](../) / WeaveClient

<div id="table-of-contents">
  ## 목차
</div>

<div id="constructors">
  ### 생성자
</div>

* [생성자](./weaveclient#constructor)

<div id="properties">
  ### 속성
</div>

* [projectId](./weaveclient#projectid)
* [settings](./weaveclient#settings)
* [traceServerApi](./weaveclient#traceserverapi)

<div id="methods">
  ### 메서드
</div>

* [addScore](./weaveclient#addscore)
* [createCall](./weaveclient#createcall)
* [finishCall](./weaveclient#finishcall)
* [finishCallWithException](./weaveclient#finishcallwithexception)
* [get](./weaveclient#get)
* [getAgentCustomAttributes](./weaveclient#getagentcustomattributes)
* [getAgentSpanStats](./weaveclient#getagentspanstats)
* [getAgentSpans](./weaveclient#getagentspans)
* [getAgentTurn](./weaveclient#getagentturn)
* [getAgentTurns](./weaveclient#getagentturns)
* [getAgentVersions](./weaveclient#getagentversions)
* [getAgents](./weaveclient#getagents)
* [getCall](./weaveclient#getcall)
* [getCallStack](./weaveclient#getcallstack)
* [getCalls](./weaveclient#getcalls)
* [getCallsIterator](./weaveclient#getcallsiterator)
* [getCurrentAttributes](./weaveclient#getcurrentattributes)
* [linkPromptToRegistry](./weaveclient#linkprompttoregistry)
* [publish](./weaveclient#publish)
* [pushNewCall](./weaveclient#pushnewcall)
* [runWithAttributes](./weaveclient#runwithattributes)
* [runWithCallStack](./weaveclient#runwithcallstack)
* [saveCallEnd](./weaveclient#savecallend)
* [saveCallStart](./weaveclient#savecallstart)
* [saveOp](./weaveclient#saveop)
* [searchAgents](./weaveclient#searchagents)
* [serializeAudio](./weaveclient#serializeaudio)
* [updateCall](./weaveclient#updatecall)
* [waitForBatchProcessing](./weaveclient#waitforbatchprocessing)

## 생성자

<div id="constructors">
  ### 생성자
</div>

• **new WeaveClient**(`«destructured»`): [`WeaveClient`](./weaveclient)

<div id="parameters">
  #### 매개변수
</div>

| 이름                 | 유형                                     |
| :----------------- | :------------------------------------- |
| `«destructured»`   | `객체`                                   |
| › `projectId`      | `string`                               |
| › `settings?`      | `Partial`\<[`Settings`](../#settings)> |
| › `traceServerApi` | `Api`\<`any`>                          |

<div id="returns">
  #### 반환값
</div>

[`WeaveClient`](./weaveclient)

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:459](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L459)

## 속성

<div id="projectid">
  ### projectId
</div>

• **projectId**: `string`

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:456](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L456)

***

<div id="settings">
  ### settings
</div>

• **settings**: [`Settings`](../#settings)

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:457](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L457)

***

<div id="traceserverapi">
  ### traceServerApi
</div>

• **traceServerApi**: `Api`\<`any`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:455](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L455)

## 메서드

<div id="addscore">
  ### addScore
</div>

▸ **addScore**(`predictCallId`, `scorerCallId`, `runnableRefUri`, `scorerOutput`): `Promise`\<`string`>

call에 scorer 결과(예: scorer 출력)를 추가합니다.
명령형 평가에서 scorer 결과를 predict call에 연결할 때 사용됩니다.

<div id="parameters">
  #### 매개변수
</div>

| 이름               | 유형       | 설명                            |
| :--------------- | :------- | :---------------------------- |
| `predictCallId`  | `string` | 피드백을 연결할 predict call의 ID     |
| `scorerCallId`   | `string` | 피드백을 생성한 scorer call의 ID      |
| `runnableRefUri` | `string` | scorer의 URI(Op 또는 Object ref) |
| `scorerOutput`   | `any`    | scorer의 출력값                   |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`string`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1727](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1727)

***

<div id="createcall">
  ### createCall
</div>

▸ **createCall**(`internalCall`, `opRef`, `params`, `parameterNames`, `thisArg`, `currentCall`, `parentCall`, `startTime`, `displayName?`, `attributes?`): `Promise`\<`void`>

<div id="parameters">
  #### 매개변수
</div>

| 이름               | 유형                         |                  |
| :--------------- | :------------------------- | ---------------- |
| `internalCall`   | `InternalCall`             |                  |
| `opRef`          | `any`                      |                  |
| `params`         | `any`\[]                   |                  |
| `parameterNames` | `ParameterNamesOption`     |                  |
| `thisArg`        | `any`                      |                  |
| `currentCall`    | `CallStackEntry`           |                  |
| `parentCall`     | `undefined`                | `CallStackEntry` |
| `startTime`      | `Date`                     |                  |
| `displayName?`   | `string`                   |                  |
| `attributes?`    | `Record`\<`string`, `any`> |                  |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`void`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1570](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1570)

***

<div id="finishcall">
  ### finishCall
</div>

▸ **finishCall**(`call`, `result`, `currentCall`, `parentCall`, `summarize`, `endTime`, `startCallPromise`): `Promise`\<`void`>

<div id="parameters">
  #### 매개변수
</div>

| 이름                 | 유형                 |                                                 |
| :----------------- | :----------------- | ----------------------------------------------- |
| `call`             | `InternalCall`     |                                                 |
| `result`           | `any`              |                                                 |
| `currentCall`      | `CallStackEntry`   |                                                 |
| `parentCall`       | `undefined`        | `CallStackEntry`                                |
| `summarize`        | `undefined`        | (`result`: `any`) => `Record`\<`string`, `any`> |
| `endTime`          | `Date`             |                                                 |
| `startCallPromise` | `Promise`\<`void`> |                                                 |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`void`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1630](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1630)

***

<div id="finishcallwithexception">
  ### finishCallWithException
</div>

▸ **finishCallWithException**(`call`, `error`, `currentCall`, `parentCall`, `endTime`, `startCallPromise`): `Promise`\<`void`>

<div id="parameters">
  #### 매개변수
</div>

| 이름                 | 유형                 |                  |
| :----------------- | :----------------- | ---------------- |
| `call`             | `InternalCall`     |                  |
| `error`            | `any`              |                  |
| `currentCall`      | `CallStackEntry`   |                  |
| `parentCall`       | `undefined`        | `CallStackEntry` |
| `endTime`          | `Date`             |                  |
| `startCallPromise` | `Promise`\<`void`> |                  |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`void`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1672](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1672)

***

<div id="get">
  ### get
</div>

▸ **get**(`ref`): `Promise`\<`any`>

<div id="parameters">
  #### 매개변수
</div>

| 이름    | 유형                         |
| :---- | :------------------------- |
| `ref` | [`ObjectRef`](./objectref) |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`any`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1025](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1025)

***

<div id="getagentcustomattributes">
  ### getAgentCustomAttributes
</div>

▸ **getAgentCustomAttributes**(`options`): `Promise`\<[`Response`](../#response)\<`GetAgentCustomAttributesResult`>>

프로젝트의 에이전트 span에서 관찰된 유형 지정 맞춤형 속성 키를 조회합니다. 각 결과 행은 `(source, key, value_type)` 트리플 하나와 해당 값을 가진 span 수로 구성되며, spans query/group/stats API는 이 정보를 사용해 맞춤형 속성을 참조합니다.

고려할 span을 필터링하려면 `query`(구조화된 span 필터), `startedAfter` / `startedBefore`(ISO-8601), 또는 둘 다를 전달하세요. 발견된 키를 페이지별로 보려면 `limit` / `offset`을 사용하세요.

<div id="parameters">
  #### 매개변수
</div>

| 이름        | 유형                                |
| :-------- | :-------------------------------- |
| `options` | `GetAgentCustomAttributesOptions` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<[`Response`](../#response)\<`GetAgentCustomAttributesResult`>>

`예시`

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgentCustomAttributes({
  query: {
    $expr: {
      $eq: [{$getField: 'agent_name'}, {$literal: 'my-agent'}],
    },
  },
  startedAfter: '2026-06-15T00:00:00Z',
  limit: 200,
});

for (const attr of resp.data.attributes ?? []) {
  console.log(`${attr.source}.${attr.key} (${attr.value_type}): ${attr.span_count}`);
}
```

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:772](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L772)

***

<div id="getagentspanstats">
  ### getAgentSpanStats
</div>

▸ **getAgentSpanStats**(`options`): `Promise`\<[`Response`](../#response)\<`GetAgentSpanStatsResult`>>

프로젝트의 에이전트 spans를 집계하며, 시계열 / 버킷 기반 시각화에 적합한 행 + 열 메타데이터 형태로 반환합니다.

`start`(필수)와 `end`는 시간 범위를 정의합니다. `metrics`의 각 항목은
추출할 필드와 집계 방식(`sum`,
`avg`, `count`, 백분위수 등)을 지정합니다. `granularity`(초)를 전달하면
행을 시간 기준으로 버킷화하고, `groupBy`를 전달하면 결과를 에이전트 /
공급자 / 모델 / 기타 기준별로 나눌 수 있습니다. `query`는 집계 전에
기본 spans를 필터링합니다.

<div id="parameters">
  #### 매개변수
</div>

| 이름        | 유형                         |
| :-------- | :------------------------- |
| `options` | `GetAgentSpanStatsOptions` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<[`Response`](../#response)\<`GetAgentSpanStatsResult`>>

`예시`

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgentSpanStats({
  start: '2026-06-10T00:00:00Z',
  end: '2026-06-23T00:00:00Z',
  granularity: 86400, // 하루에 한 행
  metrics: [
    {
      alias: 'total_input_tokens',
      value_type: 'number',
      aggregations: ['sum'],
      value: {source: 'field', key: 'input_tokens'},
    },
  ],
  groupBy: [{key: 'agent_name'}],
});

for (const row of resp.data.rows ?? []) {
  console.log(row.started_at_bucket, row.agent_name, row.total_input_tokens);
}
```

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:621](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L621)

***

<div id="getagentspans">
  ### getAgentSpans
</div>

▸ **getAgentSpans**(`options`): `Promise`\<[`Response`](../#response)\<[`GetAgentSpansResult`](../#getagentspansresult)>>

에이전트 이름 및/또는 Mongo 스타일
쿼리 표현식으로 선택적으로 필터링하여 에이전트 span을 조회합니다.

<div id="parameters">
  #### 매개변수
</div>

| 이름        | 유형                                                           |
| :-------- | :----------------------------------------------------------- |
| `options` | [`GetAgentSpansOptions`](../interfaces/getagentspansoptions) |

<div id="returns">
  #### 반환값
</div>

`Promise`\<[`Response`](../#response)\<[`GetAgentSpansResult`](../#getagentspansresult)>>

`예시`

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgentSpans({agentName: 'my-agent', limit: 20});

for (const span of resp.data.spans) {
  console.log(span.span_id, span.span_name, span.input_tokens);
}
```

`예시`

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');

const resp = await client.getAgentSpans({
  agentName: 'my-agent',
  query: {
    $expr: {$gt: [{$getField: 'input_tokens'}, {$literal: 1000}]},
  },
});

for (const span of resp.data.spans) {
  console.log(span.span_id, span.span_name, span.input_tokens);
}
```

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:566](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L566)

***

<div id="getagentturn">
  ### getAgentTurn
</div>

▸ **getAgentTurn**(`options`): `Promise`\<[`Response`](../#response)\<`AgentTraceChatRes`>>

`traceId`를 기준으로 단일 턴의 데이터(메시지 포함)를 조회합니다.

<div id="parameters">
  #### 매개변수
</div>

| 이름        | 유형                                                         |
| :-------- | :--------------------------------------------------------- |
| `options` | [`GetAgentTurnOptions`](../interfaces/getagentturnoptions) |

<div id="returns">
  #### 반환값
</div>

`Promise`\<[`Response`](../#response)\<`AgentTraceChatRes`>>

`예시`

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgentTurn({
  traceId: '01997b8a-2c89-7c4d-9d0e-2f7e5b9a1b2c',
  includeFeedback: true,
});

console.log(resp.data.root_span_name, resp.data.total_duration_ms);

for (const message of resp.data.messages ?? []) {
  if (message.user_message) console.log('user:', message.user_message);
  if (message.assistant_message) console.log('assistant:', message.assistant_message);
}
```

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:655](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L655)

***

<div id="getagentturns">
  ### getAgentTurns
</div>

▸ **getAgentTurns**(`options`): `Promise`\<[`Response`](../#response)\<[`GetAgentTurnsResult`](../#getagentturnsresult)>>

conversationId를 기준으로 여러 턴의 데이터(메시지 포함)를 조회합니다.

<div id="parameters">
  #### 매개변수
</div>

| 이름        | 유형                                                           |
| :-------- | :----------------------------------------------------------- |
| `options` | [`GetAgentTurnsOptions`](../interfaces/getagentturnsoptions) |

<div id="returns">
  #### 반환값
</div>

`Promise`\<[`Response`](../#response)\<[`GetAgentTurnsResult`](../#getagentturnsresult)>>

`예시`

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgentTurns({
  conversationId: 'trace_c50312356de3487fa90e381c9399b5b4',
  limit: 20,
  includeFeedback: true,
});

for (const turn of resp.data.turns ?? []) {
  console.log(turn.trace_id, turn.root_span_name);
  for (const message of turn.messages ?? []) {
    if (message.user_message) console.log('user:', message.user_message);
    if (message.assistant_message) console.log('assistant:', message.assistant_message);
  }
}

console.log(`total turns: ${resp.data.total_turns}, has more: ${resp.data.has_more}`);
```

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:688](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L688)

***

<div id="getagentversions">
  ### getAgentVersions
</div>

▸ **getAgentVersions**(`options`): `Promise`\<[`Response`](../#response)\<[`GetAgentVersionsResult`](../#getagentversionsresult)>>

특정 에이전트의 버전 목록을 조회합니다.

<div id="parameters">
  #### 매개변수
</div>

| 이름        | 유형                                                                 |
| :-------- | :----------------------------------------------------------------- |
| `options` | [`GetAgentVersionsOptions`](../interfaces/getagentversionsoptions) |

<div id="returns">
  #### 반환값
</div>

`Promise`\<[`Response`](../#response)\<[`GetAgentVersionsResult`](../#getagentversionsresult)>>

`예시`

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgentVersions({agentName: 'my-agent', limit: 20});

for (const version of resp.data.versions) {
  console.log(version.agent_version, version.total_input_tokens);
}

console.log(`total count: ${resp.data.total_count}`)
```

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:522](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L522)

***

<div id="getagents">
  ### getAgents
</div>

▸ **getAgents**(`options?`): `Promise`\<[`Response`](../#response)\<[`GetAgentsResult`](../#getagentsresult)>>

집계 통계가 포함된 에이전트 목록을 조회합니다.

<div id="parameters">
  #### 매개변수
</div>

| 이름        | 유형                                                   |
| :-------- | :--------------------------------------------------- |
| `options` | [`GetAgentsOptions`](../interfaces/getagentsoptions) |

<div id="returns">
  #### 반환값
</div>

`Promise`\<[`Response`](../#response)\<[`GetAgentsResult`](../#getagentsresult)>>

`예시`

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.getAgents({limit: 20});

for (const agent of resp.data.agents) {
  console.log(agent.agent_name, agent.total_input_tokens);
}

console.log(`total count: ${resp.data.total_count}`)
```

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:488](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L488)

***

<div id="getcall">
  ### getCall
</div>

▸ **getCall**(`callId`, `includeCosts?`): `Promise`\<`Call`>

<div id="parameters">
  #### 매개변수
</div>

| 이름             | 유형        | 기본값         |
| :------------- | :-------- | :---------- |
| `callId`       | `string`  | `undefined` |
| `includeCosts` | `boolean` | `false`     |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`Call`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:902](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L902)

***

<div id="getcallstack">
  ### getCallStack
</div>

▸ **getCallStack**(): `CallStack`

<div id="returns">
  #### 반환값
</div>

`CallStack`

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1482](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1482)

***

<div id="getcalls">
  ### getCalls
</div>

▸ **getCalls**(`options?`): `Promise`\<`Call`\[]>

<div id="parameters">
  #### 매개변수
</div>

| 이름         | 유형                                                 |
| :--------- | :------------------------------------------------- |
| `options?` | [`GetCallsOptions`](../interfaces/getcallsoptions) |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`Call`\[]>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:935](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L935)

▸ **getCalls**(`options?`, `includeCosts?`, `limit?`): `Promise`\<`Call`\[]>

<div id="parameters">
  #### 매개변수
</div>

| 이름              | 유형                                         |
| :-------------- | :----------------------------------------- |
| `options?`      | [`CallsFilter`](../interfaces/callsfilter) |
| `includeCosts?` | `boolean`                                  |
| `limit?`        | `number`                                   |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`Call`\[]>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:936](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L936)

***

<div id="getcallsiterator">
  ### getCallsIterator
</div>

▸ **getCallsIterator**(`options?`, `includeCosts?`, `limit?`): `AsyncIterableIterator`\<[`CallSchema`](../interfaces/callschema), `any`, `any`>

<div id="parameters">
  #### 매개변수
</div>

| 이름              | 유형                                         |
| :-------------- | :----------------------------------------- |
| `options?`      | [`CallsFilter`](../interfaces/callsfilter) |
| `includeCosts?` | `boolean`                                  |
| `limit?`        | `number`                                   |

<div id="returns">
  #### 반환값
</div>

`AsyncIterableIterator`\<[`CallSchema`](../interfaces/callschema), `any`, `any`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:957](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L957)

▸ **getCallsIterator**(`options?`): `AsyncIterableIterator`\<[`CallSchema`](../interfaces/callschema), `any`, `any`>

<div id="parameters">
  #### 매개변수
</div>

| 이름         | 유형                                                 |
| :--------- | :------------------------------------------------- |
| `options?` | [`GetCallsOptions`](../interfaces/getcallsoptions) |

<div id="returns">
  #### 반환값
</div>

`AsyncIterableIterator`\<[`CallSchema`](../interfaces/callschema), `any`, `any`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:962](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L962)

***

<div id="getcurrentattributes">
  ### getCurrentAttributes
</div>

▸ **getCurrentAttributes**(): `Record`\<`string`, `any`>

<div id="returns">
  #### 반환값
</div>

`Record`\<`string`, `any`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1486](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1486)

***

<div id="linkprompttoregistry">
  ### linkPromptToRegistry
</div>

▸ **linkPromptToRegistry**(`prompt`, `options`): `Promise`\<`LinkAssetToRegistryRes`>

게시된 프롬프트 버전을 레지스트리 포트폴리오에 연결합니다.

<div id="parameters">
  #### 매개변수
</div>

| 이름        | 유형                            |
| :-------- | :---------------------------- |
| `prompt`  | `RegistryLinkable`            |
| `options` | `LinkPromptToRegistryOptions` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`LinkAssetToRegistryRes`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1181](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1181)

***

<div id="publish">
  ### publish
</div>

▸ **publish**(`obj`, `objId?`): `Promise`\<[`ObjectRef`](./objectref)>

<div id="parameters">
  #### 매개변수
</div>

| 이름       | 유형       |
| :------- | :------- |
| `obj`    | `any`    |
| `objId?` | `string` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<[`ObjectRef`](./objectref)>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:890](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L890)

***

<div id="pushnewcall">
  ### pushNewCall
</div>

▸ **pushNewCall**(): `객체`

<div id="returns">
  #### 반환값
</div>

`객체`

| 이름            | 유형               |
| :------------ | :--------------- |
| `currentCall` | `CallStackEntry` |
| `newStack`    | `CallStack`      |
| `parentCall?` | `CallStackEntry` |

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1490](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1490)

***

<div id="runwithattributes">
  ### runWithAttributes
</div>

▸ **runWithAttributes**\<`T`>(`attributes`, `fn`): `T`

<div id="type-parameters">
  #### 유형 매개변수
</div>

| 이름  |
| :-- |
| `T` |

<div id="parameters">
  #### 매개변수
</div>

| 이름           | 유형                         |
| :----------- | :------------------------- |
| `attributes` | `Record`\<`string`, `any`> |
| `fn`         | () => `T`                  |

<div id="returns">
  #### 반환값
</div>

`T`

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1498](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1498)

***

<div id="runwithcallstack">
  ### runWithCallStack
</div>

▸ **runWithCallStack**\<`T`>(`callStack`, `fn`): `T`

<div id="type-parameters">
  #### 유형 매개변수
</div>

| 이름  |
| :-- |
| `T` |

<div id="parameters">
  #### 매개변수
</div>

| 이름          | 유형          |
| :---------- | :---------- |
| `callStack` | `CallStack` |
| `fn`        | () => `T`   |

<div id="returns">
  #### 반환값
</div>

`T`

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1494](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1494)

***

<div id="savecallend">
  ### saveCallEnd
</div>

▸ **saveCallEnd**(`callEnd`): `void`

#### 파라미터

| 이름        | 유형                         |
| :-------- | :------------------------- |
| `callEnd` | `EndedCallSchemaForInsert` |

<div id="returns">
  #### 반환값
</div>

`void`

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1477](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1477)

***

<div id="savecallstart">
  ### saveCallStart
</div>

▸ **saveCallStart**(`callStart`): `void`

#### 파라미터

| 이름          | 유형                           |
| :---------- | :--------------------------- |
| `callStart` | `StartedCallSchemaForInsert` |

<div id="returns">
  #### 반환값
</div>

`void`

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1472](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1472)

***

<div id="saveop">
  ### saveOp
</div>

▸ **saveOp**(`op`, `objId?`): `Promise`\<`OpRef`>

<div id="parameters">
  #### 매개변수
</div>

| 이름       | 유형                                              |
| :------- | :---------------------------------------------- |
| `op`     | [`Op`](../#op)\<(...`args`: `any`\[]) => `any`> |
| `objId?` | `string`                                        |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`OpRef`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1537](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1537)

***

<div id="searchagents">
  ### searchAgents
</div>

▸ **searchAgents**(`options`): `Promise`\<[`Response`](../#response)\<`SearchAgentsResult`>>

프로젝트 내 에이전트 메시지 전체에서 전문 검색을 수행합니다. 일치 항목은 대화별로
그룹화되어 반환되며, 각 일치 메시지의 미리보기도 함께 제공됩니다.

`query`는 전문 검색어입니다. 빈 string을 전달하면 텍스트 일치 없이 구조화된 필터
(`agentName`, `conversationId`, `traceId`)에 일치하는 모든 메시지를 가져옵니다. `limit` /
`offset`을 사용해 결과를 페이지별로 확인하세요.

<div id="parameters">
  #### 매개변수
</div>

| 이름        | 유형                    |
| :-------- | :-------------------- |
| `options` | `SearchAgentsOptions` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<[`Response`](../#response)\<`SearchAgentsResult`>>

`예시`

```ts twoslash theme={null}
// @noErrors
const client = await weave.init('entity/project');
const resp = await client.searchAgents({
  query: 'Liverpool',
  agentName: 'Assistant',
  limit: 20,
});

for (const conversation of resp.data.results ?? []) {
  console.log(`${conversation.conversation_id} (${conversation.agent_name})`);
  for (const match of conversation.matched_messages) {
    console.log(`  [${match.role}] ${match.content_preview}`);
  }
}

console.log(`total conversations: ${resp.data.total_conversations}`);
```

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:730](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L730)

***

<div id="serializeaudio">
  ### serializeAudio
</div>

▸ **serializeAudio**(`data`, `audioType?`): `Promise`\<`SerializedFileBlob`>

원시 오디오 바이트를 Weave 콘텐츠 저장소에 업로드하고,
call 출력에 포함할 수 있는 `CustomWeaveType` 플레이스홀더를 반환합니다.

`finishCall`의 자동 직렬화 파이프라인을 사용하지 않는 경우
(예: `saveCallEnd`를 통해) call 출력을 수동으로 구축할 때 사용하세요.

<div id="parameters">
  #### 매개변수
</div>

| 이름          | 유형                           | 기본값                  | 설명                                  |
| :---------- | :--------------------------- | :------------------- | :---------------------------------- |
| `data`      | `Buffer`\<`ArrayBufferLike`> | `undefined`          | 원시 오디오 바이트(WAV 형식이 브라우저 호환성에 가장 좋음) |
| `audioType` | `"wav"`                      | `DEFAULT_AUDIO_TYPE` | 파일 형식 — 현재는 'wav'만 지원됩니다            |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`SerializedFileBlob`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1424](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1424)

***

<div id="updatecall">
  ### updateCall
</div>

▸ **updateCall**(`callId`, `displayName`): `Promise`\<`void`>

<div id="parameters">
  #### 매개변수
</div>

| 이름            | 유형       |
| :------------ | :------- |
| `callId`      | `string` |
| `displayName` | `string` |

<div id="returns">
  #### 반환값
</div>

`Promise`\<`void`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:1710](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L1710)

***

<div id="waitforbatchprocessing">
  ### waitForBatchProcessing
</div>

▸ **waitForBatchProcessing**(): `Promise`\<`void`>

<div id="returns">
  #### 반환값
</div>

`Promise`\<`void`>

<div id="defined-in">
  #### 정의된 위치
</div>

[src/weaveClient.ts:801](https://github.com/wandb/weave/blob/9591aba8a5e77309ee0858e5ba94d31c1bd7e404/sdks/node/src/weaveClient.ts#L801)
