ইউনিট 10 / 11

এজেন্ট ওয়ার্কফ্লো এবং মাল্টি-স্টেপ টাস্ক

লাভ:

  • এজেন্ট থেকে সহজ সমাধান থেকে জটিলতার ক্রমবর্ধমান স্কেল প্রয়োগ করা
  • চেইনিং, রাউটিং এবং সমান্তরাল ওয়ার্কফ্লো প্যাটার্নের মধ্যে পার্থক্য করা
  • একটি পরিকল্পনা-নির্বাহী-যাচাই চক্রের মধ্যে একটি বহু-পদক্ষেপের কাজ ভাঙা

আমরা পূর্ববর্তী ইউনিটে একক-বাহন সরল চক্র স্থাপন করেছি। বাস্তব কাজের জন্য প্রায়শই একাধিক পদক্ষেপ, একাধিক সরঞ্জাম এবং কখনও কখনও শাখাগত সিদ্ধান্তের প্রয়োজন হয়: "এই মাসের শেষের দিকের অর্ডারগুলি খুঁজুন, গ্রাহকদের কাছে ক্ষমা প্রার্থনার ইমেল খসড়া করুন, একজন পরিচালকের জন্য সংক্ষিপ্ত করুন।" এই ইউনিটে, আমরা বহু-পদক্ষেপের কাজগুলি সংগঠিত করার নিদর্শনগুলি কভার করি, যখন আপনার একজন প্রকৃত এজেন্টের প্রয়োজন হয় এবং পরিকল্পনা-সম্পাদন-যাচাই চক্র। মূল নীতি: জটিলতা যতটা প্রয়োজন।

সহজতম সমাধান থেকে এজেন্ট পর্যন্ত স্কেল

প্রতিটি কাজ সবচেয়ে জটিল সমাধানের যোগ্য নয়। জটিলতার স্কেলে ধাপে ধাপে আরোহণ করুন এবং সবচেয়ে সহজ পর্যাপ্ত সমাধানে থামুন:

  1. একক কল: যদি টাস্কটি একটি একক মডেল কল দ্বারা সমাধান করা হয় (সারাংশ, শ্রেণীবদ্ধ) এখানে থামুন।
  2. RAG এর সাথে একক কল: তথ্যের প্রয়োজন হলে, পুনরুদ্ধার যোগ করুন এবং আবার একক কল করুন।
  3. স্থির কর্মপ্রবাহ: পদক্ষেপগুলি আগে থেকে জানা থাকলে, সেগুলিকে ম্যানুয়ালি সিকোয়েন্স করুন (কোড প্রবাহ)। মডেল প্রতিটি ধাপে একটি সাব-কাজ করে, কিন্তু আপনি অর্ডার নির্ধারণ করেন।
  4. মডেল-চালিত এজেন্ট: যদি পদক্ষেপগুলি আগে থেকে জানা না যায়, তাহলে মডেল সিদ্ধান্ত নেয় কোন এজেন্টকে কল করবে এবং কখন। সবচেয়ে শক্তিশালী কিন্তু সবচেয়ে ব্যয়বহুল এবং ঝুঁকিপূর্ণ বিকল্প।

ওয়ার্কফ্লো এবং এজেন্টের মধ্যে পার্থক্য গুরুত্বপূর্ণ: ওয়ার্কফ্লোতে, আপনি নিয়ন্ত্রণের প্রবাহ লিখুন (অনুমানযোগ্য, পরীক্ষাযোগ্য, সস্তা)। আপনি মডেলকে এজেন্ডার নিয়ন্ত্রণ দেন (নমনীয় কিন্তু অপ্রত্যাশিত)। বেশিরভাগ কর্পোরেট কাজ আসলে একটি কর্মপ্রবাহ; প্রকৃত এজেন্ট তুলনামূলকভাবে কম।

টিপ: "আমি কি এই কাজের জন্য পদক্ষেপগুলি আগে থেকে লিখতে পারি?" জিজ্ঞাসা আপনি যদি এটি লিখতে পারেন তবে একটি কর্মপ্রবাহ তৈরি করুন — সস্তা, নিরাপদ, আরও পরীক্ষাযোগ্য। যাইহোক, যদি ইনপুটের উপর নির্ভর করে পদক্ষেপগুলি পরিবর্তিত হয় এবং ভবিষ্যদ্বাণী করা যায় না, তাহলে একজন এজেন্ট প্রয়োজন।

