Claude Architect · Pelajaran

Alat Tugasan dan allowedTools

Mencipta subejen dan memberikan keupayaan Tugasan

Pelajaran 3 daripada 413 langkah

Alat Tugasan dan allowedTools ialah pelajaran Claude Architect percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Claude Architect, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Claude Architect merangkumi sejumlah 4 pelajaran.

Sebab Ejen Kecil Wujud

Ejen tunggal yang melakukan segala-galanya menyimpan terlalu banyak perkara dalam fikirannya: sejarah, subtugas yang belum selesai dan output alat yang panjang semuanya bersaing untuk mendapatkan perhatian. Ejen kecil membolehkan penyelaras memecahkan tugas besar kepada bahagian yang berfokus dan menyerahkan setiap bahagian kepada pekerja baharu.

SDK ejen menyediakan keupayaan ini melalui satu alat: alat Task. Apabila penyelaras memanggil Task, SDK memulakan ejen kecil dengan konteks bersihnya sendiri untuk mengendalikan satu unit kerja yang diwakilkan, kemudian mengembalikan hasilnya kepada penyelaras.

Inilah asas corak berbilang ejen hab-dan-jejarian: seorang penyelaras di hab dan banyak ejen kecil khusus pada jejarian.

Tugas Penyelaras

Dalam corak hab-dan-jejarian, penyelaras tidak pernah melakukan kerja terperinci itu sendiri. Penyelaras mempunyai lima tanggungjawab:

  • Menguraikan permintaan kepada tugas yang berasingan
  • Mewakilkan setiap tugas kepada ejen kecil melalui Task
  • Mengagregatkan hasil yang dikembalikan
  • Menghalakan kerja susulan berdasarkan hasil yang diterima
  • Mengendalikan ralat, termasuk hasil separa

Untuk mewakilkan tugas, penyelaras mesti dibenarkan menggunakan alat Task. Jika Task tiada dalam allowedTools, penyelaras tidak boleh mencipta apa-apa dan akan cuba melakukan semuanya sendiri.

Memberikan Keupayaan Tugas

Keupayaan diberikan secara jelas. Senarai allowedTools (atau allowed_tools) penyelaras mesti merangkumi "Task" agar pewakilan tugas dapat berfungsi. Ini ialah pemberian yang disengajakan dan boleh diaudit, bukannya lalai automatik.

Perhatikan bahawa penyelaras di sini hanya diberikan perkara yang diperlukan untuk mengatur tugas: Task untuk mencipta pekerja dan Read untuk memeriksa input. Penyelaras tidak mendapat Bash atau Write kerana penyelaras tidak sepatutnya menyentuh sistem secara langsung.

from claude_agent_sdk import ClaudeAgentOptions

coordinator = ClaudeAgentOptions(
    system_prompt="You are a coordinator. Decompose the"
                  " request and delegate each part via Task.",
    # Task = permission to spawn subagents
    allowed_tools=["Task", "Read"],
)

Mentakrifkan Ejen Kecil

Setiap subejen diterangkan oleh AgentDefinition dengan empat bahagian:

  • name — pengecam ringkas yang digunakan oleh penyelaras untuk mengagihkan tugas
  • description — masa ejen ini perlu digunakan (inilah cara penyelaras memilihnya)
  • system_prompt — peranan dan arahan
  • allowed_tools — alat yang boleh digunakan oleh pekerja ini

description paling penting: sama seperti perihalan alat, ia ialah isyarat utama untuk pemilihan. Perihalan yang kabur menyebabkan penyelaras mengagihkan tugas kepada pekerja yang salah.

researcher = {
    "name": "researcher",
    "description": "Searches the web and summarizes"
                   " findings for a single topic. Use for"
                   " any open-ended fact-finding task.",
    "system_prompt": "You research ONE topic and return"
                     " a cited summary.",
    "allowed_tools": ["WebSearch", "Read"],
}

Keistimewaan Minimum bagi Setiap Subejen

allowed_tools setiap subejen hendaklah mematuhi prinsip keistimewaan minimum: berikan hanya alat yang benar-benar diperlukan oleh peranan tersebut, dengan skop yang terhad kepada peranan itu.

Pekerja penyelidikan mendapat WebSearch dan Read — tidak pernah Bash atau process_refund. Penulis fail mendapat Write dan Edit. Set alat yang kecil juga meningkatkan kebolehpercayaan pemilihan: 4-5 alat bagi setiap ejen adalah optimum, manakala memberikan ejen 18 alat atau lebih mengurangkan kebolehpercayaannya memilih alat yang betul.

