Engenharia
কথোপকথন এআই এজেন্ট ভিতর থেকে কীভাবে কাজ করে
Engenharia
12 min পড়ার সময়
১ জুন, ২০২৬

কথোপকথন এআই এজেন্ট ভিতর থেকে কীভাবে কাজ করে

OpenClaw-এ কথোপকথনের একটি পালার ৬টি পর্যায় — প্রকৃত লেটেন্সি, প্রতি কথোপকথনের খরচ এবং হ্যালুসিনেশনের বিরুদ্ধে ৪টি প্রতিরক্ষা লাইন।

Equipe OpenClaw

Equipe OpenClaw · Time de Engenharia & Produto

A Equipe OpenClaw é formada por engenheiros, designers e especialistas em IA dedicados a construir a melhor plataforma de agentes conversacionais para negócios brasileiros. Combinamos expertise…


একটি কথোপকথন AI এজেন্ট ভিতর থেকে কীভাবে কাজ করে (OpenClaw আর্কিটেকচার)

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

TL;DR: প্রতিটি পালা ৬টি পর্যায়ের মধ্য দিয়ে যায় — ইনজেস্ট, প্রসঙ্গ সমাধান, স্কিল নির্বাচন, পরবর্তী কর্ম সিদ্ধান্ত, গার্ড-রেল সহ সম্পাদন, মেমরি সংরক্ষণ। সম্পূর্ণ চক্রটি Cloudflare-এর এজে <২ সেকেন্ডে চলে, কোনো নির্দিষ্ট সার্ভার ছাড়াই।


কেন আর্কিটেকচার গুরুত্বপূর্ণ

কথোপকথন এজেন্ট যা ডেমোতে কাজ করছে বলে মনে হয় কিন্তু প্রোডাকশনে ভেঙে যায় সাধারণত এই ৪টি সমস্যার একটি থাকে:

  1. উচ্চ লেটেন্সি — ক্লায়েন্ট উত্তরের জন্য ৮ সেকেন্ড অপেক্ষা করে, কথোপকথন মারা যায়।
  2. অনিয়ন্ত্রিত হ্যালুসিনেশন — এজেন্ট দাম, সময়, নীতি বানিয়ে ফেলে।
  3. হারিয়ে যাওয়া প্রসঙ্গ — ক্লায়েন্ট ২ দিন পরে ফিরে আসে এবং এজেন্ট সবকিছু "ভুলে যায়"।
  4. অনিয়ন্ত্রিত খরচ — প্রতিটি দীর্ঘ কথোপকথন প্রম্পট পূর্ণ করে এবং আপনি টোকেনে প্রচুর অর্থ প্রদান করেন।

এই ৪টিই আর্কিটেকচার পছন্দ, মডেলের সীমাবদ্ধতা নয়। OpenClaw এই ৪টি এড়াতে তৈরি করা হয়েছিল — এবং বোঝার পথ হল একটি পালার চক্র দেখা।


একটি পালার চক্র (৬টি পর্যায়)

কল্পনা করুন যে ক্লায়েন্ট এইমাত্র বার্তা পাঠিয়েছে "শনিবার সকালে বুক করতে চাই"। "received" এবং এজেন্টের উত্তরের মধ্যে কী ঘটে?

পর্যায় ১ — ইনজেস্ট (এজ ওয়ার্কার, <৫০ms)

WhatsApp থেকে বার্তাটি Meta-র ওয়েবহুকের মাধ্যমে সরাসরি ভৌগোলিকভাবে নিকটতম উপস্থিতি পয়েন্টে (PoP) একটি Cloudflare Worker-এ আসে। ব্রাজিলে, এর অর্থ সাও পাওলো বা রিও, নেটওয়ার্ক লেটেন্সি < ২০ms।

ওয়ার্কার তিনটি কাজ করে:

  1. ওয়েবহুকের স্বাক্ষর যাচাই করে (WABA-র গোপন কীর বিপরীতে HMAC)।
  2. রিসিভারের ফোন নম্বর দ্বারা টেন্যান্ট সনাক্ত করে (মাল্টি-টেন্যান্ট to_number দ্বারা)।
  3. পেলোড নরমালাইজ করে — অডিও ট্রান্সক্রিপশনে পরিণত হয়, ছবি বর্ণনায় পরিণত হয়, অবস্থান {lat,lng} হয়, টেক্সট যেমন আছে তেমনই থাকে।

পর্যায় ১-এর শেষে আপনার কাছে পরবর্তী ধাপের জন্য প্রস্তুত একটি অবজেক্ট {tenant_id, conversation_id, user_message} থাকে।

পর্যায় ২ — প্রসঙ্গ সমাধান (D1 + KV, ~৮০ms)

