
HEXIS কী?
HEXIS একটি Python প্যাকেজ এবং কমান্ড-লাইন টুল, যা SKILL.md নথি দিয়ে উপস্থাপিত এজেন্ট স্কিলকে একটি extended finite state machine-এ কম্পাইল করে। একটি ভাষা মডেলকে পুরো স্কিল ব্যাখ্যা করে প্রতিটি পরবর্তী ধাপ বেছে নিতে বলার পরিবর্তে, HEXIS প্রোগ্রামগত state, variable, guard এবং transition ব্যবহার করে কার্যক্রমের ক্রম নিশ্চিত করে।
ভাষা মডেলগুলো এখনো প্রাসঙ্গিক state-এর ভেতরে reasoning ও generation সম্পাদন করে। তবে কোন operation পরবর্তী সময়ে চলবে, কোন variable উপলব্ধ থাকবে, কখন loop থামবে এবং কোন terminal outcome-এ পৌঁছানো হবে, তা machine নির্ধারণ করে। এই নকশা skill-এ লেখা requirement কোনো agent-এর বাদ দেওয়া, ক্রম পরিবর্তন করা বা ভুলভাবে প্রয়োগ করার ঝুঁকি কমায়।
HEXIS MIT license-এর অধীনে প্রকাশিত এবং বর্তমানে alpha software হিসেবে চিহ্নিত। এটি Compiling Agent Skills into Extended Finite State Machines প্রবন্ধের সঙ্গে প্রকাশিত।
মূল workflow
একটি সাধারণ HEXIS workflow-এর তিনটি ধাপ রয়েছে:
- Compile: একটি model skill document, task input, tool definition এবং skill rule পড়ে একটি
efsm-v1machine-এর খসড়া তৈরি করে। HEXIS এর schema, guard, reachability, termination, clause coverage এবং tool reference পরীক্ষা করে। অবৈধ খসড়া সংশোধনের জন্য model-এর কাছে ফেরত পাঠানো হয়। - Update: নতুন execution trace-কে event-এ normalise করা হয়। প্রতিটি trace step-এর জন্য একটি model, decisions file অথবা deterministic aligner নির্ধারণ করে সেটি বিদ্যমান state-এর সঙ্গে মেলানো হবে, নতুন state তৈরি হবে, noise উপেক্ষা করা হবে, নাকি trace বাদ দেওয়া হবে।
- Execute: runtime বর্তমান state-এর সঙ্গে যুক্ত action সম্পাদন করে, ঘোষিত output নথিবদ্ধ করে এবং যার guard true হয় এমন প্রথম transition গ্রহণ করে।
একটি updated machine কেবল তখনই গৃহীত হয়, যখন এটি প্রয়োজনীয় সব পরীক্ষা পাস করে এবং নতুন trace-এর পাশাপাশি আগে গৃহীত প্রতিটি trace replay করতে পারে। validation ব্যর্থ হলে বিদ্যমান machine অপরিবর্তিত থাকে।
প্রধান বৈশিষ্ট্য
- OpenAI-compatible compilation: কমান্ড লাইন থেকে model, endpoint এবং API-key environment variable বেছে নিন।
- Trace-based updates: আগে গৃহীত trace বাতিল না করে একবারে একটি decision হিসেবে সফল execution behavior যুক্ত করুন।
- পাঠযোগ্য JSON machine: machine-গুলো typed variable এবং explicit transition-সহ সাধারণ JSON
efsm-v1format ব্যবহার করে। - একাধিক action type: state-গুলো
tool,model,judge,userঅথবাendaction সম্পাদন করতে পারে। - সীমাবদ্ধ control flow: ordered guard এবং loop counter branching ও retry limit সমর্থন করে।
- Generated documentation: প্রতিটি সাধারণ build-এ
GUIDE.mdএবংPROMPT.mdঅন্তর্ভুক্ত থাকে। - Fallback behavior: fallback state সর্বশেষ tool step থেকে retry করে এবং মূল skill-এর interpreted execution-এ task হস্তান্তর করতে পারে।
- Tool backend: machine-গুলো OpenCode tool, local Bash executor অথবা model দ্বারা বাস্তবায়িত registry-defined tool ব্যবহার করতে পারে।
- Hermetic testing: repository-তে 350টির বেশি test রয়েছে, যেগুলোর জন্য API key, model endpoint অথবা network connection প্রয়োজন হয় না।
Installation ও prerequisites
PyPI থেকে install করুন
HEXIS-এর জন্য Python 3.11 অথবা 3.12 প্রয়োজন। pip দিয়ে package-টি install করুন:
pip install hexis-agent
Python-এ package-টি hexis হিসেবে import করা হয়, আর এর command-line executable-এর নাম hexis-agent।
checkout থেকে install করুন
pip install .
pytest, Ruff, build এবং Twine-এর মতো development dependency-এর জন্য editable installation ব্যবহার করুন:
pip install -e ".[dev]"
Runtime requirement
model-backed machine compile ও run করতে একটি OpenAI-compatible chat endpoint প্রয়োজন। default execution backend-এর জন্য PATH-এ OpenCode থাকাও প্রত্যাশিত। কোনো machine-এর কেবল Bash প্রয়োজন হলে --executor local নির্বাচন করুন, যাতে OpenCode ছাড়াই local subprocess-এ command চালানো যায়।
Offline quick start চেষ্টা করুন
package-টির সঙ্গে table_clean নামে একটি ছোট hermetic example রয়েছে। এটি scripted model, scripted tool এবং in-memory file system ব্যবহার করে, তাই network access ছাড়াই চালানো যায়।
from hexis.execution import runtime
from hexis.examples import table_clean as tc
machine = tc.reference_machine()
task = tc.gen_tasks(1, seed=0)[0]
result = runtime.run_task(
machine,
task,
model=tc.build_model(),
tools=tc.build_registry(tc.MemFS(task["files"])),
doc=tc.skill_doc(),
)
print(
result.stopped,
" -> ".join(result.path()),
tc.verify(task, result.trace),
)
example-টি terminal result দিয়ে শেষ হওয়া উচিত, state path print করা উচিত এবং তৈরি হওয়া trace example verifier পাস করেছে কি না তা জানানো উচিত। কোনো external endpoint configure করার আগে installation সফল হয়েছে কি না নিশ্চিত করার এটি একটি কার্যকর উপায়।
একটি model endpoint configure করুন
HEXIS command-line option অথবা environment variable থেকে model identifier, base URL এবং API key পড়ে। একটি সাধারণ shell configuration এমন দেখায়:
export API_KEY=your-key
export MODEL=qwen3.6-flash
export BASE_URL=https://your-endpoint/v1
আপনি MODEL, BASE_URL এবং API_KEY একটি .env file-এও রাখতে পারেন। HEXIS working directory থেকে ওপরের দিকে খুঁজে দেখে এবং environment-এ আগে থেকেই থাকা variable-কে অগ্রাধিকার দেয়।
পুনর্ব্যবহারযোগ্য endpoint argument-গুলো একটি shell variable-এ রাখতে:
M="--model qwen3.6-flash --base-url https://your-endpoint/v1"
--api-key-env NAME অপশনটি কী-এর জন্য একটি ভিন্ন এনভায়রনমেন্ট ভেরিয়েবল নির্বাচন করে। API কী কমান্ড লাইনে পাস করা হয় না বা বিল্ড ম্যানিফেস্টে সংরক্ষণ করা হয় না।
একটি স্কিলকে মেশিনে কম্পাইল করুন
কম্পাইলারকে একটি স্কিল পাথে নির্দেশ করুন এবং একটি আউটপুট ডিরেক্টরি নির্বাচন করুন:
hexis-agent compile \
--skill path/to/skill \
--out build/ \
$M
স্কিল ডিরেক্টরিতে SKILL.md থাকা উচিত। এতে compile.json-ও থাকতে পারে, যেখানে টার্মিনাল, ডেরাইভড ইভেন্ট লেবেল, প্রয়োজনীয়তা এবং টার্মিনাল কন্ডিশন ঘোষণা করা যায়। ওই ফাইলের প্রতিটি নিয়ম যে বাক্য থেকে তৈরি হয়েছে, সেটি উদ্ধৃত করে।
compile.json না থাকলে, কম্পাইলার মডেলকে স্কিল থেকে নিয়ম বের করতে বলে এবং উদ্ধৃত টেক্সটটি ডকুমেন্টের সঙ্গে মিলিয়ে দেখে। এরপর কার্যকর কনফিগারেশনটি rules.json হিসেবে সংরক্ষণ করা হয়।
বিল্ড ডিরেক্টরিতে যা থাকে
machine.jsonবর্তমান মেশিন সংরক্ষণ করে।machine_init.jsonপ্রাথমিকভাবে কম্পাইল করা মেশিনটি সংরক্ষণ করে।build.json-এ সোর্সের তথ্য, কমান্ড সেটিংস, মডেলের বিবরণ, ফলাফল এবং টোকেন ব্যবহারের তথ্য থাকে, তবে API কী কখনো থাকে না।skill/SKILL.md,tools.jsonএবংrules.jsonকম্পাইলেশনের ইনপুট সংরক্ষণ করে।traces/-এ বিল্ডে ব্যবহৃত ট্রেসগুলোর হ্যাশ করা কপি থাকে।progress.jsonট্রেসের ফলাফল এবং মেশিনটিকে সুরক্ষিত রাখা গৃহীত ট্রেসগুলো সংরক্ষণ করে।decisions.jsonlআপডেট-সংক্রান্ত প্রশ্ন ও উত্তর ক্যাশ করে।report.md,context.jsonএবং লগ ফাইলগুলো ডায়াগনস্টিক তথ্য দেয়।GUIDE.mdইনপুট, টুল, স্টেট, ট্রানজিশন, লুপ এবং ফলব্যাক আচরণ ব্যাখ্যা করে।PROMPT.mdটুল-ব্যবহারকারী এজেন্টের জন্য একটি সিস্টেম প্রম্পট দেয়, যাতে সে মেশিনের প্রতিটি স্টেট ধাপে ধাপে চালাতে পারে।
মেশিন মডেল বুঝুন
একটি HEXIS মেশিন হলো efsm-v1 ফরম্যাট ব্যবহারকারী একটি JSON ডকুমেন্ট। এর প্রধান উপাদান হলো ভেরিয়েবল, স্টেট, অ্যাকশন, ট্রানজিশন, টার্মিনাল এবং একটি ফলব্যাক স্টেট।
ভেরিয়েবল
ভেরিয়েবল init_from-এর মাধ্যমে টাস্ক ইনপুটের ফিল্ড থেকে অথবা init-এর মাধ্যমে ধ্রুবক মান থেকে ইনিশিয়ালাইজ করা যায়। অ্যাকশনগুলো কেবল ঘোষিত ভেরিয়েবলেই তাদের ফলাফল লেখে।
অ্যাকশন
- Model: স্টেট-নির্দিষ্ট প্রম্পট এবং নির্বাচিত ইনপুট ভেরিয়েবল থেকে ঘোষিত ভেরিয়েবল তৈরি করে।
- Tool: নামযুক্ত একটি টুল কল করে।
${command}-এর মতো রেফারেন্স রানটাইমে প্রতিস্থাপিত হয়। - Judge: একটি নির্দিষ্ট সেট থেকে একটি লেবেল নির্বাচন করে অথবা
abstainলেবেল ফেরত দেয়। - User: ব্যবহারকারীর ইনপুট চায়।
- End: একটি টার্মিনাল ফলাফলসহ এক্সিকিউশন বন্ধ করে।
ট্রানজিশন ও গার্ড
কোনো স্টেটের অ্যাকশন শেষ হওয়ার পর ট্রানজিশনগুলো ক্রমানুসারে মূল্যায়ন করা হয়। যে গার্ডটি সত্য হয়, রানটাইম তার প্রথম ট্রানজিশনটি গ্রহণ করে। খালি গার্ড শর্তহীন এবং এটি শেষে থাকা উচিত। inc-এর মাধ্যমে কোনো ট্রানজিশন কাউন্টারও বাড়াতে পারে, যা সীমাবদ্ধ রিট্রাই লুপ চালু করে।
গার্ডগুলো hexis.machine.cond দ্বারা বাস্তবায়িত একটি সীমিত এক্সপ্রেশন ভাষা ব্যবহার করে। এটি পারস্পরিক একচেটিয়াতা এবং লুপের সীমার মতো বৈশিষ্ট্যের স্ট্যাটিক বিশ্লেষণ সমর্থন করে এবং Python-এর eval ব্যবহার করে না।
ট্রেস থেকে একটি মেশিন আপডেট করুন
এক্সিকিউশন ট্রেস হলো JSON Lines ফাইল। এগুলো টাস্কের মেটাডেটা এবং একটি ভার্ডিক্ট দিয়ে শুরু হয়, এরপর প্রতি লাইনে একটি করে ইভেন্ট থাকে। একটি ট্রেসে টুল কল, মডেলের আউটপুট এবং সমাপ্তির ইভেন্ট থাকতে পারে।
মডেল কল না করে বা কোনো পরিবর্তন না লিখে প্রথমে অপেক্ষমাণ ট্রেসগুলোর প্রিভিউ দেখুন:
hexis-agent update \
--build build/ \
--traces traces/ \
--show 3
এরপর আপডেট সম্পাদন করুন:
hexis-agent update \
--build build/ \
--traces traces/ \
$M
প্রতিটি ট্রেস ধাপের জন্য ডিসাইডার চারটি ফলাফলের মধ্যে একটি নির্বাচন করে:
matchবিদ্যমান একটি স্টেট পুনরায় ব্যবহার করে এবং প্রয়োজন হলে একটি ট্রানজিশন যোগ করে।newউল্লেখ করা উদ্দেশ্যের ভিত্তিতে একটি স্টেট তৈরি করে।ignoreবিবেচনা থেকে হারনেসের অপ্রয়োজনীয় শব্দ বাদ দেয়।excludeসম্পূর্ণ ট্রেসটি বাদ দেয়।
মডেলের উত্তর একটি সম্ভাব্য স্টেট শনাক্ত করে, ধাপটির উদ্দেশ্য বর্ণনা করে এবং সেটিকে কোনো স্কিল ক্লজের সঙ্গে যুক্ত করতে পারে। HEXIS ফলস্বরূপ সম্ভাব্য মেশিনটি যাচাই করে এবং গ্রহণ করার আগে সুরক্ষিত সব ট্রেস পুনরায় চালায়।
আপডেট পুনরায় শুরু ও খরচ নিয়ন্ত্রণ
মডেলের উত্তরগুলো decisions.jsonl-এ ক্যাশ করা হয়। একই কমান্ড পুনরায় চালালে ওই উত্তরগুলো পুনরায় ব্যবহার করা হয়, আর স্ট্যাটাস 3 দিয়ে বাধাপ্রাপ্ত রান সংরক্ষিত অগ্রগতি থেকে পুনরায় শুরু করা যায়। মডেলকে ইচ্ছাকৃতভাবে আবার উত্তর দিতে বলতে হলে কেবল --no-cache ব্যবহার করুন।
সাধারণত একটি আপডেটে প্রতি ট্রেস ধাপের জন্য প্রায় একটি করে মডেল কল লাগে। একটি রান সীমিত করতে --max-traces N ব্যবহার করুন। মডেল ছাড়া বিকল্পের জন্য --decisions FILE-এর মাধ্যমে মানব বা বাহ্যিক সিদ্ধান্ত দিন, অথবা --decider align দিয়ে নির্ধারিত অ্যালাইনমেন্ট নির্বাচন করুন।
নতুন ট্রেস প্রক্রিয়া করার আগে HEXIS বর্তমান মেশিন পরীক্ষা করে এবং গৃহীত প্রতিটি ট্রেস পুনরায় চালায়। কোনো ম্যানুয়াল সম্পাদনা বা পরিবর্তিত টুল সংজ্ঞার কারণে বিল্ড নষ্ট হয়ে গেলে, কমান্ডটি স্ট্যাটাস 2 দিয়ে কোনো পরিবর্তন না করেই বন্ধ হয়।
কম্পাইল করা মেশিন চালান
এক্সিকিউশনের আগে build/GUIDE.md পরিদর্শন করুন। এতে প্রয়োজনীয় টাস্ক ইনপুট, উপলভ্য টুল, স্টেট অ্যাকশন, ট্রানজিশনের ক্রম, রিট্রাইয়ের সীমা এবং ফলব্যাক আচরণ নথিভুক্ত আছে।
কী-ভ্যালু টাস্ক ইনপুট দিয়ে মেশিন চালান:
hexis-agent run \
--machine build/ \
--input request="Process this task" \
--workdir work/ \
--executor local \
$M
মেশিনের প্রত্যাশিত প্রতিটি ইনপুটের জন্য অতিরিক্ত --input KEY=VALUE অপশন দিন। এক্সিকিউশনটি পুনর্ব্যবহারযোগ্য JSON Lines ট্রেস হিসেবে সংরক্ষণ করতে যোগ করুন:
--json run-trace.jsonl
ডিফল্ট এক্সিকিউটর OpenCode টুল ব্যবহার করে। লোকাল এক্সিকিউটর একটি সাবপ্রসেসে Bash কমান্ড চালায়। রানটাইমে কোনো মেশিন কেবল তার ব্যাকএন্ডের সরবরাহ করা অথবা টুল রেজিস্ট্রিতে সংজ্ঞায়িত টুল ব্যবহার করতে পারে; অনুপস্থিত টুল HEXIS নীরবে প্রতিস্থাপন করে না।
Python থেকে একটি মেশিন ব্যবহার করুন
কোর রানটাইম এন্ট্রি পয়েন্ট হলো hexis.execution.runtime.run_task। একটি লোড করা মেশিন, input অবজেক্টসহ একটি টাস্ক, একটি মডেল অ্যাডাপ্টার, একটি টুল রেজিস্ট্রি এবং ফলব্যাক এক্সিকিউশনে প্রয়োজন হতে পারে এমন স্কিল ডকুমেন্ট সরবরাহ করুন।
from hexis.execution import runtime
result = runtime.run_task(
machine,
{"input": {
"request": "Answer the question",
"output_path": "answer.txt",
}},
model=model,
tools=tools,
doc=skill_document,
)
print(result.stopped)
print(result.path())
print(result.trace)
সম্পর্কিত API-গুলোর মধ্যে মেশিন লোড করার জন্য hexis.machine.schema.load_machine, এন্ডপয়েন্ট কনফিগারেশনের জন্য hexis.llm.llm_client.client_from_env, এবং গাইড, প্রম্পট ও Mermaid ডায়াগ্রাম রেন্ডার করার জন্য hexis.guide-এর ফাংশন রয়েছে।
সরবরাহ করা উদাহরণ মেশিনগুলোর সঙ্গে কাজ করুন
রিপোজিটরিতে examples/machines/-এর অধীনে চারটি কম্পাইল করা মেশিন রয়েছে:
- dabench: একটি কম্পিউটেশন ব্যবহার করে ডেটা ফাইল সম্পর্কিত ডেটা-বিশ্লেষণ প্রশ্নের উত্তর দেয়।
- livemath: উপপাদ্যভিত্তিক বহুনির্বাচনী গণিত প্রশ্নের উত্তর দেয়।
- sealqa: একটি লোকাল করপাস থেকে প্রশ্নের উত্তর দেয় এবং প্রমাণ অন্তর্ভুক্ত করে।
- spreadsheet: কাঠামো পরিবর্তন না করে একটি ওয়ার্কবুক সম্পাদনা করে।
এই মেশিনগুলোতে সাধারণত একটি মডেল স্টেট শেল কমান্ড লেখে, একটি টুল স্টেট সেটি চালায়, returncode-এর ভিত্তিতে নিয়ন্ত্রিত পুনঃচেষ্টা হয়, একটি টুল ধাপ উত্তরটি আবার পড়ে এবং একটি জাজ স্টেট যাচাইকৃত বা অযাচাইকৃত টার্মিনালের একটি নির্বাচন করে।
উদাহরণস্বরূপ, LiveMath মেশিন চালান:
hexis-agent run \
--machine examples/machines/livemath \
--input request="..." \
--input output_path=answer.txt \
--workdir work/ \
--executor local \
$M
মডেল ছাড়াই উদাহরণ মেশিনগুলো লোড ও কাঠামোগতভাবে পরীক্ষা করা যায়, তবে সেগুলো চালাতে কনফিগার করা মডেল এন্ডপয়েন্ট প্রয়োজন।
উন্নত টিপস
ডকুমেন্টেশন পুনরায় তৈরি করুন
--no-guide ব্যবহার না করলে কম্পাইলেশন ও আপডেট স্বয়ংক্রিয়ভাবে ডকুমেন্টেশন তৈরি করে। ম্যানুয়ালি পুনরায় তৈরি করুন:
hexis-agent guide --build build/
আপনি কমান্ডটিকে সরাসরি machine.json-এর দিকেও নির্দেশ করতে পারেন। তৈরি করা এজেন্ট প্রম্পটে মূল স্কিল অন্তর্ভুক্ত করতে চাইলে --embed-skill যোগ করুন; এতে ফলব্যাকের পর ইন্টারপ্রেটেড এক্সিকিউশন সম্ভব হয়।
স্পষ্ট টুল সংজ্ঞা সরবরাহ করুন
মেশিনটি কাস্টম টুল ব্যবহার করলে --tools registry.json দিন। কম্পাইলেশনের সময় টুলের নামগুলোকে অপরিবর্তনীয় শনাক্তকারী হিসেবে বিবেচনা করা হয়। রানটাইমে রেজিস্ট্রিতে সংজ্ঞায়িত টুলগুলো মডেলের মাধ্যমে শেল কমান্ড হিসেবে বাস্তবায়িত হতে পারে, আর নেটিভ টুলগুলো নির্বাচিত ব্যাকএন্ডকে সরবরাহ করতে হবে।
মডেল রিকোয়েস্ট সামঞ্জস্য করুন
কম্পাইলেশন ও আপডেট --temperature, --max-tokens, --llm-timeout, --llm-retries, --stream এবং --extra-body JSON-সহ বিভিন্ন অপশন সমর্থন করে। Qwen-সামঞ্জস্যপূর্ণ এন্ডপয়েন্টের জন্য --no-think, --think-budget এবং --judge-think-budget দিয়ে রানটাইমের reasoning নিয়ন্ত্রণ করা যায়।
প্রোভাইডার-নির্দিষ্ট এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করুন
--provider NAME অপশনটি NAME_MODEL, NAME_BASE_URL এবং NAME_API_KEY পড়ে। MiniMax ও DeepSeek প্রোভাইডার নামের জন্য বিল্ট-ইন ডিফল্ট উপলব্ধ।
এক্সিট স্ট্যাটাস জানুন
0সাফল্য নির্দেশ করে।2ব্যবহার, কনফিগারেশন বা বিল্ড-সংক্রান্ত সমস্যা নির্দেশ করে।3মডেল এন্ডপয়েন্ট ব্যর্থতা বা বিঘ্ন নির্দেশ করে; পুনরায় চালানোর জন্য অগ্রগতি সংরক্ষিত হয়।
ডেভেলপমেন্ট পরীক্ষা চালান
pytest
ruff check src tests
python -m build && twine check --strict dist/*
টেস্ট স্যুটটি হারমেটিক। opencode এক্সিকিউটেবল অনুপস্থিত থাকলে OpenCode-নির্দিষ্ট পরীক্ষাগুলো এড়িয়ে যাওয়া হয়।
নিরাপত্তা ও গোপনীয়তা
HEXIS ভাষা মডেল দ্বারা তৈরি টুল আর্গুমেন্ট, যার মধ্যে শেল কমান্ডও রয়েছে, চালাতে পারে। অবিশ্বস্ত ওয়ার্কলোড বিচ্ছিন্ন পরিবেশে চালান এবং কেবল বিশ্বস্ত মেশিন, স্কিল, রেজিস্ট্রি ও টাস্ক ফাইল ব্যবহার করুন।
আপডেট প্রক্রিয়া ট্রেসের ধাপ, সংক্ষিপ্ত টুল ফলাফল এবং স্কিলের ক্লজ কনফিগার করা মডেল এন্ডপয়েন্টে পাঠায়। বিল্ড ডিরেক্টরিগুলো ট্রেসের কপি ও মডেলের প্রশ্ন সংরক্ষণ করে। এ ছাড়া PROMPT.md-তে স্কিল থেকে উদ্ভূত সম্পূর্ণ মেশিন ও প্রম্পট থাকে। এগুলো শেয়ার করার আগে পর্যালোচনা করুন।
রানটাইম প্রতিটি মডেল কলকে বর্তমানে এক্সিকিউট হওয়া স্টেটের প্রম্পটের মধ্যে সীমাবদ্ধ রাখে, ফলে প্রতিটি কলে পুরো মেশিন উন্মুক্ত হয় না।
উপসংহার
HEXIS প্রাকৃতিক ভাষায় লেখা এজেন্ট নির্দেশনাকে স্পষ্ট, যাচাইকৃত ওয়ার্কফ্লোতে রূপান্তর করে। স্টেটের ভেতরে মডেলের reasoning-এর সঙ্গে প্রোগ্রামেটিক ট্রানজিশন, ট্রেস রিপ্লে, সীমাবদ্ধ পুনঃচেষ্টা, টুল বিধিনিষেধ, তৈরি করা গাইড এবং ফলব্যাক ব্যবস্থাপনা মিলিয়ে এটি স্কিল এক্সিকিউশনকে আরও পূর্বানুমেয় করার একটি কাঠামোবদ্ধ উপায় দেয়। অফলাইন উদাহরণ দিয়ে শুরু করুন, একটি ছোট বিশ্বস্ত স্কিল কম্পাইল করুন, তৈরি করা গাইড পরীক্ষা করুন, তারপর যাচাইকরণের ফলাফল পর্যবেক্ষণ করে ধীরে ধীরে ট্রেস যুক্ত করুন।
