Ai Claw Orchestrator: Difference between revisions
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
= راهاندازی Agentic Development Environment در Windows با Claw Orchestrator = | = راهاندازی Agentic Development Environment در Windows با Claw Orchestrator = | ||
این راهنما برای ساخت یک محیط '''Agentic Development''' روی Windows است که چند Coding Agent مختلف را | این راهنما برای ساخت یک محیط '''Agentic Development''' روی Windows است که چند Coding Agent مختلف را توسط '''Claw Orchestrator''' مدیریت میکند. | ||
هدف این معماری استفاده از چند Coding Agent به عنوان | هدف اصلی این معماری: | ||
* استفاده همزمان از چند Coding Agent | |||
* مدیریت Sessionهای Agentها | |||
* اجرای چند Agent روی یک پروژه | |||
* استفاده از Agentهای مختلف به عنوان Coder و Reviewer | |||
* ایجاد Multi-Agent Council | |||
* استفاده از LLM-as-a-Judge | |||
* جداسازی تغییرات Agentها با Git Worktree | |||
* انجام Build، Test، Lint و Security Check قبل از داوری LLM | |||
* نگهداری Run History | |||
* استفاده از Dashboard برای مدیریت سیستم | |||
معماری کلی: | |||
<pre> | <pre> | ||
| Line 20: | Line 33: | ||
└── Claw Orchestrator | └── Claw Orchestrator | ||
│ | │ | ||
├── Dashboard | |||
├── Persistent Sessions | ├── Persistent Sessions | ||
├── Multi-Agent | ├── Multi-Agent | ||
| Line 36: | Line 50: | ||
= پیشنیازها = | = پیشنیازها = | ||
قبل از نصب Agentها بهتر است ابزارهای زیر | قبل از نصب Agentها بهتر است ابزارهای زیر نصب شده باشند: | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 64: | Line 78: | ||
|- | |- | ||
| Python | | Python | ||
| | | SDKهای Python | ||
| اختیاری | | اختیاری | ||
|} | |} | ||
== بررسی پیشنیازها == | == بررسی پیشنیازها == | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 80: | Line 92: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
بررسی مسیر executableها: | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 98: | Line 110: | ||
[https://claude.ai/ Claude] | [https://claude.ai/ Claude] | ||
=== | === نصب با PowerShell === | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 104: | Line 116: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === نصب با CMD / curl === | ||
<syntaxhighlight lang="bat"> | <syntaxhighlight lang="bat"> | ||
| Line 110: | Line 122: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === نصب با Winget === | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 161: | Line 173: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== بررسی | === بررسی === | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 194: | Line 206: | ||
[https://cursor.com/ Cursor] | [https://cursor.com/ Cursor] | ||
=== نصب CLI | === نصب CLI === | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 200: | Line 212: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== بررسی | === بررسی === | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 206: | Line 218: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Cursor | Cursor ممکن است command کوتاه زیر را نیز ارائه کند: | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 239: | Line 251: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== بررسی | === بررسی === | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 274: | Line 286: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''نکته:''' | '''نکته:''' اگر فقط قصد استفاده از Coding Agent و Claw Orchestrator را دارید، معمولاً نیازی به نصب SDK پایتون نیست. | ||
---- | ---- | ||
| Line 284: | Line 296: | ||
[https://opencode.ai/ OpenCode] | [https://opencode.ai/ OpenCode] | ||
=== | === تنظیم npm === | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 302: | Line 314: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== بررسی | === بررسی === | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 341: | Line 353: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== بررسی === | |||
=== بررسی | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 366: | Line 372: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''نکته:''' | '''نکته:''' اگر Freebuff integration مستقیم نداشته باشد، میتوان اتصال آن به Orchestrator را از طریق Custom Engine بررسی کرد. | ||
---- | ---- | ||
| Line 372: | Line 378: | ||
= نصب Claw Orchestrator = | = نصب Claw Orchestrator = | ||
Claw Orchestrator لایه مرکزی Orchestration | Claw Orchestrator لایه مرکزی Orchestration این معماری است. | ||
== نصب == | == نصب === | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 382: | Line 386: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== بررسی نسخه === | |||
== بررسی نسخه == | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 394: | Line 392: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Help === | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 400: | Line 398: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
نمونه دستورات | نمونه دستورات: | ||
<pre> | <pre> | ||
clawo acp | clawo acp | ||
clawo serve | clawo serve | ||
clawo session-start | clawo session-start | ||
clawo session-send | clawo session-send | ||
| Line 410: | Line 409: | ||
clawo session-list | clawo session-list | ||
clawo session-status | clawo session-status | ||
clawo session-grep | clawo session-grep | ||
clawo session-compact | clawo session-compact | ||
clawo runs | |||
clawo agents-list | clawo agents-list | ||
clawo agents-create | clawo agents-create | ||
clawo skills-list | clawo skills-list | ||
clawo skills-create | clawo skills-create | ||
clawo rules-list | clawo rules-list | ||
clawo rules-create | clawo rules-create | ||
clawo session-team-list | clawo session-team-list | ||
clawo session-team-send | clawo session-team-send | ||
| Line 425: | Line 429: | ||
---- | ---- | ||
= | = Engineهای Claw Orchestrator = | ||
برای | برای مشاهده Engineهای نسخه نصبشده: | ||
<syntaxhighlight lang="powershell"> | |||
clawo session-start --help | |||
</syntaxhighlight> | |||
در نسخه 5.0.0 Engineهای زیر در CLI ارائه میشوند: | |||
<pre> | |||
claude | |||
codex | |||
codex-app | |||
gemini | |||
agy | |||
cursor | |||
opencode | |||
custom | |||
</pre> | |||
نمونه: | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
clawo | clawo session-start my-agent --engine claude | ||
</syntaxhighlight> | </syntaxhighlight> | ||
---- | |||
= مشکل npm Install Scripts = | |||
در نسخههای جدید npm ممکن است Install Script بعضی dependencyهای Claw Orchestrator به دلایل امنیتی Block شود. | |||
نمونه: | |||
<pre> | <pre> | ||
npm warn install-scripts | |||
openclaw | |||
re2 | |||
@google/genai | |||
tree-sitter-bash | |||
protobufjs | |||
</pre> | |||
در این شرایط ممکن است CLI کار کند ولی Server با خطایی مشابه زیر اجرا نشود: | |||
<pre> | |||
Error: Cannot find module './build/Release/re2.node' | |||
</pre> | </pre> | ||
---- | == رفع مشکل RE2 == | ||
اجازه اجرای Scriptهای موردنیاز: | |||
<syntaxhighlight lang="powershell"> | |||
npm config set allow-scripts=openclaw,re2,@google/genai,tree-sitter-bash,protobufjs --location=user | |||
</syntaxhighlight> | |||
بررسی: | |||
= | <syntaxhighlight lang="powershell"> | ||
npm config get allow-scripts | |||
</syntaxhighlight> | |||
سپس: | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
cd "$env:APPDATA\npm\node_modules\@enderfga\claw-orchestrator" | |||
npm | npm rebuild re2 | ||
</syntaxhighlight> | |||
در صورت موفقیت: | |||
<pre> | |||
rebuilt dependencies successfully | |||
</pre> | |||
سپس Server را مجدداً اجرا کنید: | |||
clawo | <syntaxhighlight lang="powershell"> | ||
clawo serve | |||
</syntaxhighlight> | </syntaxhighlight> | ||
---- | ---- | ||
= | = اجرای Standalone Server = | ||
برای اجرای Claw Orchestrator: | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
clawo serve | |||
</syntaxhighlight> | |||
نمونه خروجی: | |||
<pre> | |||
[ultraapp] runtime mode: host | |||
[ultraapp] router on http://127.0.0.1:19000/forge/<slug>/ | |||
[embedded-server] Listening on http://127.0.0.1:18796 | |||
[embedded-server] Token file: C:\Users\USER\.openclaw\server-token | |||
Standalone server running on http://127.0.0.1:18796 | |||
Press Ctrl+C to stop | |||
</pre> | |||
---- | |||
= Dashboard = | |||
پس از اجرای: | |||
<syntaxhighlight lang="powershell"> | |||
clawo serve | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Claw Orchestrator آدرس Dashboard دارای Authentication Token را در Terminal نمایش میدهد. | |||
ساختار URL: | |||
<pre> | |||
http://127.0.0.1:18796/dashboard?token=YOUR_TOKEN | |||
</pre> | |||
'''هشدار امنیتی:''' | |||
Token واقعی را: | |||
* داخل Wiki قرار ندهید. | |||
* داخل Git Commit نکنید. | |||
* در Screenshot عمومی منتشر نکنید. | |||
* برای دیگران ارسال نکنید. | |||
Token در فایل محلی زیر نگهداری میشود: | |||
<pre> | |||
C:\Users\USERNAME\.openclaw\server-token | |||
</pre> | |||
بعد از Authentication، آدرس پایه Dashboard: | |||
<pre> | |||
http://127.0.0.1:18796/dashboard | |||
</pre> | |||
---- | |||
= Forge Router = | |||
هنگام اجرای Server ممکن است Router دیگری نیز اجرا شود: | |||
<pre> | |||
http://127.0.0.1:19000/forge/<slug>/ | |||
</pre> | |||
این Router توسط بخش Forge مورد استفاده قرار میگیرد. | |||
---- | |||
= معماری Standalone = | |||
<pre> | |||
Claude Code ───────┐ | |||
Codex ─────────────┤ | |||
Cursor Agent ──────┤ | |||
OpenCode ──────────┤ | |||
Antigravity ───────┤ | |||
Custom Engine ─────┤ | |||
↓ | |||
Claw Orchestrator | |||
│ | |||
┌──────────┼──────────┐ | |||
↓ ↓ ↓ | |||
Sessions Agents Skills | |||
│ │ │ | |||
└──────────┼──────────┘ | |||
↓ | |||
Rules | |||
│ | |||
↓ | |||
Dashboard | |||
</pre> | |||
---- | ---- | ||
| Line 500: | Line 618: | ||
= Health Check کامل = | = Health Check کامل = | ||
برای بررسی | برای بررسی محیط، فایل زیر را ایجاد کنید: | ||
<pre> | <pre> | ||
| Line 506: | Line 624: | ||
</pre> | </pre> | ||
محتوای | و محتوای زیر را در آن قرار دهید: | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
$tools = @( | $tools = @( | ||
@{ Name = "Node.js"; Command = "node"; Args = "--version" } | @{ Name = "Node.js"; Command = "node"; Args = @("--version") } | ||
@{ Name = "npm"; Command = "npm"; Args = "--version" } | @{ Name = "npm"; Command = "npm"; Args = @("--version") } | ||
@{ Name = "Git"; Command = "git"; Args = "--version" } | @{ Name = "Git"; Command = "git"; Args = @("--version") } | ||
@{ Name = "Claude Code"; Command = "claude"; Args = "--version" } | @{ Name = "Claude Code"; Command = "claude"; Args = @("--version") } | ||
@{ Name = "Codex"; Command = "codex"; Args = "--version" } | @{ Name = "Codex"; Command = "codex"; Args = @("--version") } | ||
@{ Name = "OpenCode"; Command = "opencode"; Args = "--version" } | @{ Name = "OpenCode"; Command = "opencode"; Args = @("--version") } | ||
@{ Name = "Cursor Agent"; Command = "cursor-agent"; Args = "--version" } | @{ Name = "Cursor Agent"; Command = "cursor-agent"; Args = @("--version") } | ||
@{ Name = "Antigravity"; Command = "agy"; Args = "--version" } | @{ Name = "Antigravity"; Command = "agy"; Args = @("--version") } | ||
@{ Name = "Freebuff"; Command = "freebuff"; Args = "--version" } | @{ Name = "Freebuff"; Command = "freebuff"; Args = @("--version") } | ||
@{ Name = "Claw Orchestrator"; Command = "clawo"; Args = "--version" } | @{ Name = "Claw Orchestrator"; Command = "clawo"; Args = @("--version") } | ||
) | ) | ||
$results = @() | |||
function Write-Section { | |||
param([string]$Title) | |||
Write-Host "" | |||
Write-Host "============================================================" -ForegroundColor Cyan | |||
Write-Host " $Title" -ForegroundColor Cyan | |||
Write-Host "============================================================" -ForegroundColor Cyan | |||
} | |||
function Add-Result { | |||
param( | |||
[string]$Name, | |||
[string]$Status, | |||
[string]$Version = "", | |||
[string]$Path = "" | |||
) | |||
$script:results += [PSCustomObject]@{ | |||
Name = $Name | |||
Status = $Status | |||
Version = $Version | |||
Path = $Path | |||
} | |||
} | |||
Clear-Host | |||
Write-Host "" | Write-Host "" | ||
Write-Host "========================================" -ForegroundColor Cyan | Write-Host "============================================================" -ForegroundColor Cyan | ||
Write-Host " | Write-Host " AGENTIC DEV OS HEALTH CHECK" -ForegroundColor Cyan | ||
Write-Host "========================================" -ForegroundColor Cyan | Write-Host "============================================================" -ForegroundColor Cyan | ||
Write- | |||
Write-Section "CLI TOOLS" | |||
foreach ($tool in $tools) { | foreach ($tool in $tools) { | ||
| Line 534: | Line 682: | ||
$command = Get-Command $tool.Command -ErrorAction SilentlyContinue | $command = Get-Command $tool.Command -ErrorAction SilentlyContinue | ||
if ($command) { | if (-not $command) { | ||
Write-Host "[MISSING] " -ForegroundColor Red -NoNewline | |||
Write-Host $tool.Name | |||
Add-Result -Name $tool.Name -Status "MISSING" | |||
continue | |||
} | |||
try { | |||
$output = & $tool.Command @($tool.Args) 2>&1 | |||
$version = ( | |||
$output | | |||
Where-Object { $_ -ne $null } | | |||
Select-Object -First 1 | |||
).ToString().Trim() | |||
Write-Host "[OK] " -ForegroundColor Green -NoNewline | |||
Write-Host "$($tool.Name) -> $version" | |||
Write-Host " Path: " -ForegroundColor DarkGray -NoNewline | |||
Write-Host $command.Source -ForegroundColor DarkGray | |||
Add-Result ` | |||
-Name $tool.Name ` | |||
-Status "OK" ` | |||
-Version $version ` | |||
-Path $command.Source | |||
} | |||
catch { | |||
Write-Host "[WARNING] " -ForegroundColor Yellow -NoNewline | |||
Write-Host "$($tool.Name) -> command exists but version check failed" | |||
Add-Result ` | |||
-Name $tool.Name ` | |||
-Status "WARNING" ` | |||
-Path $command.Source | |||
} | |||
Write-Host "" | |||
} | |||
Write-Section "PATH CHECK" | |||
$pathEntries = @( | |||
$env:Path -split ";" | | |||
ForEach-Object { | |||
$_.Trim().TrimEnd("\") | |||
} | | |||
Where-Object { | |||
$_ | |||
} | |||
) | |||
$duplicatePaths = @( | |||
$pathEntries | | |||
Group-Object | | |||
Where-Object { | |||
$_.Count -gt 1 | |||
} | |||
) | |||
if ($duplicatePaths.Count -eq 0) { | |||
Write-Host "[OK] No duplicate PATH entries found." -ForegroundColor Green | |||
} | |||
else { | |||
Write-Host "[WARNING] Duplicate PATH entries found:" -ForegroundColor Yellow | |||
foreach ($duplicate in $duplicatePaths) { | |||
Write-Host " [$($duplicate.Count)x] $($duplicate.Name)" ` | |||
-ForegroundColor Yellow | |||
} | |||
} | |||
Write-Section "NPM CONFIGURATION" | |||
try { | |||
$allowScripts = npm config get allow-scripts 2>$null | |||
Write-Host "allow-scripts:" | |||
Write-Host " $allowScripts" | |||
$requiredScripts = @( | |||
"openclaw", | |||
"re2", | |||
"@google/genai", | |||
"tree-sitter-bash", | |||
"protobufjs" | |||
) | |||
$configuredScripts = @( | |||
$allowScripts -split "," | | |||
ForEach-Object { | |||
$_.Trim() | |||
} | |||
) | |||
foreach ($package in $requiredScripts) { | |||
if ($configuredScripts -contains $package) { | |||
Write-Host "[OK] " -ForegroundColor Green -NoNewline | Write-Host "[OK] " -ForegroundColor Green -NoNewline | ||
Write-Host "$($ | Write-Host "$package install scripts allowed" | ||
} | |||
else { | |||
Write-Host "[WARNING] " -ForegroundColor Yellow -NoNewline | |||
Write-Host "$package is not in npm allow-scripts" | |||
} | |||
} | |||
} | |||
catch { | |||
Write-Host "[WARNING] Could not read npm configuration." ` | |||
-ForegroundColor Yellow | |||
} | |||
Write-Section "CLAW ORCHESTRATOR" | |||
$clawoCommand = Get-Command clawo -ErrorAction SilentlyContinue | |||
if (-not $clawoCommand) { | |||
Write-Host "[MISSING] Claw Orchestrator is not installed." ` | |||
-ForegroundColor Red | |||
} | |||
else { | |||
Write-Host "[OK] Claw Orchestrator CLI found." ` | |||
-ForegroundColor Green | |||
try { | |||
$npmRoot = (npm root -g).Trim() | |||
$clawoRoot = Join-Path ` | |||
$npmRoot ` | |||
"@enderfga\claw-orchestrator" | |||
Write-Host "" | |||
Write-Host "Package:" | |||
Write-Host " $clawoRoot" | |||
if (Test-Path $clawoRoot) { | |||
Write-Host "[OK] Claw Orchestrator package directory found." ` | |||
-ForegroundColor Green | |||
} | |||
$re2File = Join-Path ` | |||
$clawoRoot ` | |||
"node_modules\re2\build\Release\re2.node" | |||
Write-Host "" | |||
Write-Host "RE2 Native Module:" | |||
if (Test-Path $re2File) { | |||
Write-Host " | Write-Host "[OK] re2.node found." ` | ||
Write-Host $ | -ForegroundColor Green | ||
Write-Host " $re2File" ` | |||
-ForegroundColor DarkGray | |||
} | } | ||
else { | |||
Write-Host "[ | Write-Host "[ERROR] re2.node NOT FOUND." ` | ||
-ForegroundColor Red | |||
Write-Host "" | |||
Write-Host "Fix:" | |||
Write-Host 'npm config set allow-scripts=openclaw,re2,@google/genai,tree-sitter-bash,protobufjs --location=user' | |||
Write-Host "cd `"$clawoRoot`"" | |||
Write-Host "npm rebuild re2" | |||
} | } | ||
} | |||
catch { | |||
Write-Host "[WARNING] Could not inspect Claw Orchestrator package." ` | |||
-ForegroundColor Yellow | |||
} | |||
} | |||
Write-Section "CLAW SERVER" | |||
$serverPort = 18796 | |||
$serverRunning = $false | |||
try { | |||
$connection = Get-NetTCPConnection ` | |||
-LocalPort $serverPort ` | |||
-State Listen ` | |||
-ErrorAction SilentlyContinue | |||
if ($connection) { | |||
$serverRunning = $true | |||
Write-Host "[OK] " -ForegroundColor Green -NoNewline | |||
Write-Host "Claw server is listening on port $serverPort" | |||
Write-Host "" | |||
Write-Host "Server:" | |||
Write-Host " http://127.0.0.1:$serverPort" | |||
} | } | ||
else { | else { | ||
Write-Host "[ | Write-Host "[INFO] Claw server is not currently running." ` | ||
-ForegroundColor Cyan | |||
Write-Host "" | |||
Write-Host "Start with:" | |||
Write-Host " clawo serve" | |||
} | } | ||
} | } | ||
catch { | |||
Write-Host "" | Write-Host "[WARNING] Could not check server port." ` | ||
Write-Host " | -ForegroundColor Yellow | ||
Write-Host " | } | ||
Write-Host " | |||
$tokenFile = Join-Path ` | |||
$HOME ` | |||
".openclaw\server-token" | |||
if (Test-Path $tokenFile) { | |||
Write-Host "" | |||
Write-Host "[OK] Server token file exists." ` | |||
-ForegroundColor Green | |||
Write-Host " $tokenFile" ` | |||
-ForegroundColor DarkGray | |||
} | |||
if ($serverRunning) { | |||
Write-Host "" | |||
Write-Host "Dashboard base URL:" | |||
Write-Host " http://127.0.0.1:$serverPort/dashboard" | |||
Write-Host "" | |||
Write-Host "NOTE: Authentication token is intentionally not displayed." ` | |||
-ForegroundColor DarkGray | |||
} | |||
Write-Section "SUMMARY" | |||
$installed = @( | |||
$results | | |||
Where-Object { | |||
$_.Status -eq "OK" | |||
} | |||
).Count | |||
$warnings = @( | |||
$ | $results | | ||
Where-Object { | |||
$_.Status -eq "WARNING" | |||
} | } | ||
).Count | |||
$ | |||
$missing = @( | |||
$results | | |||
Where-Object { | |||
$_.Status -eq "MISSING" | |||
} | } | ||
).Count | |||
Write-Host "CLI Tools OK : $installed" | |||
Write-Host "Warnings : $warnings" | |||
Write-Host "Missing : $missing" | |||
Write-Host "Total : $($tools.Count)" | |||
Write-Host "" | Write-Host "" | ||
if (($missing -eq 0) -and ($warnings -eq 0)) { | |||
Write-Host " | Write-Host "[READY] Agentic Development environment is ready." ` | ||
-ForegroundColor Green | |||
} | |||
elseif ($missing -eq 0) { | |||
Write-Host "[READY WITH WARNINGS] All CLI tools are installed." ` | |||
-ForegroundColor Yellow | |||
} | } | ||
else { | else { | ||
Write-Host | |||
Write-Host "[NOT READY] Some required tools are missing." ` | |||
-ForegroundColor Red | |||
} | } | ||
Write-Host "" | Write-Host "" | ||
if ($ | if ($serverRunning) { | ||
Write-Host " | Write-Host "Claw Server : RUNNING" ` | ||
-ForegroundColor Green | |||
} | } | ||
else { | else { | ||
Write-Host " | Write-Host "Claw Server : STOPPED" ` | ||
-ForegroundColor Cyan | |||
} | } | ||
| Line 615: | Line 1,010: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
---- | |||
= اجرای Health Check = | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 621: | Line 1,018: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
اگر Execution Policy مانع | اگر Execution Policy مانع اجرا شد: | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 641: | Line 1,032: | ||
---- | ---- | ||
= | = موارد بررسیشده توسط Health Check = | ||
{| class="wikitable" | {| class="wikitable" | ||
! | ! بررسی | ||
! | ! توضیح | ||
|- | |- | ||
| Node.js | | Node.js | ||
| | | نسخه و PATH | ||
|- | |- | ||
| npm | | npm | ||
| | | نسخه و PATH | ||
|- | |- | ||
| Git | | Git | ||
| | | نسخه و PATH | ||
|- | |- | ||
| Claude Code | | Claude Code | ||
| | | نسخه و PATH | ||
|- | |- | ||
| | | Codex | ||
| | | نسخه و PATH | ||
|- | |- | ||
| OpenCode | | OpenCode | ||
| | | نسخه و PATH | ||
|- | |- | ||
| Cursor Agent | | Cursor Agent | ||
| | | نسخه و PATH | ||
|- | |- | ||
| | | Antigravity | ||
| | | نسخه و PATH | ||
|- | |- | ||
| Freebuff | | Freebuff | ||
| | | نسخه و PATH | ||
|- | |- | ||
| Claw Orchestrator | | Claw Orchestrator | ||
| | | نسخه و PATH | ||
| | |- | ||
| | | Duplicate PATH | ||
| پیدا کردن مسیرهای تکراری | |||
-- | |- | ||
| npm allow-scripts | |||
| بررسی مجوز Native Install Scripts | |||
|- | |||
| RE2 | |||
| بررسی وجود re2.node | |||
|- | |- | ||
| | | Claw Server | ||
| | | بررسی Port 18796 | ||
|- | |- | ||
| | | Server Token | ||
| | | بررسی وجود Token File بدون نمایش Token | ||
|- | |- | ||
| | | Dashboard | ||
| | | نمایش URL پایه Dashboard | ||
|} | |} | ||
---- | ---- | ||
= مدیریت Sessionها = | = مدیریت Sessionها = | ||
== مشاهده Sessionها == | == مشاهده Sessionها == | ||
| Line 771: | Line 1,097: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == ساخت Session با Claude == | ||
<syntaxhighlight lang="powershell"> | |||
clawo session-start claude-main ` | |||
--engine claude ` | |||
--cwd "D:\Source\MyProject" | |||
</syntaxhighlight> | |||
== Codex == | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
clawo session-start -- | clawo session-start codex-main ` | ||
--engine codex ` | |||
--cwd "D:\Source\MyProject" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Cursor == | ||
<syntaxhighlight lang="powershell"> | |||
clawo session-start cursor-main ` | |||
--engine cursor ` | |||
--cwd "D:\Source\MyProject" | |||
</syntaxhighlight> | |||
== OpenCode == | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
clawo session-start opencode-main ` | |||
--engine opencode ` | |||
--cwd "D:\Source\MyProject" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Antigravity == | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
clawo session-start | clawo session-start agy-main ` | ||
--engine agy ` | |||
--cwd "D:\Source\MyProject" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
---- | ---- | ||
= ارسال Task | = ارسال Task = | ||
مثال: | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
clawo session-send | clawo session-send claude-main "Analyze this repository. Do not modify files. Explain the architecture and potential problems." | ||
</syntaxhighlight> | </syntaxhighlight> | ||
---- | ---- | ||
= | = وضعیت Session = | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
clawo session-status | clawo session-status claude-main | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 818: | Line 1,160: | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
clawo session-grep | clawo session-grep claude-main "error" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 826: | Line 1,168: | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
clawo session-compact | clawo session-compact claude-main | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 834: | Line 1,176: | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
clawo session-stop | clawo session-stop claude-main | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 840: | Line 1,182: | ||
= Run Ledger = | = Run Ledger = | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 849: | Line 1,187: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Run Ledger تاریخچه اجراهای Agentها را نگهداری میکند. | |||
---- | ---- | ||
= | = Agents = | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 861: | Line 1,197: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
برای ساخت Agent: | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 869: | Line 1,205: | ||
---- | ---- | ||
= | = Skills = | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 877: | Line 1,211: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
برای ساخت Skill: | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 885: | Line 1,219: | ||
---- | ---- | ||
= | = Rules = | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 893: | Line 1,225: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
برای ساخت Rule: | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 901: | Line 1,233: | ||
---- | ---- | ||
= | = Agent Teams = | ||
مشاهده اعضای Team: | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
clawo session-team-list | clawo session-team-list SESSION_NAME | ||
</syntaxhighlight> | </syntaxhighlight> | ||
ارسال پیام: | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
clawo session-team-send | clawo session-team-send SESSION_NAME TEAMMATE "Review this implementation." | ||
</syntaxhighlight> | </syntaxhighlight> | ||
---- | ---- | ||
= | = Git Worktree و Isolation = | ||
برای اجرای همزمان چند Agent بهتر است هر Agent در Worktree مستقل کار کند. | |||
<pre> | |||
Repository | |||
│ | |||
├── main | |||
│ | |||
├── worktree-claude | |||
│ | |||
├── worktree-codex | |||
│ | |||
├── worktree-cursor | |||
│ | |||
├── worktree-antigravity | |||
│ | |||
└── worktree-review | |||
</pre> | |||
Claw Orchestrator نیز Option مربوط به Worktree دارد: | |||
<syntaxhighlight lang="powershell"> | |||
clawo session-start --help | |||
</syntaxhighlight> | |||
Option: | |||
<pre> | <pre> | ||
-w, --worktree [name] | |||
</pre> | </pre> | ||
| Line 957: | Line 1,285: | ||
= LLM-as-a-Judge = | = LLM-as-a-Judge = | ||
یکی از | یکی از اهداف اصلی این معماری استفاده از Agentهای مختلف برای تولید چند Solution و سپس ارزیابی آنها است. | ||
<pre> | <pre> | ||
| Line 982: | Line 1,310: | ||
└──────────────┼──────────────┘ | └──────────────┼──────────────┘ | ||
↓ | ↓ | ||
Security Check | |||
↓ | ↓ | ||
Benchmark | Benchmark | ||
↓ | ↓ | ||
Multi-Agent Review | |||
↓ | |||
LLM Judge | |||
↓ | ↓ | ||
Score / Consensus | Score / Consensus | ||
| Line 995: | Line 1,325: | ||
---- | ---- | ||
= | = ترتیب پیشنهادی ارزیابی = | ||
LLM نباید تنها معیار انتخاب بهترین Implementation باشد. | |||
ترتیب پیشنهادی: | ترتیب پیشنهادی: | ||
<pre> | <pre> | ||
Candidate | Candidate | ||
│ | |||
↓ | |||
Build | |||
│ | |||
↓ | |||
Unit Tests | |||
│ | |||
↓ | |||
Integration Tests | Integration Tests | ||
│ | |||
↓ | |||
Lint | |||
│ | |||
↓ | |||
Type Check | |||
│ | |||
↓ | |||
Security Check | Security Check | ||
│ | |||
↓ | |||
Benchmark | |||
│ | |||
↓ | |||
LLM Review | |||
│ | |||
↓ | |||
Final Score | |||
</pre> | </pre> | ||
---- | |||
= نقش Agentها = | |||
{| class="wikitable" | |||
! Role | |||
! Agent پیشنهادی | |||
! وظیفه | |||
|- | |||
| Planner | |||
| Claude / Codex | |||
| تحلیل Task | |||
|- | |||
| Primary Coder | |||
| Claude / Codex | |||
| Implementation اصلی | |||
|- | |||
| Alternative Coder | |||
| Cursor / OpenCode / Antigravity | |||
| Implementation جایگزین | |||
|- | |||
| Reviewer | |||
| Agent متفاوت از Coder | |||
| Code Review | |||
|- | |||
| Security Reviewer | |||
| Claude / Codex | |||
| بررسی Security | |||
|- | |||
| Judge | |||
| مدل متفاوت از تولیدکننده | |||
| امتیازدهی | |||
|} | |||
بهتر است مدلی که Solution را تولید کرده است تنها Judge همان Solution نباشد. | |||
---- | ---- | ||
= Multi-Agent Council = | = Multi-Agent Council = | ||
<pre> | <pre> | ||
| Line 1,048: | Line 1,410: | ||
┌────────────┼────────────┐ | ┌────────────┼────────────┐ | ||
↓ ↓ ↓ | ↓ ↓ ↓ | ||
Claude Codex | Claude Codex Agent C | ||
│ │ │ | │ │ │ | ||
↓ ↓ ↓ | ↓ ↓ ↓ | ||
| Line 1,064: | Line 1,426: | ||
</pre> | </pre> | ||
کاربردها: | |||
* Architecture Design | * Architecture Design | ||
| Line 1,072: | Line 1,434: | ||
* Security Review | * Security Review | ||
* Performance Optimization | * Performance Optimization | ||
* مقایسه Implementationها | |||
* مقایسه | * Pull Request Review | ||
* | * انتخاب Framework | ||
* | * انتخاب Design Pattern | ||
---- | ---- | ||
| Line 1,177: | Line 1,445: | ||
== Command Not Found == | == Command Not Found == | ||
اگر | اگر: | ||
<pre> | <pre> | ||
The term 'xxxx' is not recognized | The term 'xxxx' is not recognized | ||
</pre> | </pre> | ||
بررسی کنید: | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
Get-Command xxxx | Get-Command xxxx | ||
where.exe xxxx | where.exe xxxx | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 1,198: | Line 1,460: | ||
---- | ---- | ||
= بررسی PATH = | == بررسی PATH == | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 1,206: | Line 1,468: | ||
---- | ---- | ||
= پیدا کردن PATHهای تکراری = | == پیدا کردن PATHهای تکراری == | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 1,215: | Line 1,477: | ||
Select-Object Count, Name | Select-Object Count, Name | ||
</syntaxhighlight> | </syntaxhighlight> | ||
---- | ---- | ||
= بروزرسانی = | |||
= بروزرسانی | |||
== | == Codex == | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
npm install -g @openai/codex@latest | npm install -g @openai/codex@latest | ||
codex --version | codex --version | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== OpenCode == | == OpenCode == | ||
| Line 1,310: | Line 1,493: | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
npm install -g opencode-ai@latest | npm install -g opencode-ai@latest | ||
opencode --version | opencode --version | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Freebuff == | == Freebuff == | ||
| Line 1,324: | Line 1,500: | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
npm install -g freebuff@latest | npm install -g freebuff@latest | ||
freebuff --version | freebuff --version | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Claw Orchestrator == | == Claw Orchestrator == | ||
| Line 1,338: | Line 1,507: | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
npm install -g @enderfga/claw-orchestrator@latest | npm install -g @enderfga/claw-orchestrator@latest | ||
clawo --version | clawo --version | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 1,349: | Line 1,513: | ||
= نصب سریع روی سیستم جدید = | = نصب سریع روی سیستم جدید = | ||
== Claude Code == | == Claude Code == | ||
| Line 1,364: | Line 1,526: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Antigravity == | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 1,377: | Line 1,539: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Codex == | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 1,393: | Line 1,555: | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
npm i -g @enderfga/claw-orchestrator | npm i -g @enderfga/claw-orchestrator | ||
</syntaxhighlight> | |||
== مجوز Install Scriptهای Claw Orchestrator == | |||
<syntaxhighlight lang="powershell"> | |||
npm config set allow-scripts=openclaw,re2,@google/genai,tree-sitter-bash,protobufjs --location=user | |||
</syntaxhighlight> | |||
در صورت نیاز: | |||
<syntaxhighlight lang="powershell"> | |||
cd "$env:APPDATA\npm\node_modules\@enderfga\claw-orchestrator" | |||
npm rebuild re2 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
---- | ---- | ||
= بررسی نهایی | = بررسی نهایی = | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
| Line 1,414: | Line 1,589: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
سپس Health Check: | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
.\AgenticDevOS-Check.ps1 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
و در نهایت Server: | |||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
clawo serve | |||
</syntaxhighlight> | </syntaxhighlight> | ||
---- | ---- | ||
| Line 1,460: | Line 1,613: | ||
│ ↓ │ | │ ↓ │ | ||
│ Claw Orchestrator │ | │ Claw Orchestrator │ | ||
│ │ │ | |||
│ Web Dashboard │ | |||
│ │ │ | │ │ │ | ||
│ Planner / Router │ | │ Planner / Router │ | ||
| Line 1,472: | Line 1,627: | ||
│ ├─────────── Antigravity ─────────────┤ │ | │ ├─────────── Antigravity ─────────────┤ │ | ||
│ │ │ │ │ | │ │ │ │ │ | ||
│ | │ └──────────── Custom Engines ─────────┘ │ | ||
│ │ │ | │ │ │ | ||
│ ↓ │ | │ ↓ │ | ||
| Line 1,501: | Line 1,656: | ||
! دستور | ! دستور | ||
|- | |- | ||
| | | Version | ||
| <code>clawo --version</code> | | <code>clawo --version</code> | ||
|- | |- | ||
| Line 1,507: | Line 1,662: | ||
| <code>clawo --help</code> | | <code>clawo --help</code> | ||
|- | |- | ||
| | | Server | ||
| <code>clawo serve</code> | | <code>clawo serve</code> | ||
|- | |- | ||
| | | Dashboard | ||
| <code>http://127.0.0.1:18796/dashboard</code> | |||
|- | |||
| Sessions | |||
| <code>clawo session-list</code> | | <code>clawo session-list</code> | ||
|- | |- | ||
| | | ساخت Session | ||
| <code>clawo session- | | <code>clawo session-start</code> | ||
|- | |- | ||
| ارسال Task | | ارسال Task | ||
| <code>clawo session-send | | <code>clawo session-send</code> | ||
|- | |||
| وضعیت Session | |||
| <code>clawo session-status</code> | |||
|- | |- | ||
| توقف Session | | توقف Session | ||
| <code>clawo session-stop | | <code>clawo session-stop</code> | ||
|- | |- | ||
| | | History | ||
| <code>clawo runs</code> | | <code>clawo runs</code> | ||
|- | |- | ||
| | | Agents | ||
| <code>clawo agents-list</code> | | <code>clawo agents-list</code> | ||
|- | |- | ||
| | | Skills | ||
| <code>clawo skills-list</code> | | <code>clawo skills-list</code> | ||
|- | |- | ||
| | | Rules | ||
| <code>clawo rules-list</code> | | <code>clawo rules-list</code> | ||
|} | |} | ||
| Line 1,539: | Line 1,700: | ||
= نتیجهگیری = | = نتیجهگیری = | ||
هدف این معماری ساخت یک '''Agentic Development Environment''' با | هدف این معماری ساخت یک '''Agentic Development Environment''' با کمترین تعداد لایههای اضافی و بیشترین استفاده از Coding Agentهای موجود است. | ||
Coding Agentهای | Coding Agentهای مورد استفاده: | ||
* Claude Code | * Claude Code | ||
| Line 1,548: | Line 1,709: | ||
* OpenCode | * OpenCode | ||
* Google Antigravity | * Google Antigravity | ||
* Freebuff | * Freebuff / Custom Agents | ||
لایه مرکزی: | |||
'''Claw Orchestrator''' | '''Claw Orchestrator''' | ||
جریان کاری نهایی: | |||
<pre> | <pre> | ||
| Line 1,565: | Line 1,726: | ||
Multiple Coding Agents | Multiple Coding Agents | ||
↓ | ↓ | ||
Git Isolation | Git Worktree Isolation | ||
↓ | ↓ | ||
Build + Tests + Lint + Security | Build + Tests + Lint + Security | ||
| Line 1,576: | Line 1,737: | ||
</pre> | </pre> | ||
این | این معماری در آینده میتواند با موارد زیر توسعه داده شود: | ||
* MCP | * MCP | ||
| Line 1,591: | Line 1,752: | ||
* Automated Testing | * Automated Testing | ||
* Model Routing | * Model Routing | ||
* Agent Teams | |||
* Forge | |||
'''نکته مهم:''' Coding Agentها و Claw Orchestrator با سرعت زیادی توسعه پیدا میکنند. قبل از Upgrade، خروجی <code>--help</code> نسخه نصبشده و مستندات رسمی پروژه بررسی شود. | |||
[[Category:Artificial Intelligence]] | |||
[[Category:Development]] | |||
[[Category:Windows]] | |||
[[Category:Agentic AI]] | |||
Latest revision as of 18:53, 20 August 2026
راهاندازی Agentic Development Environment در Windows با Claw Orchestrator
این راهنما برای ساخت یک محیط Agentic Development روی Windows است که چند Coding Agent مختلف را توسط Claw Orchestrator مدیریت میکند.
هدف اصلی این معماری:
- استفاده همزمان از چند Coding Agent
- مدیریت Sessionهای Agentها
- اجرای چند Agent روی یک پروژه
- استفاده از Agentهای مختلف به عنوان Coder و Reviewer
- ایجاد Multi-Agent Council
- استفاده از LLM-as-a-Judge
- جداسازی تغییرات Agentها با Git Worktree
- انجام Build، Test، Lint و Security Check قبل از داوری LLM
- نگهداری Run History
- استفاده از Dashboard برای مدیریت سیستم
معماری کلی:
Windows
│
├── Git
├── Node.js / npm
│
├── Claude Code
├── OpenAI Codex
├── Cursor Agent
├── OpenCode
├── Google Antigravity
├── Freebuff
│
└── Claw Orchestrator
│
├── Dashboard
├── Persistent Sessions
├── Multi-Agent
├── Skills
├── Rules
├── Teams
├── Council
├── Run Ledger
└── LLM-as-a-Judge
پیشنیازها
قبل از نصب Agentها بهتر است ابزارهای زیر نصب شده باشند:
| ابزار | کاربرد | پیشنهاد |
|---|---|---|
| Windows | سیستمعامل | Windows 10/11 x64 |
| PowerShell | Terminal و Automation | PowerShell 7 |
| Git | Version Control | آخرین نسخه پایدار |
| Node.js | JavaScript Runtime | Node.js 22+ |
| npm | Package Manager | همراه Node.js |
| Python | SDKهای Python | اختیاری |
بررسی پیشنیازها
$PSVersionTable.PSVersion
node --version
npm --version
git --version
بررسی مسیر executableها:
where.exe node
where.exe npm
where.exe git
نصب Coding Agentها
Claude Code
وبسایت رسمی:
نصب با PowerShell
irm https://claude.ai/install.ps1 | iex
نصب با CMD / curl
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
نصب با Winget
winget install Anthropic.ClaudeCode
بررسی نصب
claude --version
اجرا
claude
بررسی سلامت
claude doctor
بررسی PATH
where.exe claude
Get-Command claude
OpenAI Codex
صفحه Codex:
نصب
npm install -g @openai/codex
یا:
npm i -g @openai/codex
بررسی
codex --version
اجرا
codex
Login
codex login
بررسی PATH
where.exe codex
Get-Command codex
Cursor Agent
وبسایت رسمی:
نصب CLI
irm 'https://cursor.com/install?win32=true' | iex
بررسی
cursor-agent --version
Cursor ممکن است command کوتاه زیر را نیز ارائه کند:
agent
بررسی PATH
where.exe cursor-agent
where.exe agent
Google Antigravity
وبسایت رسمی:
نصب CLI با PowerShell
irm https://antigravity.google/cli/install.ps1 | iex
نصب با curl
curl -fsSL https://antigravity.google/cli/install.cmd -o install.cmd && install.cmd && del install.cmd
بررسی
agy --version
اجرا
agy
بررسی PATH
where.exe agy
Get-Command agy
Google Antigravity SDK
در صورت نیاز به SDK پایتون:
pip install google-antigravity
بررسی:
pip show google-antigravity
نکته: اگر فقط قصد استفاده از Coding Agent و Claw Orchestrator را دارید، معمولاً نیازی به نصب SDK پایتون نیست.
OpenCode
وبسایت رسمی:
تنظیم npm
npm config set allow-scripts=opencode-ai --location=user
نصب
npm install -g opencode-ai
یا:
npm i -g opencode-ai
بررسی
opencode --version
اجرا
opencode
بررسی PATH
where.exe opencode
Get-Command opencode
Freebuff
وبسایت:
ثبتنام
برای ثبتنام میتوانید از Referral Link زیر استفاده کنید:
نصب CLI
npm install -g freebuff
بررسی
freebuff --version
اجرا
freebuff
بررسی PATH
where.exe freebuff
Get-Command freebuff
نکته: اگر Freebuff integration مستقیم نداشته باشد، میتوان اتصال آن به Orchestrator را از طریق Custom Engine بررسی کرد.
نصب Claw Orchestrator
Claw Orchestrator لایه مرکزی Orchestration این معماری است.
نصب =
npm install -g @enderfga/claw-orchestrator
بررسی نسخه =
clawo --version
Help =
clawo --help
نمونه دستورات:
clawo acp clawo serve clawo session-start clawo session-send clawo session-stop clawo session-list clawo session-status clawo session-grep clawo session-compact clawo runs clawo agents-list clawo agents-create clawo skills-list clawo skills-create clawo rules-list clawo rules-create clawo session-team-list clawo session-team-send
Engineهای Claw Orchestrator
برای مشاهده Engineهای نسخه نصبشده:
clawo session-start --help
در نسخه 5.0.0 Engineهای زیر در CLI ارائه میشوند:
claude codex codex-app gemini agy cursor opencode custom
نمونه:
clawo session-start my-agent --engine claude
مشکل npm Install Scripts
در نسخههای جدید npm ممکن است Install Script بعضی dependencyهای Claw Orchestrator به دلایل امنیتی Block شود.
نمونه:
npm warn install-scripts openclaw re2 @google/genai tree-sitter-bash protobufjs
در این شرایط ممکن است CLI کار کند ولی Server با خطایی مشابه زیر اجرا نشود:
Error: Cannot find module './build/Release/re2.node'
رفع مشکل RE2
اجازه اجرای Scriptهای موردنیاز:
npm config set allow-scripts=openclaw,re2,@google/genai,tree-sitter-bash,protobufjs --location=user
بررسی:
npm config get allow-scripts
سپس:
cd "$env:APPDATA\npm\node_modules\@enderfga\claw-orchestrator"
npm rebuild re2
در صورت موفقیت:
rebuilt dependencies successfully
سپس Server را مجدداً اجرا کنید:
clawo serve
اجرای Standalone Server
برای اجرای Claw Orchestrator:
clawo serve
نمونه خروجی:
[ultraapp] runtime mode: host [ultraapp] router on http://127.0.0.1:19000/forge/<slug>/ [embedded-server] Listening on http://127.0.0.1:18796 [embedded-server] Token file: C:\Users\USER\.openclaw\server-token Standalone server running on http://127.0.0.1:18796 Press Ctrl+C to stop
Dashboard
پس از اجرای:
clawo serve
Claw Orchestrator آدرس Dashboard دارای Authentication Token را در Terminal نمایش میدهد.
ساختار URL:
http://127.0.0.1:18796/dashboard?token=YOUR_TOKEN
هشدار امنیتی:
Token واقعی را:
- داخل Wiki قرار ندهید.
- داخل Git Commit نکنید.
- در Screenshot عمومی منتشر نکنید.
- برای دیگران ارسال نکنید.
Token در فایل محلی زیر نگهداری میشود:
C:\Users\USERNAME\.openclaw\server-token
بعد از Authentication، آدرس پایه Dashboard:
http://127.0.0.1:18796/dashboard
Forge Router
هنگام اجرای Server ممکن است Router دیگری نیز اجرا شود:
http://127.0.0.1:19000/forge/<slug>/
این Router توسط بخش Forge مورد استفاده قرار میگیرد.
معماری Standalone
Claude Code ───────┐
Codex ─────────────┤
Cursor Agent ──────┤
OpenCode ──────────┤
Antigravity ───────┤
Custom Engine ─────┤
↓
Claw Orchestrator
│
┌──────────┼──────────┐
↓ ↓ ↓
Sessions Agents Skills
│ │ │
└──────────┼──────────┘
↓
Rules
│
↓
Dashboard
Health Check کامل
برای بررسی محیط، فایل زیر را ایجاد کنید:
AgenticDevOS-Check.ps1
و محتوای زیر را در آن قرار دهید:
$tools = @(
@{ Name = "Node.js"; Command = "node"; Args = @("--version") }
@{ Name = "npm"; Command = "npm"; Args = @("--version") }
@{ Name = "Git"; Command = "git"; Args = @("--version") }
@{ Name = "Claude Code"; Command = "claude"; Args = @("--version") }
@{ Name = "Codex"; Command = "codex"; Args = @("--version") }
@{ Name = "OpenCode"; Command = "opencode"; Args = @("--version") }
@{ Name = "Cursor Agent"; Command = "cursor-agent"; Args = @("--version") }
@{ Name = "Antigravity"; Command = "agy"; Args = @("--version") }
@{ Name = "Freebuff"; Command = "freebuff"; Args = @("--version") }
@{ Name = "Claw Orchestrator"; Command = "clawo"; Args = @("--version") }
)
$results = @()
function Write-Section {
param([string]$Title)
Write-Host ""
Write-Host "============================================================" -ForegroundColor Cyan
Write-Host " $Title" -ForegroundColor Cyan
Write-Host "============================================================" -ForegroundColor Cyan
}
function Add-Result {
param(
[string]$Name,
[string]$Status,
[string]$Version = "",
[string]$Path = ""
)
$script:results += [PSCustomObject]@{
Name = $Name
Status = $Status
Version = $Version
Path = $Path
}
}
Clear-Host
Write-Host ""
Write-Host "============================================================" -ForegroundColor Cyan
Write-Host " AGENTIC DEV OS HEALTH CHECK" -ForegroundColor Cyan
Write-Host "============================================================" -ForegroundColor Cyan
Write-Section "CLI TOOLS"
foreach ($tool in $tools) {
$command = Get-Command $tool.Command -ErrorAction SilentlyContinue
if (-not $command) {
Write-Host "[MISSING] " -ForegroundColor Red -NoNewline
Write-Host $tool.Name
Add-Result -Name $tool.Name -Status "MISSING"
continue
}
try {
$output = & $tool.Command @($tool.Args) 2>&1
$version = (
$output |
Where-Object { $_ -ne $null } |
Select-Object -First 1
).ToString().Trim()
Write-Host "[OK] " -ForegroundColor Green -NoNewline
Write-Host "$($tool.Name) -> $version"
Write-Host " Path: " -ForegroundColor DarkGray -NoNewline
Write-Host $command.Source -ForegroundColor DarkGray
Add-Result `
-Name $tool.Name `
-Status "OK" `
-Version $version `
-Path $command.Source
}
catch {
Write-Host "[WARNING] " -ForegroundColor Yellow -NoNewline
Write-Host "$($tool.Name) -> command exists but version check failed"
Add-Result `
-Name $tool.Name `
-Status "WARNING" `
-Path $command.Source
}
Write-Host ""
}
Write-Section "PATH CHECK"
$pathEntries = @(
$env:Path -split ";" |
ForEach-Object {
$_.Trim().TrimEnd("\")
} |
Where-Object {
$_
}
)
$duplicatePaths = @(
$pathEntries |
Group-Object |
Where-Object {
$_.Count -gt 1
}
)
if ($duplicatePaths.Count -eq 0) {
Write-Host "[OK] No duplicate PATH entries found." -ForegroundColor Green
}
else {
Write-Host "[WARNING] Duplicate PATH entries found:" -ForegroundColor Yellow
foreach ($duplicate in $duplicatePaths) {
Write-Host " [$($duplicate.Count)x] $($duplicate.Name)" `
-ForegroundColor Yellow
}
}
Write-Section "NPM CONFIGURATION"
try {
$allowScripts = npm config get allow-scripts 2>$null
Write-Host "allow-scripts:"
Write-Host " $allowScripts"
$requiredScripts = @(
"openclaw",
"re2",
"@google/genai",
"tree-sitter-bash",
"protobufjs"
)
$configuredScripts = @(
$allowScripts -split "," |
ForEach-Object {
$_.Trim()
}
)
foreach ($package in $requiredScripts) {
if ($configuredScripts -contains $package) {
Write-Host "[OK] " -ForegroundColor Green -NoNewline
Write-Host "$package install scripts allowed"
}
else {
Write-Host "[WARNING] " -ForegroundColor Yellow -NoNewline
Write-Host "$package is not in npm allow-scripts"
}
}
}
catch {
Write-Host "[WARNING] Could not read npm configuration." `
-ForegroundColor Yellow
}
Write-Section "CLAW ORCHESTRATOR"
$clawoCommand = Get-Command clawo -ErrorAction SilentlyContinue
if (-not $clawoCommand) {
Write-Host "[MISSING] Claw Orchestrator is not installed." `
-ForegroundColor Red
}
else {
Write-Host "[OK] Claw Orchestrator CLI found." `
-ForegroundColor Green
try {
$npmRoot = (npm root -g).Trim()
$clawoRoot = Join-Path `
$npmRoot `
"@enderfga\claw-orchestrator"
Write-Host ""
Write-Host "Package:"
Write-Host " $clawoRoot"
if (Test-Path $clawoRoot) {
Write-Host "[OK] Claw Orchestrator package directory found." `
-ForegroundColor Green
}
$re2File = Join-Path `
$clawoRoot `
"node_modules\re2\build\Release\re2.node"
Write-Host ""
Write-Host "RE2 Native Module:"
if (Test-Path $re2File) {
Write-Host "[OK] re2.node found." `
-ForegroundColor Green
Write-Host " $re2File" `
-ForegroundColor DarkGray
}
else {
Write-Host "[ERROR] re2.node NOT FOUND." `
-ForegroundColor Red
Write-Host ""
Write-Host "Fix:"
Write-Host 'npm config set allow-scripts=openclaw,re2,@google/genai,tree-sitter-bash,protobufjs --location=user'
Write-Host "cd `"$clawoRoot`""
Write-Host "npm rebuild re2"
}
}
catch {
Write-Host "[WARNING] Could not inspect Claw Orchestrator package." `
-ForegroundColor Yellow
}
}
Write-Section "CLAW SERVER"
$serverPort = 18796
$serverRunning = $false
try {
$connection = Get-NetTCPConnection `
-LocalPort $serverPort `
-State Listen `
-ErrorAction SilentlyContinue
if ($connection) {
$serverRunning = $true
Write-Host "[OK] " -ForegroundColor Green -NoNewline
Write-Host "Claw server is listening on port $serverPort"
Write-Host ""
Write-Host "Server:"
Write-Host " http://127.0.0.1:$serverPort"
}
else {
Write-Host "[INFO] Claw server is not currently running." `
-ForegroundColor Cyan
Write-Host ""
Write-Host "Start with:"
Write-Host " clawo serve"
}
}
catch {
Write-Host "[WARNING] Could not check server port." `
-ForegroundColor Yellow
}
$tokenFile = Join-Path `
$HOME `
".openclaw\server-token"
if (Test-Path $tokenFile) {
Write-Host ""
Write-Host "[OK] Server token file exists." `
-ForegroundColor Green
Write-Host " $tokenFile" `
-ForegroundColor DarkGray
}
if ($serverRunning) {
Write-Host ""
Write-Host "Dashboard base URL:"
Write-Host " http://127.0.0.1:$serverPort/dashboard"
Write-Host ""
Write-Host "NOTE: Authentication token is intentionally not displayed." `
-ForegroundColor DarkGray
}
Write-Section "SUMMARY"
$installed = @(
$results |
Where-Object {
$_.Status -eq "OK"
}
).Count
$warnings = @(
$results |
Where-Object {
$_.Status -eq "WARNING"
}
).Count
$missing = @(
$results |
Where-Object {
$_.Status -eq "MISSING"
}
).Count
Write-Host "CLI Tools OK : $installed"
Write-Host "Warnings : $warnings"
Write-Host "Missing : $missing"
Write-Host "Total : $($tools.Count)"
Write-Host ""
if (($missing -eq 0) -and ($warnings -eq 0)) {
Write-Host "[READY] Agentic Development environment is ready." `
-ForegroundColor Green
}
elseif ($missing -eq 0) {
Write-Host "[READY WITH WARNINGS] All CLI tools are installed." `
-ForegroundColor Yellow
}
else {
Write-Host "[NOT READY] Some required tools are missing." `
-ForegroundColor Red
}
Write-Host ""
if ($serverRunning) {
Write-Host "Claw Server : RUNNING" `
-ForegroundColor Green
}
else {
Write-Host "Claw Server : STOPPED" `
-ForegroundColor Cyan
}
Write-Host ""
اجرای Health Check
.\AgenticDevOS-Check.ps1
اگر Execution Policy مانع اجرا شد:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
سپس:
.\AgenticDevOS-Check.ps1
موارد بررسیشده توسط Health Check
| بررسی | توضیح |
|---|---|
| Node.js | نسخه و PATH |
| npm | نسخه و PATH |
| Git | نسخه و PATH |
| Claude Code | نسخه و PATH |
| Codex | نسخه و PATH |
| OpenCode | نسخه و PATH |
| Cursor Agent | نسخه و PATH |
| Antigravity | نسخه و PATH |
| Freebuff | نسخه و PATH |
| Claw Orchestrator | نسخه و PATH |
| Duplicate PATH | پیدا کردن مسیرهای تکراری |
| npm allow-scripts | بررسی مجوز Native Install Scripts |
| RE2 | بررسی وجود re2.node |
| Claw Server | بررسی Port 18796 |
| Server Token | بررسی وجود Token File بدون نمایش Token |
| Dashboard | نمایش URL پایه Dashboard |
مدیریت Sessionها
مشاهده Sessionها
clawo session-list
ساخت Session با Claude
clawo session-start claude-main `
--engine claude `
--cwd "D:\Source\MyProject"
Codex
clawo session-start codex-main `
--engine codex `
--cwd "D:\Source\MyProject"
Cursor
clawo session-start cursor-main `
--engine cursor `
--cwd "D:\Source\MyProject"
OpenCode
clawo session-start opencode-main `
--engine opencode `
--cwd "D:\Source\MyProject"
Antigravity
clawo session-start agy-main `
--engine agy `
--cwd "D:\Source\MyProject"
ارسال Task
مثال:
clawo session-send claude-main "Analyze this repository. Do not modify files. Explain the architecture and potential problems."
وضعیت Session
clawo session-status claude-main
جستجو در History
clawo session-grep claude-main "error"
Compact کردن Session
clawo session-compact claude-main
توقف Session
clawo session-stop claude-main
Run Ledger
clawo runs
Run Ledger تاریخچه اجراهای Agentها را نگهداری میکند.
Agents
clawo agents-list
برای ساخت Agent:
clawo agents-create --help
Skills
clawo skills-list
برای ساخت Skill:
clawo skills-create --help
Rules
clawo rules-list
برای ساخت Rule:
clawo rules-create --help
Agent Teams
مشاهده اعضای Team:
clawo session-team-list SESSION_NAME
ارسال پیام:
clawo session-team-send SESSION_NAME TEAMMATE "Review this implementation."
Git Worktree و Isolation
برای اجرای همزمان چند Agent بهتر است هر Agent در Worktree مستقل کار کند.
Repository │ ├── main │ ├── worktree-claude │ ├── worktree-codex │ ├── worktree-cursor │ ├── worktree-antigravity │ └── worktree-review
Claw Orchestrator نیز Option مربوط به Worktree دارد:
clawo session-start --help
Option:
-w, --worktree [name]
LLM-as-a-Judge
یکی از اهداف اصلی این معماری استفاده از Agentهای مختلف برای تولید چند Solution و سپس ارزیابی آنها است.
TASK
│
↓
Claw Orchestrator
│
┌────────────────┼────────────────┐
↓ ↓ ↓
Claude Code Codex Antigravity
│ │ │
↓ ↓ ↓
Solution A Solution B Solution C
│ │ │
└────────────────┼────────────────┘
↓
Automated Checks
│
┌──────────────┼──────────────┐
↓ ↓ ↓
Build Tests Lint
│ │ │
└──────────────┼──────────────┘
↓
Security Check
↓
Benchmark
↓
Multi-Agent Review
↓
LLM Judge
↓
Score / Consensus
↓
Best Result
ترتیب پیشنهادی ارزیابی
LLM نباید تنها معیار انتخاب بهترین Implementation باشد.
ترتیب پیشنهادی:
Candidate │ ↓ Build │ ↓ Unit Tests │ ↓ Integration Tests │ ↓ Lint │ ↓ Type Check │ ↓ Security Check │ ↓ Benchmark │ ↓ LLM Review │ ↓ Final Score
نقش Agentها
| Role | Agent پیشنهادی | وظیفه |
|---|---|---|
| Planner | Claude / Codex | تحلیل Task |
| Primary Coder | Claude / Codex | Implementation اصلی |
| Alternative Coder | Cursor / OpenCode / Antigravity | Implementation جایگزین |
| Reviewer | Agent متفاوت از Coder | Code Review |
| Security Reviewer | Claude / Codex | بررسی Security |
| Judge | مدل متفاوت از تولیدکننده | امتیازدهی |
بهتر است مدلی که Solution را تولید کرده است تنها Judge همان Solution نباشد.
Multi-Agent Council
Problem
│
↓
Orchestrator
│
┌────────────┼────────────┐
↓ ↓ ↓
Claude Codex Agent C
│ │ │
↓ ↓ ↓
Plan A Plan B Plan C
│ │ │
└────────────┼────────────┘
↓
Cross Review
↓
Vote
↓
Consensus
↓
Final Decision
کاربردها:
- Architecture Design
- Code Review
- Refactoring
- Debugging
- Security Review
- Performance Optimization
- مقایسه Implementationها
- Pull Request Review
- انتخاب Framework
- انتخاب Design Pattern
Troubleshooting
Command Not Found
اگر:
The term 'xxxx' is not recognized
بررسی کنید:
Get-Command xxxx
where.exe xxxx
بررسی PATH
$env:Path -split ';'
پیدا کردن PATHهای تکراری
$env:Path -split ';' |
ForEach-Object { $_.Trim().TrimEnd('\') } |
Group-Object |
Where-Object Count -gt 1 |
Select-Object Count, Name
بروزرسانی
Codex
npm install -g @openai/codex@latest
codex --version
OpenCode
npm install -g opencode-ai@latest
opencode --version
Freebuff
npm install -g freebuff@latest
freebuff --version
Claw Orchestrator
npm install -g @enderfga/claw-orchestrator@latest
clawo --version
نصب سریع روی سیستم جدید
Claude Code
irm https://claude.ai/install.ps1 | iex
Cursor Agent
irm 'https://cursor.com/install?win32=true' | iex
Antigravity
irm https://antigravity.google/cli/install.ps1 | iex
OpenCode
npm config set allow-scripts=opencode-ai --location=user
npm i -g opencode-ai
Codex
npm i -g @openai/codex
Freebuff
npm i -g freebuff
Claw Orchestrator
npm i -g @enderfga/claw-orchestrator
مجوز Install Scriptهای Claw Orchestrator
npm config set allow-scripts=openclaw,re2,@google/genai,tree-sitter-bash,protobufjs --location=user
در صورت نیاز:
cd "$env:APPDATA\npm\node_modules\@enderfga\claw-orchestrator"
npm rebuild re2
بررسی نهایی
node --version
npm --version
git --version
claude --version
codex --version
opencode --version
cursor-agent --version
agy --version
freebuff --version
clawo --version
سپس Health Check:
.\AgenticDevOS-Check.ps1
و در نهایت Server:
clawo serve
معماری نهایی Agentic Development OS
┌─────────────────────────────────────────────────┐ │ Windows Development OS │ │ │ │ Developer / User │ │ │ │ │ ↓ │ │ Claw Orchestrator │ │ │ │ │ Web Dashboard │ │ │ │ │ Planner / Router │ │ │ │ │ ┌──────────────────┼──────────────────┐ │ │ │ │ │ │ │ ↓ ↓ ↓ │ │ Claude Code Codex Cursor Agent│ │ │ │ │ │ │ ├────────────── OpenCode ─────────────┤ │ │ │ │ │ │ │ ├─────────── Antigravity ─────────────┤ │ │ │ │ │ │ │ └──────────── Custom Engines ─────────┘ │ │ │ │ │ ↓ │ │ Git Worktree Isolation │ │ │ │ │ ↓ │ │ Automated Validation │ │ │ │ │ Build / Test / Lint / Security │ │ │ │ │ ↓ │ │ Multi-Agent Review │ │ │ │ │ ↓ │ │ LLM-as-a-Judge │ │ │ │ │ ↓ │ │ Best Result │ └─────────────────────────────────────────────────┘
خلاصه دستورات مهم
| کار | دستور |
|---|---|
| Version | clawo --version
|
| Help | clawo --help
|
| Server | clawo serve
|
| Dashboard | http://127.0.0.1:18796/dashboard
|
| Sessions | clawo session-list
|
| ساخت Session | clawo session-start
|
| ارسال Task | clawo session-send
|
| وضعیت Session | clawo session-status
|
| توقف Session | clawo session-stop
|
| History | clawo runs
|
| Agents | clawo agents-list
|
| Skills | clawo skills-list
|
| Rules | clawo rules-list
|
نتیجهگیری
هدف این معماری ساخت یک Agentic Development Environment با کمترین تعداد لایههای اضافی و بیشترین استفاده از Coding Agentهای موجود است.
Coding Agentهای مورد استفاده:
- Claude Code
- OpenAI Codex
- Cursor Agent
- OpenCode
- Google Antigravity
- Freebuff / Custom Agents
لایه مرکزی:
Claw Orchestrator
جریان کاری نهایی:
Task ↓ Claw Orchestrator ↓ Planner / Router ↓ Multiple Coding Agents ↓ Git Worktree Isolation ↓ Build + Tests + Lint + Security ↓ Multi-Agent Review ↓ LLM-as-a-Judge ↓ Best Result
این معماری در آینده میتواند با موارد زیر توسعه داده شود:
- MCP
- Local LLM
- CI/CD
- Security Agents
- Automated Code Review
- Pull Request Review
- Custom Agents
- Custom Skills
- Custom Rules
- Multi-Agent Council
- Benchmarking
- Automated Testing
- Model Routing
- Agent Teams
- Forge
نکته مهم: Coding Agentها و Claw Orchestrator با سرعت زیادی توسعه پیدا میکنند. قبل از Upgrade، خروجی --help نسخه نصبشده و مستندات رسمی پروژه بررسی شود.