তিনটি বেসিক ওয়ার্কফ্লো প্যাটার্ন

প্রম্পট চেইনিং: এক ধাপের আউটপুট হল পরেরটির ইনপুট। "খসড়া তৈরি করুন → সম্পাদনা → বিন্যাস।" প্রতিটি পদক্ষেপ সহজ এবং নিবদ্ধ; ডিবাগ করা সহজ।

রাউটিং: আপনি প্রথমে আগত অনুরোধ শ্রেণীবদ্ধ করুন এবং উপযুক্ত বিশেষজ্ঞের কাছে পাঠান। "এই প্রশ্নটি কি প্রযুক্তিগত, বিলিং, নাকি ফেরত?" → সঠিক সাব-স্ট্রিমে পুনঃনির্দেশ করুন। প্রতিটি পথ তার নিজস্ব প্রম্পট এবং সরঞ্জাম দিয়ে অপ্টিমাইজ করা হয়।

সমান্তরালকরণ: একই সাথে স্বাধীন কাজ চালানো এবং ফলাফল একত্রিত করা। "5টি নথি আলাদাভাবে সংক্ষিপ্ত করুন, তারপর একত্রিত করুন।" এটি শুধুমাত্র দ্রুত নয়, কিন্তু প্রতিটি টুকরা সম্পূর্ণ মনোযোগ পায়।

প্যাটার্ন

যখন

উদাহরণ

শৃঙ্খলিত

ধাপগুলি ক্রমিক এবং নির্ভরশীল

খসড়া → সম্পাদনা → বিন্যাস

পুনর্নির্দেশ

ইনপুট প্রকারের উপর নির্ভর করে বিভিন্ন প্রক্রিয়াকরণ

সমর্থন অনুরোধ শ্রেণীবিভাগ

সমান্তরাল

স্বাধীন উপ-কাজ

একাধিক নথি আলাদাভাবে সংক্ষিপ্ত করুন

এজেন্ট (লুপ)

পদক্ষেপ আগে থেকে ভবিষ্যদ্বাণী করা যাবে না

উন্মুক্ত গবেষণা/মেরামত

# রাউটিং প্যাটার্ন (ধারণাগত) প্রকার = pattern.classify(অনুরোধ) # "রিটার্ন" | "টেকনিক" | "ইনভয়েস" যদি ট্যুর == "রিটার্ন": উত্তর = রিটার্ন_ফ্লো(রিকোয়েস্ট)এলিফ তুর == "টেকনিক্যাল": উত্তর = টেকনিক্যাল_ফ্লো(অনুরোধ) অন্যথা: উত্তর = ইনভয়েস_ফ্লো(অনুরোধ)

পরিকল্পনা-সম্পাদন-যাচাই চক্র

বাস্তব এজেন্টদের মধ্যে একটি শক্তিশালী প্যাটার্ন: মডেল পরিকল্পনা আছে, তারপর কার্যকর করুন, তারপর যাচাই করুন। মডেলটি জটিল কাজটিকে উপ-পদক্ষেপে বিভক্ত করে, সরঞ্জামগুলির সাথে প্রতিটি পদক্ষেপ সম্পাদন করে এবং অবশেষে জিজ্ঞাসা করে "আমি কি লক্ষ্য অর্জন করতে পেরেছি?" তিনি চেক করেন। যাচাইকরণের ধাপটি একটি পৃথক, নতুন চেহারার সাথে ত্রুটিগুলিকে ধরে ("এই আউটপুটটি কি কাজটি পূরণ করে?")।

# Plan-execute-verify (conceptual)plan = model.uret("এই কাজটিকে ধাপে বিভক্ত করুন: " + টাস্ক) পরিকল্পনায় ধাপের জন্য: ফলাফল = agent_loop(step) # execute with toolscheck = model.uret("এই আউটপুটটি কি টাস্ক পূরণ করে? কিছু অনুপস্থিত থাকলে আমাকে বলুন: " + টাস্ক + ফলাফল) যদি # সংশোধনী অনুপস্থিত থাকে: ...

