Lacak proses step-by-step penalaran agen menggunakan jejak - Amazon Bedrock

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Lacak proses step-by-step penalaran agen menggunakan jejak

Setiap tanggapan dari agen Amazon Bedrock disertai dengan jejak yang merinci langkah-langkah yang diatur oleh agen. Jejak membantu Anda mengikuti proses penalaran agen yang mengarahkannya ke respons yang diberikannya pada saat itu dalam percakapan.

Gunakan jejak untuk melacak jalur agen dari input pengguna ke respons yang dikembalikan. Jejak memberikan informasi tentang input ke grup tindakan yang dipanggil agen dan basis pengetahuan yang ditanyakan untuk merespons pengguna. Selain itu, jejak memberikan informasi tentang output yang dikembalikan oleh kelompok aksi dan basis pengetahuan. Anda dapat melihat alasan yang digunakan agen untuk menentukan tindakan yang diperlukan atau kueri yang dibuatnya ke basis pengetahuan. Jika langkah dalam jejak gagal, jejak mengembalikan alasan kegagalan. Gunakan informasi terperinci dalam jejak untuk memecahkan masalah agen Anda. Anda dapat mengidentifikasi langkah-langkah di mana agen mengalami masalah atau di mana ia menghasilkan perilaku yang tidak terduga. Kemudian, Anda dapat menggunakan informasi ini untuk mempertimbangkan cara-cara di mana Anda dapat meningkatkan perilaku agen.

Struktur jejak

Jejak ditampilkan sebagai JSON objek di konsol danAPI. Setiap Langkah di konsol atau Tracedi API bisa menjadi salah satu jejak berikut:

  • PreProcessingTrace— Melacak input dan output dari langkah pra-pemrosesan, di mana agen mengontekstualisasikan dan mengkategorikan input pengguna dan menentukan apakah itu valid.

  • OrchestrationTrace— Melacak input dan output dari langkah orkestrasi, di mana agen menafsirkan input, memanggil kelompok tindakan, dan menanyakan basis pengetahuan. Kemudian agen mengembalikan output untuk melanjutkan orkestrasi atau untuk menanggapi pengguna.

  • PostProcessingTrace— Melacak input dan output dari langkah pasca-pemrosesan, di mana agen menangani output akhir orkestrasi dan menentukan bagaimana mengembalikan respons kepada pengguna.

  • FailureTrace— Melacak alasan bahwa sebuah langkah gagal.

  • GuardrailTrace— Melacak tindakan Guardrail.

Masing-masing jejak (kecualiFailureTrace) berisi ModelInvocationInputobjek. Sebuah ModelInvocationInputobjek berisi konfigurasi yang diatur dalam template prompt untuk langkah tersebut, di samping prompt yang diberikan kepada agen pada langkah ini. Untuk informasi selengkapnya tentang cara memodifikasi templat prompt, lihatTingkatkan akurasi agen menggunakan templat prompt lanjutan di Amazon Bedrock. Struktur ModelInvocationInput objek adalah sebagai berikut:

{ "traceId": "string", "text": "string", "type": "PRE_PROCESSING | ORCHESTRATION | KNOWLEDGE_BASE_RESPONSE_GENERATION | POST_PROCESSING", "inferenceConfiguration": { "maximumLength": number, "stopSequences": ["string"], "temperature": float, "topK": float, "topP": float }, "promptCreationMode": "DEFAULT | OVERRIDDEN", "parserMode": "DEFAULT | OVERRIDDEN", "overrideLambda": "string" }

Daftar berikut menjelaskan bidang ModelInvocationInputobjek:

Untuk informasi selengkapnya tentang setiap jenis jejak, lihat bagian berikut:

{ "modelInvocationInput": { // see above for details } "modelInvocationOutput": { "metadata": { "usage": { "inputToken":: int, "outputToken":: int }, "rawResponse": { "content": "string" } "parsedResponse": { "isValid": boolean, "rationale": "string" }, "traceId": "string" } }

PreProcessingTraceTerdiri dari a ModelInvocationInputObjek dan PreProcessingModelInvocationOutputobjek. Sebuah PreProcessingModelInvocationOutputberisi bidang-bidang berikut.

  • metadata- Berisi informasi berikut tentang output model pondasi.

    • usage— Berisi informasi berikut tentang penggunaan model pondasi.

      • inputTokens— Berisi informasi tentang token input dari penggunaan model foundation.

      • outputTokens— Berisi informasi tentang token keluaran dari penggunaan model foundation.

  • rawResponse- Berisi output mentah dari model pondasi.

    • content— Konten keluaran mentah model pondasi.

  • parsedResponse— Berisi rincian berikut tentang prompt pengguna yang diuraikan.

    • isValid- Menentukan apakah prompt pengguna valid.

    • rationale— Menentukan alasan agen untuk langkah selanjutnya yang harus diambil.

  • traceId— Pengidentifikasi unik dari jejak.

OrchestrationTraceTerdiri dari ModelInvocationInputobjek, OrchestrationModelInvocationOutputobjek, dan kombinasi apa pun dari Rasional, InvocationInput, dan objek Observasi. Sebuah OrchestrationModelInvocationOutputberisi bidang-bidang berikut. Untuk informasi lebih lanjut tentang Rasional, InvocationInput, dan objek Observasi, pilih dari tab berikut.

{ "modelInvocationInput": { // see above for details }, "modelInvocationOutput": { "metadata": { "usage": { "inputToken":: int, "outputToken":: int }, "rawResponse": { "content": "string" }, "rationale": { ... }, "invocationInput": { ... }, "observation": { ... } }
Rationale

Objek Rationale berisi penalaran agen yang diberikan input pengguna. Berikut ini adalah strukturnya:

{ "traceId": "string", "text": "string" }

Daftar berikut menjelaskan bidang objek Rationale:

  • traceId— Pengidentifikasi unik dari langkah jejak.

  • text— Proses penalaran agen, berdasarkan prompt input.

InvocationInput

InvocationInputObjek berisi informasi yang akan dimasukkan ke grup tindakan atau basis pengetahuan yang akan dipanggil atau ditanyakan. Berikut ini adalah strukturnya:

{ "traceId": "string", "invocationType": "ACTION_GROUP | KNOWLEDGE_BASE | FINISH", "actionGroupInvocationInput": { // see below for details }, "knowledgeBaseLookupInput": { "knowledgeBaseId": "string", "text": "string" } }

Daftar berikut menjelaskan bidang InvocationInputobjek:

  • traceId— Pengidentifikasi unik dari jejak.

  • invocationType— Menentukan apakah agen memanggil kelompok tindakan atau basis pengetahuan, atau mengakhiri sesi.

  • actionGroupInvocationInput— Muncul jika type adaACTION_GROUP. Untuk informasi selengkapnya, lihat Tentukan tindakan dalam kelompok tindakan. Dapat menjadi salah satu struktur berikut:

    • Jika kelompok aksi didefinisikan oleh API skema, strukturnya adalah sebagai berikut:

      { "actionGroupName": "string", "apiPath": "string", "verb": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" }, ... ], "requestBody": { "content": { "<content-type>": [ { "name": "string", "type": "string", "value": "string" } ] } }, "executionType": "LAMBDA | RETURN_CONTROL", "invocationId": "string" }

      Berikut ini adalah deskripsi bidang:

      • actionGroupName— Nama kelompok aksi yang diprediksi agen harus dipanggil.

      • apiPath— Jalur ke API operasi untuk memanggil, sesuai dengan API skema.

      • verb— API Metode yang digunakan, sesuai dengan API skema.

      • parameters— Berisi daftar objek. Setiap objek berisi nama, jenis, dan nilai parameter dalam API operasi, seperti yang didefinisikan dalam API skema.

      • requestBody— Berisi isi isi permintaan dan propertinya, sebagaimana didefinisikan dalam API skema.

      • executionType— Apakah pemenuhan tindakan diteruskan ke fungsi Lambda LAMBDA () atau kontrol dikembalikan melalui InvokeAgent respons RETURN_CONTROL (). Untuk informasi selengkapnya, lihat Menangani pemenuhan tindakan.

      • invocationId— Pengidentifikasi unik dari doa. Hanya dikembalikan jika executionType adaRETURN_CONTROL.

    • Jika kelompok tindakan ditentukan oleh rincian fungsi, strukturnya adalah sebagai berikut:

      { "actionGroupName": "string", "function": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" }, ... ], "executionType": "LAMBDA | RETURN_CONTROL", "invocationId": "string" }

      Berikut ini adalah deskripsi bidang:

      • actionGroupName— Nama kelompok aksi yang diprediksi agen harus dipanggil.

      • function— Nama fungsi yang diprediksi agen harus dipanggil.

      • parameters— Parameter fungsi.

      • executionType— Apakah pemenuhan tindakan diteruskan ke fungsi Lambda LAMBDA () atau kontrol dikembalikan melalui InvokeAgent respons RETURN_CONTROL (). Untuk informasi selengkapnya, lihat Menangani pemenuhan tindakan.

      • invocationId— Pengidentifikasi unik dari doa. Hanya dikembalikan jika executionType adaRETURN_CONTROL.

  • knowledgeBaseLookupInput— Muncul jika type adaKNOWLEDGE_BASE. Untuk informasi selengkapnya, lihat Mengambil data dan menghasilkan respons AI dengan basis pengetahuan. Berisi informasi berikut tentang basis pengetahuan dan kueri pencarian untuk basis pengetahuan:

    • knowledgeBaseId— Pengidentifikasi unik dari basis pengetahuan yang akan dicari agen.

    • text— Permintaan yang akan dibuat ke basis pengetahuan.

Observation

Objek Observasi berisi hasil atau output dari kelompok tindakan atau basis pengetahuan, atau respons terhadap pengguna. Berikut ini adalah strukturnya:

{ "traceId": "string", "type": "ACTION_GROUP | KNOWLEDGE_BASE | REPROMPT | ASK_USER | FINISH", "actionGroupInvocation": { "text": "JSON-formatted string" }, "knowledgeBaseLookupOutput": { "retrievedReferences": [ { "content": { "text": "string" }, "location": { "type": "S3", "s3Location": { "uri": "string" } } }, ... ] }, "repromptResponse": { "source": "ACTION_GROUP | KNOWLEDGE_BASE | PARSER", "text": "string" }, "finalResponse": { "text" } }

Daftar berikut menjelaskan bidang objek Observasi:

  • traceId— Pengidentifikasi unik dari jejak.

  • type— Menentukan apakah pengamatan agen dikembalikan dari hasil kelompok tindakan atau basis pengetahuan, jika agen tersebut meminta kembali pengguna, meminta informasi lebih lanjut, atau mengakhiri percakapan.

  • actionGroupInvocationOutput— Berisi string JSON -format yang dikembalikan oleh API operasi yang dipanggil oleh grup tindakan. Muncul jika type adaACTION_GROUP. Untuk informasi selengkapnya, lihat Mendefinisikan OpenAPI skema untuk grup aksi agen Anda di Amazon Bedrock.

  • knowledgeBaseLookupOutput— Berisi teks yang diambil dari basis pengetahuan yang relevan untuk menanggapi prompt, di samping lokasi Amazon S3 dari sumber data. Muncul jika type adaKNOWLEDGE_BASE. Untuk informasi selengkapnya, lihat Mengambil data dan menghasilkan respons AI dengan basis pengetahuan. Setiap objek dalam daftar retrievedReferences berisi bidang-bidang berikut:

    • content— Berisi text dari basis pengetahuan yang dikembalikan dari kueri basis pengetahuan.

    • location— Berisi Amazon S3 URI dari sumber data dari mana teks yang dikembalikan ditemukan.

  • repromptResponse— Muncul jika type adaREPROMPT. Berisi text yang meminta prompt lagi di source samping mengapa agen perlu reprompt.

  • finalResponse— Muncul jika type ada ASK_USER atauFINISH. Berisi text yang meminta pengguna untuk informasi lebih lanjut atau merupakan respons terhadap pengguna.

{ "modelInvocationInput": { // see above for details } "modelInvocationOutput": { "rawResponse": { "content": "string" }, "metadata": { "usage": { "inputToken": int, "outputToken": int } }, "parsedResponse": { "text": "string" }, "traceId": "string" } }

PostProcessingTraceTerdiri dari a ModelInvocationInputObjek dan PostProcessingModelInvocationOutputobjek. Sebuah PostProcessingModelInvocationOutputberisi bidang-bidang berikut:

  • rawResponse- Berisi output mentah dari model pondasi.

    • content— Konten keluaran mentah model pondasi.

  • metadata- Berisi informasi berikut tentang output model pondasi.

    • usage— Berisi informasi berikut tentang penggunaan model pondasi.

      • inputTokens— Berisi informasi tentang token input dari penggunaan model foundation.

      • outputTokens— Berisi informasi tentang token keluaran dari penggunaan model foundation.

  • parsedResponse— Berisi text untuk kembali ke pengguna setelah teks diproses oleh fungsi parser.

  • traceId— Pengidentifikasi unik dari jejak.

{ "failureReason": "string", "traceId": "string" }

Daftar berikut menjelaskan bidang FailureTraceobjek:

  • failureReasonAlasan mengapa langkah itu gagal.

  • traceId— Pengidentifikasi unik dari jejak.

{ "action": "GUARDRAIL_INTERVENED" | "NONE", "inputAssessments": [GuardrailAssessment], "outputAssessments": [GuardrailAssessment] }

Daftar berikut menjelaskan bidang GuardrailAssessment objek:

  • action— menunjukkan apakah pagar pembatas diintervensi atau tidak pada data input. Pilihannya adalah GUARDRAIL_INTERVENED atauNONE.

  • inputAssessments— Rincian penilaian Guardrail pada input pengguna.

  • outputAssessments— Rincian penilaian Guardrail pada tanggapan.

Untuk detail lebih lanjut tentang GuardrailAssessment objek dan menguji Pagar Pembatas, lihat. Uji pagar pembatas

GuardrailAssessment contoh:

{ "topicPolicy": { "topics": [{ "name": "string", "type": "string", "action": "string" }] }, "contentPolicy": { "filters": [{ "type": "string", "confidence": "string", "action": "string" }] }, "wordPolicy": { "customWords": [{ "match": "string", "action": "string" }], "managedWordLists": [{ "match": "string", "type": "string", "action": "string" }] }, "sensitiveInformationPolicy": { "piiEntities": [{ "type": "string", "match": "string", "action": "string" }], "regexes": [{ "name": "string", "regex": "string", "match": "string", "action": "string" }] } }