Yang penting, kebanyakan subejen tidak sepatutnya menerima Task sendiri. Kuasa untuk mengagihkan tugas hendaklah berada di hab; mengagihkannya secara meluas menyebabkan penciptaan ejen yang tidak terkawal.

Peraturan Pengasingan Konteks

Inilah fakta yang paling kerap diuji tentang subejen: subejen TIDAK mewarisi sejarah perbualan penyelaras.

Setiap subejen bermula dengan konteks yang bersih. Ia hanya melihat perkara yang dimasukkan dalam gesaan. Pengasingan itu ialah satu ciri — ia menghalang sejarah yang terlalu besar daripada menjejaskan setiap pekerja — tetapi ini bermakna penyelaras memikul tanggungjawab: semua konteks yang diperlukan oleh subejen mesti dihantar secara eksplisit dalam gesaan tugasnya.

Jika subejen memerlukan laluan fail, ID pelanggan, tarikh akhir atau dapatan terdahulu, penyelaras mesti memasukkannya dalam arahan yang diamanahkan. Menganggap subejen “sudah tahu” ialah kegagalan yang lazim.

Menghantar Konteks secara Eksplisit

Oleh sebab tiada apa-apa yang diwarisi, tulis gesaan tugas yang lengkap dengan sendirinya. Himpunkan setiap fakta yang diperlukan oleh pekerja ke dalam rentetan gesaan yang dihantar oleh penyelaras.

Bandingkan pengagihan tugas yang buruk (“selidik topik itu”) dengan pengagihan tugas yang baik, yang menyatakan topik, skop, bentuk output yang diperlukan dan kekangan. Subejen tidak mempunyai sumber rujukan lain.

# Coordinator builds a SELF-CONTAINED task prompt
task_prompt = (
    "Research: 'EU AI Act enforcement timeline'.\n"
    "Scope: official sources published after 2024-01.\n"
    "Return: 3 bullet findings, each with a source URL"
    " and publication date.\n"
    "Do NOT cover non-EU regulation."
)
# This whole string is the subagent's ONLY context.

Pengagihan Tugas secara Selari

Apabila penyelaras mengeluarkan beberapa panggilan Task dalam satu respons, subejen tersebut berjalan secara selari. Dengan cara inilah sistem penyelidikan mengembangkan usaha kepada beberapa topik serentak, bukannya menyiasatnya satu demi satu.

Gunakan Task secara selari apabila subtugas tidak saling bergantung — contohnya menyelidik tiga topik berasingan atau menyemak tiga fail yang tidak berkaitan. Jika tugas B memerlukan output tugas A, anda tidak boleh menjalankannya secara selari; penyelaras mesti menunggu A, kemudian mengamanahkan B pada giliran berikutnya.

# Three independent topics -> three Task calls in ONE
# response -> they execute concurrently.
topics = ["data residency", "audit rights", "breach SLA"]
# The model emits three tool_use blocks for Task,
# each with its own self-contained prompt, in a
# single assistant turn. The SDK runs them in parallel
# and returns all three results together.

Menggabungkan dan Mengendalikan Hasil Separa

Selepas pekerja selari memberikan hasil, penyelaras menggabungkannya. Sistem sebenar mesti dapat menoleransi kegagalan seorang pekerja tanpa membatalkan keseluruhan tugas.

Jika dua daripada tiga penyelidik berjaya dan seorang mengalami kegagalan akses, penyelaras hendaklah mengekalkan dua hasil yang baik, menandakan jurang tersebut dan melaporkan hasil separa — bukannya membuang keseluruhan pelaksanaan. Bezakan kegagalan akses sebenar (mungkin boleh dicuba semula) daripada hasil kosong yang sah (tiada padanan ditemui). Pulihkan gangguan sementara dalam subejen; tingkatkan hanya masalah yang tidak boleh dipulihkan, sambil membawa hasil separa ke peringkat lebih tinggi.

Menggugurkan pekerja yang gagal secara senyap atau membatalkan semuanya kerana satu ralat ialah corak anti kedua-duanya.

Menghentikan Gelung dengan Betul

