Feedback
追加バージョン: @mastra/core@1.18.0
Feedback API は、評価、賛否、コメント、訂正など、人間が介在する Observability シグナルを保存してクエリします。使用パターンについては、Feedback ガイドを参照してください。
使用例使用例への直接リンク
次の例では、Observability エントリーポイントを介して永続化された Trace の評価を記録します。エントリーポイントの addFeedback() は省略可能なため、呼び出す前に、アクティブな Observability 実装が対応していることを確認してください。
if (!mastra.observability.addFeedback) {
throw new Error('Feedback is not supported by the active observability implementation')
}
await mastra.observability.addFeedback({
traceId: 'trace-123',
spanId: 'span-456',
feedback: {
feedbackSource: 'user',
feedbackType: 'rating',
value: 1,
comment: 'Helpful answer.',
},
})
Feedback の作成Feedback の作成への直接リンク
addFeedback(args)addfeedbackargsへの直接リンク
Observability エントリーポイントを介して、永続化された Trace または Span に Feedback を追加します。
await mastra.observability.addFeedback?.({
traceId: 'trace-123',
spanId: 'span-456',
feedback: {
feedbackSource: 'user',
feedbackType: 'rating',
value: 1,
comment: 'Helpful answer.',
},
})
traceId?:
spanId?:
correlationContext?:
feedback:
createFeedback(args)createfeedbackargsへの直接リンク
Observability の storage domain を介して、1件の Feedback レコードを作成します。ストレージレベルの呼び出しはストアへ直接書き込むため、timestamp を含めてください。
await observability.createFeedback({
feedback: {
feedbackId: 'feedback-1',
timestamp: new Date(),
traceId: 'trace-123',
spanId: 'span-456',
feedbackSource: 'user',
feedbackType: 'rating',
value: 1,
comment: 'Helpful answer.',
},
})
HTTP および Client SDK の作成ルートは CreateFeedbackBody を受け取り、サーバー側で timestamp を設定します。feedbackId を省略した場合は生成します。
await mastraClient.createFeedback({
feedback: {
traceId: 'trace-123',
spanId: 'span-456',
feedbackSource: 'user',
feedbackType: 'rating',
value: 1,
},
})
batchCreateFeedback(args)batchcreatefeedbackargsへの直接リンク
Observability の storage domain を介して、複数の Feedback レコードを作成します。このメソッドは HTTP ルートや @mastra/client-js では公開されていません。
await observability.batchCreateFeedback({
feedbacks: [
{
feedbackId: 'feedback-1',
timestamp: new Date(),
traceId: 'trace-123',
feedbackSource: 'user',
feedbackType: 'rating',
value: 1,
},
{
feedbackId: 'feedback-2',
timestamp: new Date(),
traceId: 'trace-123',
feedbackSource: 'qa',
feedbackType: 'comment',
value: 'Needs a citation before shipping.',
},
],
})
Feedback の一覧取得Feedback の一覧取得への直接リンク
listFeedback(args?)listfeedbackargsへの直接リンク
ページモードまたは差分モードで Feedback レコードを返します。
const response = await mastraClient.listFeedback({
filters: {
feedbackType: 'rating',
feedbackSource: 'studio',
},
pagination: { page: 0, perPage: 20 },
orderBy: { field: 'timestamp', direction: 'DESC' },
})
mode?:
filters?:
pagination?:
page はゼロ始まりです。orderBy?:
after?:
limit?:
OLAP クエリOLAP クエリへの直接リンク
OLAP Feedback クエリは数値の value フィールドを対象とします。
getFeedbackAggregate(args)getfeedbackaggregateargsへの直接リンク
集計された Feedback 値を1つ返します。
const response = await mastraClient.getFeedbackAggregate({
feedbackType: 'rating',
feedbackSource: 'user',
aggregation: 'avg',
comparePeriod: 'previous_day',
})
feedbackType:
feedbackSource?:
aggregation:
filters?:
comparePeriod?:
getFeedbackBreakdown(args)getfeedbackbreakdownargsへの直接リンク
ディメンション別にグループ化した Feedback 値を返します。
const response = await mastraClient.getFeedbackBreakdown({
feedbackType: 'rating',
groupBy: ['entityName'],
aggregation: 'avg',
})
getFeedbackTimeSeries(args)getfeedbacktimeseriesargsへの直接リンク
間隔ごとにバケット化した Feedback 値を返します。
const response = await mastraClient.getFeedbackTimeSeries({
feedbackType: 'rating',
interval: '1h',
aggregation: 'avg',
groupBy: ['feedbackSource'],
})
getFeedbackPercentiles(args)getfeedbackpercentilesargsへの直接リンク
間隔ごとにバケット化したパーセンタイル値を返します。
const response = await mastraClient.getFeedbackPercentiles({
feedbackType: 'rating',
percentiles: [0.5, 0.95],
interval: '1d',
})
型型への直接リンク
FeedbackRecordfeedbackrecordへの直接リンク
feedbackId?:
timestamp:
traceId?:
spanId?:
feedbackSource?:
source?:
feedbackSource の非推奨エイリアス。feedbackType:
value:
comment?:
feedbackUserId?:
sourceId?:
metadata?:
共有コンテキストフィールド共有コンテキストフィールドへの直接リンク
Feedback レコードには、フィルタリング、グループ化、および Trace、ログ、メトリクス、Score との関連付けに使用する共有 Observability コンテキストフィールドを含められます。
entityType?:
entityId?:
entityName?:
parentEntityType?:
parentEntityId?:
parentEntityName?:
rootEntityType?:
rootEntityId?:
rootEntityName?:
userId?:
organizationId?:
resourceId?:
runId?:
sessionId?:
threadId?:
requestId?:
environment?:
serviceName?:
scope?:
entityVersionId?:
parentEntityVersionId?:
rootEntityVersionId?:
experimentId?:
executionSource?:
FeedbackInputfeedbackinputへの直接リンク
FeedbackInput は、mastra.observability.addFeedback()、recordedTrace.addFeedback()、recordedSpan.addFeedback() で使用します。
feedbackSource?:
source?:
feedbackSource の非推奨エイリアス。feedbackType:
value:
comment?:
feedbackUserId?:
userId?:
feedbackUserId の非推奨エイリアス。metadata?:
experimentId?:
sourceId?:
FeedbackFilterfeedbackfilterへの直接リンク
FeedbackFilter は、listFeedback() および OLAP クエリの filters で使用します。
timestamp?:
traceId?:
spanId?:
feedbackType?:
feedbackSource?:
source?:
feedbackSource の非推奨エイリアス。feedbackUserId?:
entityType?:
entityName?:
entityVersionId?:
parentEntityType?:
parentEntityName?:
parentEntityVersionId?:
rootEntityType?:
rootEntityName?:
rootEntityVersionId?:
userId?:
organizationId?:
resourceId?:
runId?:
sessionId?:
threadId?:
requestId?:
serviceName?:
environment?:
executionSource?:
experimentId?:
HTTP ルートHTTP ルートへの直接リンク
| メソッド | パス | 用途 | 権限 |
|---|---|---|---|
GET | /api/observability/feedback | Feedback レコードの一覧取得 | 導出なし |
POST | /api/observability/feedback | Feedback レコードの作成 | 導出なし |
POST | /api/observability/feedback/aggregate | 集計値を1つ返す | observability:read |
POST | /api/observability/feedback/breakdown | Feedback をディメンション別にグループ化 | observability:read |
POST | /api/observability/feedback/timeseries | Feedback を間隔ごとにバケット化 | observability:read |
POST | /api/observability/feedback/percentiles | パーセンタイル系列を返す | observability:read |