Claude Managed Agents এখন এমন workflow program লিখতে পারে, যা বড় কাজের অংশগুলো একাধিক agent-কে দেয়, তাদের অনুসন্ধান সংগ্রহ করে এবং একত্র করে। সুবিধাটি beta পর্যায়ে আছে। নথির একটি ফোল্ডার পর্যালোচনা করে যাচাই করা findings file তৈরি করতে চান এমন software builder-এর জন্য এটি নথিভুক্ত সেটআপ।

এতে Anthropic-এর Claude Platform API ও CLI ব্যবহৃত হয়। BIG CHANGE বর্তমান নথিপত্র পর্যালোচনা করেছে; আমরা সেটআপ চালাইনি বা workflow পরীক্ষা করিনি।

workflow কী করে

একটি dynamic workflow হল একটি run-এর জন্য একটি program। এটি কাজকে ধাপে ভাগ করতে, একাধিক agent thread সমান্তরালে শুরু করতে, ধাপগুলোর মধ্যে ফল পাঠাতে, ব্যর্থ branch পুনরায় চেষ্টা বা সামলাতে এবং ফল একত্র করতে পারে। উদাহরণস্বরূপ, প্রথম ধাপে আলাদা ফাইল দেখা হতে পারে, পরের ধাপে findings মিলিয়ে দেখা হতে পারে। প্রধান agent run শুরু করে; server পেছনে সেটি চালায়।

এটি প্রধান agent-কে আলাদা run তৈরি করতে বলার থেকে ভিন্ন। workflow run এক run-এর ভেতরে child thread সমন্বয় করে এবং শুরু করা agent-কে ফল ফিরিয়ে দেয়। সাধারণ session message নিজে থেকে run শুরু করে না; কাজ ও system prompt অনুযায়ী agent ঠিক করে কখন শুরু হবে। Anthropic জানায়, একটি session-এ একাধিক run খোলা থাকতে পারে, তবে প্রতিটি run-এর নিজস্ব ধাপ ও ফল থাকে।

শুরু করার আগে

আপনার Claude Console account, একটি API key এবং Claude Managed Agents ব্যবহারের অধিকার লাগবে। Anthropic-এর মতে API account-এ এটি পূর্বনির্ধারিতভাবে সক্রিয়। agent ও workflow endpoint-এ managed-agents-2026-04-01 beta header লাগে। Anthropic SDK স্বয়ংক্রিয়ভাবে header সেট করে; SDK ছাড়া API ডাকলে নিজেকেই এটি যোগ করতে হবে।

বর্তমান নথিতে Managed Agents-কে এখনও beta বলা হয়েছে। Anthropic-এর release notes অনুযায়ী public beta শুরু হয় ৯ এপ্রিল ২০২৬, multiagent orchestration ১১ মে এবং dynamic workflow ৯ অক্টোবর। dynamic workflow-ও beta। তারিখটি গুরুত্বপূর্ণ: “১,০০০ agent” সংখ্যা বর্তমান workflow-run সীমা, একসঙ্গে ১,০০০ agent চালুর নতুন সুবিধা নয়।

প্ল্যাটফর্ম session-এর কথোপকথনের ইতিহাস, sandbox-এর অবস্থা ও output server-এ রাখে। Anthropic জানায় Managed Agents বর্তমানে Zero Data Retention বা HIPAA Business Associate Agreement-এর আওতায় যোগ্য নয়। আপনার সংস্থা প্রযোজ্য তথ্যনীতি ও সেটআপ নিশ্চিত না করলে session-এ নিয়ন্ত্রিত বা গোপনীয় তথ্য রাখবেন না।

১. CLI ও SDK ইনস্টল করুন

Anthropic-এর ant CLI আপনার operating system-এর উপযোগী পদ্ধতিতে Managed Agents quickstartথেকে ইনস্টল করুন। উদাহরণস্বরূপ, নথিভুক্ত macOS command হলো:

Terminal
brew install anthropics/tap/ant

Python-এর জন্য SDK ইনস্টল করুন এবং API key source file-এ না রেখে environment-এর মাধ্যমে দিন:

Terminal
pip install anthropic
export ANTHROPIC_API_KEY="your-api-key"

উপরের key একটি placeholder। আসল মান আপনার স্বাভাবিক secret manager বা সুরক্ষিত environment configuration-এ রাখুন।

২. workflow ব্যবহার করতে পারে এমন agent নির্ধারণ করুন

তৈরি করুন document-reviewer.md। multiagent block অক্টোবরের workflow type চালু করে। subagent বন্ধ রাখলে নির্ধারিত delegation পথটি স্পষ্ট হয়: এই agent একবারের subagent delegation নয়, dynamic workflow ব্যবহার করে।