Pengagihan tugas berjalan dalam gelung ejen. Penyelaras menghantar permintaan, memeriksa stop_reason, menjalankan sebarang panggilan alat Task, menambahkan hasilnya pada sejarah mesej dan mengulanginya sehingga stop_reason ialah end_turn.

Hentikan pelaksanaan berdasarkan sebab berhenti, dan jangan sekali-kali dengan mengimbas teks model untuk perkataan seperti “selesai” atau “tamat”. Keputusan tentang subejen yang hendak dicipta seterusnya adalah didorong oleh model. Had lelaran ialah jaring keselamatan terhadap penciptaan ejen yang tidak terkawal — bukan cara utama untuk menghentikan pelaksanaan.

while True:
    resp = client.messages.create(**req)
    if resp.stop_reason == "tool_use":
        results = run_tools(resp)   # may include Task
        req["messages"] += [assistant(resp), user(results)]
        continue
    if resp.stop_reason == "end_turn":
        break   # terminate on stop_reason, not on text

Menggabungkan Kesemuanya

Persediaan berbilang ejen yang betul mempunyai bentuk yang mudah dikenal pasti:

  • allowed_tools penyelaras merangkumi "Task" (serta alat pemeriksaan minimum).
  • Setiap subejen mempunyai description yang jelas, system_prompt yang tertumpu dan allowed_tools berkeistimewaan minimum, iaitu sekitar 4-5 alat.
  • Setiap gesaan yang diamanahkan lengkap dengan sendirinya kerana tiada sejarah yang diwarisi.
  • Tugas bebas dihantar sebagai panggilan Task secara selari; tugas yang bergantung antara satu sama lain disusun mengikut urutan.
  • Penyelaras menggabungkan hasil, menoleransi kegagalan separa dan berhenti pada end_turn.

Dapatkan pemberian Task dan laksanakan peraturan konteks eksplisit dengan betul; selebihnya dalam pengaturan aliran akan tersusun dengan sendirinya.

agents = {"researcher": researcher, "writer": writer}
coordinator = ClaudeAgentOptions(
    system_prompt="Decompose, delegate via Task, aggregate.",
    allowed_tools=["Task", "Read"],   # hub holds Task
    agents=agents,                    # spokes, least privilege
)

Semakan Pantas

Penyelaras penyelidikan mengagihkan tiga topik yang tidak saling bergantung kepada tiga subejen dengan satu kelompok panggilan Task secara selari. Seorang subejen mengembalikan ringkasan yang tidak menyertakan fakta yang disebut oleh penyelaras lebih awal dalam perbualannya sendiri. Apakah punca seni bina yang paling berkemungkinan?

Ulang Kaji

Inti pati penting untuk peperiksaan:

  • Alat Task mencipta subejen; allowed_tools penyelaras mesti merangkumi "Task" untuk mengagihkan tugas.
  • Seni binanya ialah hab-dan-jejarian: penyelaras memecahkan tugas, mengagihkan, menggabungkan, menghala dan mengendalikan ralat.
  • Subejen tidak mewarisi sejarah perbualan — hantarkan semua konteks yang diperlukan secara eksplisit dalam setiap gesaan tugas.
  • AgentDefinition = name, description, system_prompt, allowed_tools; description memacu pemilihan.
  • Gunakan keistimewaan minimum bagi setiap subejen; sasarkan sekitar 4-5 alat dan kekalkan Task di hab.
  • Beberapa panggilan Task dalam satu respons berjalan secara selari; susun mengikut urutan hanya apabila terdapat kebergantungan.
  • Toleransi hasil separa; berhenti pada end_turn, jangan sekali-kali dengan menghuraikan teks, dan gunakan had lelaran hanya sebagai jaring keselamatan.
Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
26
Pelajaran
104

Soalan Lazim

Adakah pelajaran “Alat Tugasan dan allowedTools” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Claude Architect, termasuk “Alat Tugasan dan allowedTools”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Claude Architect merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Alat Tugasan dan allowedTools”?

Mencipta subejen dan memberikan keupayaan Tugasan Anda berlatih Claude Architect menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Claude Architect?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Claude Architect di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Alat Tugasan dan allowedTools” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Claude Architect ini?

Ya. Setiap pelajaran Claude Architect menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Blok Binaan SDK Ejen
  2. Mentakrifkan Ejen
  3. Alat Tugasan dan allowedTools
  4. Prinsip Keistimewaan Minimum
← Kembali ke Claude Architect