দীর্ঘ কাজের জন্য দুটি ভাল অভ্যাস: একটি থামানোর শর্ত আরোপ করুন (সর্বাধিক সংখ্যক পদক্ষেপ - অসীম লুপ প্রতিরোধ করে) এবং অগ্রগতি ট্র্যাকিং (এজেন্টকে লিখতে বলুন সে কী করছে যাতে সে বিভ্রান্ত না হয়)। এজেন্ট, যার কোন ধাপের সীমা নেই, যদি সে আটকে যায় এবং খরচ বিস্ফোরিত হয় তবে সে চিরতরে ঘুরতে পারে।

দুর্বল/শক্তিশালী ডিজাইন

দুর্বল (একটি দৈত্য এজেন্টের উপর সবকিছু রাখা):

বলুন "সেই জটিল জিনিসটি সম্পন্ন করুন" এবং সীমাহীন সরঞ্জামগুলির সাথে এটি ছেড়ে দিন৷ # ফলাফল: অপ্রত্যাশিত আচরণ, অসীম লুপের ঝুঁকি, উচ্চ খরচ, # ডিবাগ করা অসম্ভব৷

শক্তিশালী (প্রথম প্রবাহ, এজেন্ট শুধুমাত্র যেখানে প্রয়োজন, সীমিত):

প্রথমে কাজটিকে নির্দিষ্ট ধাপে ভাগ করুন (রাউটিং + চেইনিং)। শুধুমাত্র সাবটাস্কে এজেন্ট ব্যবহার করুন যেখানে পদক্ষেপগুলি অজানা; ধাপের সীমা, অগ্রগতি ট্র্যাকিং এবং যাচাইকরণ রাউন্ড যোগ করুন।

তিনটি মিনি কেস

কেস 1 — এজেন্টের পরিবর্তে ওয়ার্কফ্লো। একটি দল একটি ফ্রি এজেন্টের সাথে "প্রক্রিয়া সমর্থন অনুরোধ" টাস্ক সেট আপ করেছে; কখনও কখনও এজেন্ট 15 ধাপ ঘুরে ভুল পথে চলে যেত। পদক্ষেপগুলি মূলত স্থির করা হয়েছিল (শ্রেণীবদ্ধ করুন → প্রাসঙ্গিক তথ্য আনুন → খসড়া লিখুন → অনুমোদনের জন্য জমা দিন)। যখন আমরা রাউটিং + চেইনিং ওয়ার্কফ্লোতে স্যুইচ করি, তখন ধারাবাহিকতা 58% থেকে 96% বেড়ে যায় এবং খরচ অর্ধেক হয়ে যায়।

কেস 2 - সমান্তরাল লাভ। একটি আইনি দল একে একে ২০টি চুক্তির সারসংক্ষেপ করছিল; এটি মোট 4 মিনিট সময় নিয়েছে। যখন আমরা একটি সমান্তরাল প্যাটার্নে স্যুইচ করি (সব একই সময়ে, তারপর একত্রিত করুন), সময়টি 25 সেকেন্ডে কমিয়ে আনা হয়েছিল এবং প্রতিটি সারাংশ সম্পূর্ণ মনোযোগ দেওয়ায় গুণমান বৃদ্ধি পেয়েছে।

কেস 3 - কোন থামার শর্ত ছিল না। একজন তদন্তকারী এজেন্ট অবিরাম একই দুটি টুলকে কল করতে থাকে, তথ্য খুঁজতে থাকে যা সে খুঁজে পায়নি; রাতারাতি উল্লেখযোগ্য খরচ সঞ্চিত. যখন সর্বোচ্চ 8-পদক্ষেপের সীমা এবং "যদি আপনি 3টি চেষ্টায় এটি খুঁজে না পান, বলুন আমি জানি না" নিয়মটি যোগ করা হয়েছিল, তখন খরচ নিয়ন্ত্রণে রাখা হয়েছিল এবং সৎ "আমি এটি খুঁজে পাইনি" উত্তরগুলি এসেছিল৷

সাধারণ ভুল

  • এজেন্টের কাছে সবকিছু অর্পণ করা: পদক্ষেপগুলি জানা থাকলে কর্মপ্রবাহ সস্তা, নিরাপদ এবং পরীক্ষাযোগ্য।
  • এজেন্টের সাথে ওয়ার্কফ্লো মিশ্রিত করা: আপনি বা মডেল কি নিয়ন্ত্রণ নেন? এটি পরিষ্কার না করে ডিজাইন করবেন না।
  • একটি স্টপিং শর্ত সেট না করা: এজেন্ট একটি অসীম লুপে প্রবেশ করে এবং খরচ জমা করে।
  • কোন অগ্রগতি ট্র্যাকিং নেই: একটি দীর্ঘ মিশনের সময়, এজেন্ট বিভ্রান্ত হয়, আবার একই কাজ করে।
  • যাচাইকরণ রাউন্ড এড়িয়ে যাওয়া: ভুল কিন্তু প্রশংসনীয় আউটপুট আনচেক করা হয়।