YAML
---
name: document-reviewer
model: claude-sonnet-5-5
tools:
  - type: agent_toolset_20260401
multiagent:
  type: multiagent_20261001
  subagents:
    type: disabled
  workflows:
    type: enabled
---

You review documents for a user-defined checklist.

When a request contains more than 20 independent files, use a dynamic workflow.
Make one phase that checks the files independently and a later phase that
reconciles duplicate findings. Do not infer missing facts. Save the final
machine-readable results to report.json and a concise explanation to summary.md.
Include the source filename and a short evidence excerpt for every finding.
If a file cannot be read or a worker fails, record that file as unresolved;
do not silently omit it. The final response must report the number of files
reviewed, unresolved files, and whether every output file was written.

threshold ও review instruction আপনার নীতিগত সিদ্ধান্ত, Anthropic-এর default নয়। কাজ ও ভুলের খরচ অনুযায়ী মানিয়ে নিন। claude-sonnet-5-5 একটি উদাহরণ model ID; আপনার account ও budget-এ বর্তমানে উপলভ্য model বেছে নিন।

agent তৈরি করে ফেরত পাওয়া ID সংরক্ষণ করুন:

Terminal
ant apply document-reviewer.md

CLI agent ID দেখায় এবং সেটি claude-lock.json-এ নথিভুক্ত করে। Managed Agents পুনর্ব্যবহারযোগ্য agent definition (model, নির্দেশনা, tool) এবং session চলার environment আলাদা রাখে।

৩. sandbox কনফিগার করুন

environment নির্ধারণ করে session কোথায় চলবে: Anthropic-পরিচালিত cloud sandbox-এ, নাকি আপনার infrastructure-এ self-hosted sandbox-এ। quickstart-এর cloud উদাহরণে network সীমিত এবং package manager অনুমোদিত:

YAML
# environment.yaml
name: document-review
config:
  type: cloud
  networking:
    type: limited
    allow_package_managers: true

প্রয়োগ করুন ant apply environment.yamlদিয়ে; ID-টিও claude-lock.json-এ সংরক্ষিত হয়। agent-এর network access লাগলে allowed_hosts-এ কেবল প্রয়োজনীয় host লিখুন। সীমিত network-এ সেই host list Managed Agents-এর web search ও fetch tool-ও সীমাবদ্ধ করে। package manager অনুমোদন করলেই website allowlist-এ যোগ হয় না।

প্রথম run-এ অল্প কয়েকটি, সংবেদনশীল নয় এমন file এবং দরকারি tool-ই ব্যবহার করুন। built-in agent toolset-এ shell ও file operation আছে; অতিরিক্ত tool দিলে agent-এর ক্ষমতার পরিধি বাড়তে পারে। বাইরের system বা credential-এ access দেওয়ার আগে documented permission policy ও sandbox control যাচাই করুন।

৪. session শুরু করে সীমিত কাজ পাঠান

agent ও environment ID দিয়ে Python SDK-তে session তৈরি করুন:

Python
import anthropic

client = anthropic.Anthropic()
session = client.beta.sessions.create(
    agent="AGENT_ID_FROM_CLAUDE_LOCK",
    environment_id="ENVIRONMENT_ID_FROM_CLAUDE_LOCK",
    title="Small document review",
)
print(session.id)

দুটি ID placeholder-এর জায়গায় claude-lock.json-এর মান বসান। এরপর session event stream-এ নির্দিষ্ট কাজ পাঠান। event পাঠানোর আগে stream শুরু করুন, যাতে run ও তার অগ্রগতি ঘটার সঙ্গে সঙ্গে দেখতে পান:

Python
with client.beta.sessions.events.stream(session.id) as stream:
    client.beta.sessions.events.send(
        session.id,
        events=[{
            "type": "user.message",
            "content": [{
                "type": "text",
                "text": (
                    "Review each Markdown file in /review-set for a missing "
                    "owner, deadline, or acceptance criterion. Quote evidence; "
                    "do not infer missing details. Reconcile duplicate findings "
                    "and write /mnt/session/outputs/report.json plus "
                    "/mnt/session/outputs/summary.md. In report.json, use "
                    "a files array with one record per input: path, status "
                    "(reviewed or unresolved), and findings; each finding has "
                    "a check, evidence excerpt, and source location. Include "
                    "input, reviewed, and unresolved counts."
                ),
            }],
        }],
    )
    open_runs = {}
    run_results = {}
    for event in stream:
        if event.type == "workflow_run.created":
            open_runs[event.workflow_run_id] = event.name
            print(f"Run started: {event.name}")
        elif event.type == "workflow_run.status_ended":
            run_results[event.workflow_run_id] = event.result.type
            open_runs.pop(event.workflow_run_id, None)
            print(f"Run ended: {event.result.type}")
        elif event.type == "workflow_run.error":
            print(f"Run error: {event.error}")
        elif event.type == "agent.message":
            for block in event.content:
                if block.type == "text":
                    print(block.text)
        elif event.type == "session.status_idle":
            if event.stop_reason.type == "end_turn" and not open_runs:
                break

    # Inspect the child threads associated with completed workflow runs.
    for thread in client.beta.sessions.threads.list(session.id):
        if thread.workflow_run_id in run_results:
            print(f"Thread {thread.id}: {thread.status}")
            for thread_event in client.beta.sessions.threads.events.list(
                thread.id, session_id=session.id
            ):
                if thread_event.type == "session.error":
                    print(f"Thread error: {thread_event}")