সিদ্ধান্ত নেওয়ার আগে এজেন্টের ৩টি প্রসঙ্গের অংশ প্রয়োজন:

  • কথোপকথনের সাম্প্রতিক ইতিহাস (শেষ N প্রাসঙ্গিক টার্ন)।
  • ক্লায়েন্টের দীর্ঘমেয়াদী মেমরি (পছন্দ, ক্রয় ইতিহাস, নোট)।
  • এজেন্ট স্টেট (পার্সোনা, সক্রিয় স্কিল, নিয়ম)।

সবকিছু D1 (Cloudflare-এর বিতরণকৃত SQLite) থেকে আসে। D1 ঐতিহ্যবাহী Postgres/Mongo প্রতিস্থাপন করে — রক্ষণাবেক্ষণের জন্য কোনো ডাটাবেস সার্ভার নেই, ওয়ার্কার থেকে কয়েক ms-এ অ্যাক্সেস, tenant_id দ্বারা মাল্টি-টেন্যান্ট।

মূল বিষয়: আমরা প্রম্পটে সম্পূর্ণ কথোপকথন লোড করি না। OpenClaw-এর Memory Manager v2 (আমাদের অভ্যন্তরীণ ডকুমেন্টেশনে বর্ণিত) শুধুমাত্র বর্তমান টার্নের জন্য প্রাসঙ্গিক টার্নগুলি নির্বাচন করে (শেষ N + উচ্চ শব্দার্থিক প্রাসঙ্গিকতার N)। এটি 100+ টার্নের কথোপকথনেও টোকেন খরচ পূর্বাভাসযোগ্য রাখে।

পর্যায় 3 — স্কিল নির্বাচন (পলিসি ইঞ্জিন, ~20ms)

প্রতিটি এজেন্টের একটি স্কিল সেট উপলব্ধ থাকে — ফাংশন যা সে আহ্বান করতে পারে। উদাহরণ: consultar_calendario, criar_evento, gerar_link_pagamento, consultar_pedido, chamar_humano

"quero marcar pra sábado de manhã" বার্তা দেওয়া হলে, পলিসি ইঞ্জিন ফিল্টার করে:

  • সনাক্তকৃত উদ্দেশ্যের সাথে সামঞ্জস্যপূর্ণ স্কিল (সময়সূচী)।
  • কথোপকথনের এই পর্যায়ের জন্য অনুমোদিত স্কিল (সব স্কিল সবসময় উপলব্ধ নয়)।
  • এই টেন্যান্ট সক্রিয় করেছে এমন স্কিল (ক্যালেন্ডার শুধুমাত্র তখনই দেখা যায় যদি টেন্যান্ট ইন্টিগ্রেট করে থাকে)।

শেষে আপনি মডেলে পাস করার জন্য একটি ছোট স্কিল সাবসেট পান — সম্ভাব্য 50টি নয়, শুধুমাত্র 4টি যা এখানে অর্থবহ। এটি মডেলের ভুল স্কিল আহ্বান করার সম্ভাবনা ব্যাপকভাবে হ্রাস করে।

পর্যায় 4 — সিদ্ধান্ত (LLM কল, 400-1200ms)

এখন মডেল প্রবেশ করে। OpenClaw একটি ফ্রন্টিয়ার LLM-এ (Anthropic Claude, OpenAI GPT, Google Gemini — টেন্যান্ট দ্বারা কনফিগারযোগ্য) একটি একক কল করে:

  • System prompt = এজেন্ট পার্সোনা + নিয়ম + উপলব্ধ স্কিল।
  • History = পর্যায় 2-এ নির্বাচিত টার্ন।
  • User message = বর্তমান টার্নের বার্তা।

মডেল দুটি জিনিসের একটি উত্তর দেয়:

  • চূড়ান্ত উত্তর (ক্লায়েন্টের জন্য সরাসরি টেক্সট)।
  • Tool call (প্যারামিটার সহ একটি নির্দিষ্ট স্কিল চালানোর অনুরোধ)।

"quero marcar pra sábado de manhã" উদাহরণে, মডেল সাধারণত রিটার্ন করে:

{
  "tool": "consultar_calendario",
  "args": { "date_range": "2026-04-19 06:00 to 12:00" }
}

পর্যায় 5 — গার্ড-রেইল সহ এক্সিকিউশন (পরিবর্তনশীল, ~100-500ms)

স্কিল মডেলে চলে না। এটি আমাদের কোডে চলে, যা:

১. প্যারামিটার যাচাই করে (date_range সঠিক ফরম্যাটে আছে? টেন্যান্টের নিয়মের মধ্যে আছে?)। ২. অনুমতি পরীক্ষা করে (এই এজেন্টের এই ক্যালেন্ডার দেখার অধিকার আছে?)। ৩. কল সম্পাদন করে (এই ক্ষেত্রে Google Calendar API)। ৪. কাঠামোবদ্ধ ফলাফল রিটার্ন করে মডেলের জন্য।