মনোযোগ: এজেন্ট যত মুক্ত হবে, বিস্ফোরণের ব্যাসার্ধ তত বড় হবে। নমনীয়তা বিনামূল্যে নয়; প্রতিটি অতিরিক্ত স্বাধীনতা অনির্দেশ্যতা এবং ঝুঁকি যোগ করে। সংকীর্ণ পর্যাপ্ত সমাধান চয়ন করুন.

সংক্ষেপে

  • জটিলতায়, "প্রয়োজন অনুসারে" নীতিটি প্রযোজ্য: একক কল → RAG → ওয়ার্কফ্লো → এজেন্ট শুধুমাত্র যদি সত্যিই প্রয়োজন হয়।
  • ওয়ার্কফ্লোতে, আপনি নিয়ন্ত্রণের প্রবাহ লিখুন (অনুমানযোগ্য); আপনি মডেলের এজেন্ডা ছেড়ে দিন (নমনীয় কিন্তু ঝুঁকিপূর্ণ)।
  • তিনটি মৌলিক প্যাটার্ন: চেইনিং (ক্রমানুসারে নির্ভরশীল), রাউটিং (টাইপ দ্বারা বিতরণ), সমান্তরাল (স্বাধীন কাজ)।
  • প্রকৃত এজেন্টরা পরিকল্পনা-চালনা-যাচাই চক্র, স্টপিং কন্ডিশন এবং অগ্রগতি ট্র্যাকিং ব্যবহার করে।
  • নমনীয়তা বৃদ্ধির সাথে সাথে অনির্দেশ্যতা এবং খরচ বৃদ্ধি পায়; সংকীর্ণ পর্যাপ্ত সমাধান চয়ন করুন.

আবেদন টাস্ক

আপনার নিজের ব্যবসা থেকে একটি বহু-পদক্ষেপ কাজ চয়ন করুন (যেমন "মাসিক প্রতিবেদন প্রস্তুত করুন এবং বিতরণ করুন")। (1) আপনি কি এই কাজের ধাপগুলি আগে থেকে লিখতে পারেন? আপনি যদি এটি লিখতে পারেন তবে এটিকে একটি ওয়ার্কফ্লো হিসাবে ডিজাইন করুন (কী প্যাটার্ন: চেইনিং/রাউটিং/সমান্তরাল?); আপনি যদি লিখতে না পারেন তবে কেন একজন এজেন্ট প্রয়োজন তা ব্যাখ্যা করুন। (2) একটি বাক্স-তীর চিত্র দিয়ে আপনার নির্বাচিত নকশা আঁকুন। (3) যদি এজেন্সি: লিখুন কিভাবে আপনি স্টপিং কন্ডিশন, অগ্রগতি ট্র্যাকিং এবং যাচাইকরণ রাউন্ড সেট আপ করবেন। (4) একটি "একক ডেভ এজেন্ট" এর সাথে একই কাজ করার 3টি ঝুঁকির তালিকা করুন৷

চেকলিস্ট

  • আমি "প্রয়োজনে জটিলতা" স্কেলে সঠিক স্তরটি বেছে নিতে পারি।
  • [] আমি ওয়ার্কফ্লো এবং এজেন্টের মধ্যে নিয়ন্ত্রণের পার্থক্যটি আলাদা করতে পারি।
  • [ ] আমি উপযুক্ত কাজের জন্য চেইনিং, রাউটিং এবং সমান্তরাল প্যাটার্ন ম্যাপ করতে পারি।
  • [ ] আমি এজেন্টদের মধ্যে প্ল্যান-এক্সিকিউট-যাচাই চক্র, স্টপিং কন্ডিশন এবং অগ্রগতি ট্র্যাকিং সেট আপ করতে পারি।
  • [ ] আমি মনে রাখি যে অত্যধিক নমনীয়তা অনির্দেশ্যতা এবং খরচ নিয়ে আসে।