এই উদাহরণ ধরে নেয় আপনার configured session input method file-গুলোকে /review-set-এ প্রকাশ করে। agent-কে পর্যালোচনা বলতে আগে documented input method-এ file-গুলো session sandbox-এ রাখুন। output-এর জন্য agent-কে /mnt/session/outputs/-এর নিচে লিখতে বলুন; Managed Agents file documentation session-সীমাবদ্ধ file তালিকাভুক্ত ও download করার পদ্ধতি বর্ণনা করে। Python SDK-তে documented readback-এর রূপ হলো:

Python
files = client.beta.files.list(
    scope_id=session.id,
    betas=["managed-agents-2026-04-01"],
)
for report in files:
    if report.filename == "report.json":
        content = client.files.download(report.id)
        content.write_to_file("report.json")
        break

session idle হওয়ার পর file দেখা দিতে কয়েক সেকেন্ড লাগতে পারে; না থাকলে অল্প অপেক্ষার পর আবার তালিকা করুন। নিরাপদ প্রথম ধাপে কয়েকটি নথিসহ test folder বানান, যার প্রত্যাশিত findings নিজে পরীক্ষা করতে পারবেন। উদাহরণ prompt পর্যালোচনার কাজ নির্ধারণ করে; agent সব সমস্যা খুঁজে পাবে তার নিশ্চয়তা দেয় না।

output contract এমন কঠোর হওয়া উচিত যাতে audit করা যায়। উদাহরণ:

JSON
{
  "files": [
    {
      "path": "requirements.md",
      "status": "reviewed",
      "findings": [
        {
          "check": "deadline",
          "evidence_excerpt": "...",
          "source_location": "requirements.md, section 2"
        }
      ]
    }
  ],
  "input_count": 1,
  "reviewed_count": 1,
  "unresolved_count": 0
}

এটি আপনার workflow-এর জন্য প্রস্তাবিত schema, Anthropic-এর দেওয়া schema নয়। unresolved বা পড়া যায় না এমন file-গুলো record হিসেবে রাখুন, যাতে অনুপস্থিত ফলকে নির্ভুল পর্যালোচনা বলে ভুল না হয়।

৫. run ও তার output পরীক্ষা করুন

workflow শুরু হলে event stream জানায় workflow_run.created; এতে run ID ও workflow-এর ঘোষিত ধাপ থাকে। উদাহরণটি প্রতিটি run ID-কে সংশ্লিষ্ট workflow_run.status_endedআসা পর্যন্ত খোলা রাখে; শুধু মূল session idle থাকলেই পেছনের workflow শেষ হয়েছে প্রমাণ হয় না। প্রধান stream child-thread status সংক্ষেপ করে, আর thread-এর নিজস্ব event list-এ তার message ও error থাকে। উদাহরণটি workflow_run_id অনুযায়ী thread তালিকাভুক্ত করে এবং session.error event দেখায়। retry নিঃশেষ হওয়া ( retry_status.type == "exhausted"সহ) বা অন্য child error আছে কি না দেখুন এবং প্রভাবিত file-কে unresolved চিহ্নিত করুন।

“completed” শব্দটিকে নয়, output file-টিকে deliverable ধরুন। Anthropic স্পষ্ট করে সতর্ক করে যে thread-এর কাজ ব্যর্থ হলেও বা thread তৈরি না হলেও run completed অবস্থায় শেষ হতে পারে। report.json খুলে দেখুন প্রতিটি input file-এ findings অথবা স্পষ্ট unresolved status আছে কি না, evidence excerpt সঠিক source file দেখায় কি না, এবং সংখ্যা সরবরাহ করা file-এর সঙ্গে মেলে কি না। বড় corpus-এ ব্যবহারের আগে ছোট test folder-টি নিজের প্রত্যাশিত ফলের সঙ্গে তুলনা করুন।