এটা কেন গুরুত্বপূর্ণ? কারণ মডেল কখনো ফলাফল বানায় না। যদি ক্যালেন্ডার [10h, 11h] রিটার্ন করে, ঠিক সেটাই পরবর্তী কলে যায়। যদি স্কিল ব্যর্থ হয়, মডেল জানে যে এটা ব্যর্থ হয়েছে। এজেন্ট "বানিয়ে বলবে" যে ৯টায় সময় আছে যখন নেই — এমন ঝুঁকি শূন্য।

যেসব ক্ষেত্রে সংবেদনশীল তথ্য জড়িত (মূল্য, সময়সীমা, ক্লায়েন্টের নাম), পাইপলাইন tool call বাধ্যতামূলক করে — মডেলকে নিজের "জ্ঞান" থেকে উত্তর দিতে দেয় না। এটা বাণিজ্যিক এজেন্টদের মধ্যে সবচেয়ে সাধারণ হ্যালুসিনেশনের শ্রেণী নির্মূল করে

পর্যায় ৬ — প্রতিক্রিয়া এবং স্থায়িত্ব (~৫০ms)

স্কিলের ফলাফল হাতে পেয়ে, মডেল দ্বিতীয় কল করে — এখন ক্লায়েন্টের জন্য চূড়ান্ত প্রতিক্রিয়া তৈরি করতে। উদাহরণ:

"শনিবার ১০টা এবং ১১টায় আমার আছে। কোনটা পছন্দ করবেন?"

সমান্তরালভাবে, ওয়ার্কার:

১. পাঠায় WhatsApp API এর মাধ্যমে বার্তা ফেরত। ২. সংরক্ষণ করে সম্পূর্ণ টার্ন (user + assistant + tool calls + duration) D1-এ। ৩. দীর্ঘমেয়াদী মেমরি আপডেট করে যদি টার্ন নতুন তথ্য তৈরি করে (যেমন: "ক্লায়েন্ট শনিবার পছন্দ করে")। ৪. পর্যবেক্ষণযোগ্যতার ইভেন্ট নির্গত করে (লেটেন্সি মেট্রিক, টোকেন খরচ, এস্কেলেশন হার)।

এসবকিছু সমান্তরালে চলে। স্থায়িত্ব বার্তা পাঠানোকে ব্লক করে না — ক্লায়েন্ট D1 এর জন্য অপেক্ষা করে না।


হ্যালুসিনেশনের বিরুদ্ধে প্রতিরক্ষা কোথায়

প্রোডাকশনে যে এজেন্ট হ্যালুসিনেট করে সে দ্রুত বিশ্বাস হারায়। OpenClaw-এর ৪টি প্রতিরক্ষা লাইন আছে:

১. বাধ্যতামূলক Source-of-truth। তথ্যভিত্তিক ডেটা (মূল্য, সময়, নাম) সবসময় স্কিল থেকে আসে, কখনো একা মডেল থেকে নয়। ২. সংবেদনশীল ডেটায় দ্বিগুণ যাচাই। সংরক্ষণের আগে ক্লায়েন্টের সাথে অ্যাপয়েন্টমেন্ট নিশ্চিত করা হয়। অ্যাক্সেস দেওয়ার আগে পেমেন্ট নিশ্চিত করা হয়। ৩. সুস্পষ্ট নেগেটিভ নিয়ম। প্রতিটি এজেন্টের পার্সোনায় "কখনো X, Y, Z বানাবে না" অন্তর্ভুক্ত থাকে — মডেল মেনে চলে। ৪. মানুষের জন্য ফলব্যাক। যখন কোনো স্কিল প্রশ্ন কভার করে না, এজেন্ট বলে "আমাকে টিমের সাথে চেক করতে দিন" এবং একটি টিকেট খোলে — অনুমান করে না।

গত ৬ মাসে আমরা যে অডিট করেছি (ম্যানুয়ালি পর্যালোচনা করা প্রকৃত কথোপকথন), তথ্যভিত্তিক হ্যালুসিনেশনের হার ০.৩% টার্নের নিচে ছিল — এবং প্রায় সব ক্ষেত্রেই কনফিগারেশনের কারণে ছিল (টেন্যান্ট প্রাসঙ্গিক স্কিল সক্রিয় করতে ভুলে গিয়েছিল), মডেলের ত্রুটি নয়।


প্রতি কথোপকথনের খরচ

ভালো আর্কিটেকচার অদৃশ্য থাকে যতক্ষণ না আপনি বিল দেখেন। যেহেতু প্রতিটি টার্ন 1-2টি LLM কল + D1-এ লুকআপ করে, তাই সম্পূর্ণ কথোপকথনের (10-15 টার্ন) সাধারণ খরচ হয়:


Equipe OpenClaw

প্রকাশিত ১ জুন, ২০২৬

আরও পড়ুন