client সংযোগ বিচ্ছিন্ন হলে নতুন event stream খোলার পরের event-গুলোই পাঠায়। documented event-type filter ও pagination অনুসরণ করে আগের session event তালিকাভুক্ত করে run state পুনর্গঠন করুন। child thread কাজ করে যেতে পারে, তাই প্রধান agent idle দেখে run শেষ ধরে নেবেন না। দেখা সব run শেষ হলে session-scoped file তালিকা করুন এবং documented Files API দিয়ে /mnt/session/outputs/report.json ও summary.md download করুন। প্রতিটি দেওয়া file-এ reviewed বা unresolved record আছে কি না এবং সংখ্যা মেলে কি না দেখুন। উদাহরণ event loop নিজে report download বা যাচাই করে না।

যে সীমাগুলো নকশা বদলায়

Anthropic-এর বর্তমান workflow-run limit এক run-এ একসঙ্গে সর্বোচ্চ ৬৪টি workflow thread কাজ করতে পারে বলে নথিভুক্ত করে, তবে API এই concurrency নিশ্চিত করে না এবং মান বদলাতে পারে। ১,০০০-agent সীমা run-এর পুরো সময়ে শুরু হওয়া agent গোনে। এটি একসঙ্গে চলা thread-এর সংখ্যা নয়। মোট সীমায় পৌঁছানোর পর workflow আরেক agent শুরু করতে চাইলে run thread_limit_errorঅবস্থায় শেষ হয়; ব্যর্থ agent retry করলে অতিরিক্ত thread তৈরি হতে পারে।

একটি run default-এ ২৪ ঘণ্টা চলে, agent কম সময় নির্ধারণ করলে তারও কম। client-এর অপেক্ষার সময়ও গণনা হয়, এবং pause করা run-ও timeout হতে পারে। একটি session-এ default-এ idle run-সহ ১০টি open run থাকে। session-এর usage budget সব workflow agent-এর জন্য প্রযোজ্য; সীমায় পৌঁছালে budget বাড়ানো বা সরানো পর্যন্ত open run থামে। ছোট কাজের একক পরিকল্পনা করুন, file-এ checkpoint রাখুন এবং reconciliation ধাপে অসমাপ্ত বিষয় জানাতে বলুন—পর্যালোচনা হয়েছে বলে ভান করতে নয়।

ব্যর্থতার ক্ষেত্রে workflow_run.error এবং সংশ্লিষ্ট thread দেখুন। program_error মানে workflow code বা child ব্যর্থ হতে পারে; thread_limit_error ১,০০০-agent সীমা বোঝায়; timeout_error run-এর সময়সীমা বোঝায়। run session budget-এ পৌঁছালে resume করতে budget বাড়ান বা সরান। workflow থামাতে হলে primary agent-কে তার run থামাতে বলুন; session turn interrupt করাই run বাতিলের command নয়।

খরচ

Anthropic-এর pricing documentation Managed Agents-এর model token নির্বাচিত model-এর rate-এ এবং session runtime চলমান session-প্রতি ঘণ্টায় $0.08হিসাবে বিল করে। session status runningথাকলে runtime জমে; idle, পুনঃনির্ধারণ ও terminated সময় গণনা হয় না। workflow run-এর আলাদা fee নেই, কিন্তু thread-এর token খরচ session-এর অংশ। session-এর ভেতর web search-এর মূল্য ১,০০০ search-এ $10। সঠিক মোট নির্ভর করে model, input/output token, tool এবং session কতক্ষণ চলে তার ওপর; ১,০০০-agent সীমা দেখে অনুমান না করে Console-এ usage দেখুন।

ব্যবহারিকভাবে কয়েকটি file দিয়ে শুরু করুন, workflow output প্রতিটির হিসাব দিচ্ছে কি না দেখুন, ব্যর্থ thread পরীক্ষা করুন, তারপর review policy ও খরচ গ্রহণযোগ্য হলেই input বাড়ান। Managed workflow asynchronous parallel কাজ সমন্বয়ের উপায় দেয়; findings-এর সত্যতা প্রত্যয়িত করে না।

বড় পরিবর্তন

৯ অক্টোবর থেকে Managed Agents-এর agent এক workflow program লিখতে পারে, যা server একাধিক agent thread ও ধাপে চালায়। main session অগ্রগতি দেখার সময় নির্মাতারা সীমিত ও audit-যোগ্যভাবে কাজ ভাগ করতে এই পথ ব্যবহার করতে পারেন। সুবিধাটি এখনও beta, আর প্রকাশিত limit নিশ্চিত করে না যে প্রতিটি run সর্বোচ্চ concurrency-তে পৌঁছাবে বা সঠিক findings দেবে।

সূত্র ও আরও পড়ুন