← 返回 Skills 市场
ciklopentan

AI Orchestrator

作者 ciklopentan · GitHub ↗ · v2.0.11 · MIT-0
cross-platform ⚠ suspicious
282
总下载
1
收藏
0
当前安装
19
版本数
在 OpenClaw 中安装
/install ai-orchestrator
功能描述
DeepSeek AI access via Puppeteer browser automation with CDP interceptor. Persistent daemon (~35ms startup), health checks, graceful shutdown, PM2 management...
使用说明 (SKILL.md)

AI Orchestrator v2.0.11

What this is: Browser automation that talks to DeepSeek via Puppeteer. What this is NOT: A general AI router or multi-model orchestrator. It's one browser → one LLM.

Execution

Working directory rule: Unless a command here uses an absolute path, run ai-orchestrator commands from the skill root: ~/.openclaw/workspace/skills/ai-orchestrator. If you are not already there, run:

cd ~/.openclaw/workspace/skills/ai-orchestrator

Relative paths such as .daemon-ws-endpoint, .profile/, .deepseek.json, and scripts/setup-daemon.sh assume this directory.

Quick Start

# Simple question
ask-deepseek.sh "What is HTTP?"

# Session (keeps context between questions)
ask-deepseek.sh "Explain OAuth2" --session work
ask-deepseek.sh "What about OpenID Connect?" --session work
ask-deepseek.sh --session work --end-session

# With daemon (fast startup ~35ms vs ~15s cold)
ask-deepseek.sh "Question" --daemon

# Pipe code or long prompts
cat code.py | ask-deepseek.sh "Find bugs"
ask-deepseek.sh --stdin \x3C code.py
ask-deepseek.sh \x3C\x3C'EOF'
Long multi-line prompt here
EOF

When to use ai-orchestrator

Task ai-orchestrator Direct API Manual browser
Code analysis / review ✅ Fast, no API key Needs API ❌ Slow
Text analysis / summary ✅ (with --daemon) Needs API ❌ Tedious
Brainstorming ❌ (use Dual Thinking skill) Needs API
Web scraping ❌ Wrong tool
API testing ❌ Overkill
CAPTCHA solving ❌ Will fail ✅ (manual)

Rule: Need LLM reasoning without API key → ai-orchestrator. Need browser tasks (scrape, click, fill forms) → use agent-browser skill instead.

Default site mode: ai-orchestrator must keep DeepSeek in Expert mode whenever the site exposes the Instant / Expert switch. Treat Expert as the canonical default. Do not fall back to Instant unless a future implementation explicitly adds an override and the user asks for it.

Session continuity: in daemon mode, follow-up requests using --session NAME must restore the exact saved DeepSeek chatUrl for that session unless --new-chat was explicitly requested. Reusing an arbitrary open DeepSeek tab is incorrect because it breaks multi-round review continuity.

All Flags

Flag Purpose
--session NAME Persistent context across requests (keeps chat history)
--daemon Use running Chrome daemon (~35ms startup)
--search Enable DeepSeek web search capability
--think Enable DeepThink site mode (deeper reasoning)
--new-chat Start new chat within existing session
--end-session Close and clean up session
--visible Open visible browser (for auth/CAPTCHA fixes)
--wait Wait for manual auth completion (with --visible)
--close Force close browser after request
--dry-run Test auth + composer without sending prompt
--stdin Explicitly read prompt body from stdin
--debug Verbose debug output
--verbose More detailed logs
-h, --help Show help

Health check

# 1. Daemon running?
pm2 status | grep -q "deepseek.*online" || echo "Daemon down"

# 2. Dry-run path works?
ask-deepseek.sh --dry-run --daemon || echo "DeepSeek dry-run failed"  # Checks auth + composer through the daemon path

# 3. Real response path works?
ask-deepseek.sh "OK" --daemon | grep -q "OK" || echo "DeepSeek not responding"

If any step fails, do not improvise. Use the troubleshooting ladder below.

Failure Recovery (mandatory routing)

First failure rule — do not skip

When any command fails:

  1. STOP — do not try a random second fix yet
  2. CAPTURE — read the exact error you saw
  3. MATCH — find the closest symptom row below
  4. RUN — execute that row's exact command
  5. VERIFY — retry with the specified verification command

Symptom → exact command

If you see this symptom Run this exact command Then verify with
Connection refused, ECONNREFUSED, daemon not online pm2 restart deepseek-daemon && sleep 8 && ask-deepseek.sh --dry-run --daemon ask-deepseek.sh "Say OK" --daemon
auth expired, CAPTCHA, login page, 401, 403 cd ~/.openclaw/workspace/skills/ai-orchestrator && pm2 stop deepseek-daemon && rm -f .daemon-ws-endpoint && bash ask-deepseek.sh --visible --wait --dry-run && pm2 start deepseek-daemon bash ask-deepseek.sh --dry-run --daemon
response cuts off / incomplete long answer ask-deepseek.sh "Part 1" --session temp && ask-deepseek.sh "Continue with next part" --session temp ask-deepseek.sh --session temp --end-session
lock, Singleton, profile already in use cd ~/.openclaw/workspace/skills/ai-orchestrator && rm -f .profile/Singleton* && pm2 restart deepseek-daemon bash ask-deepseek.sh --dry-run
timeout, selector missing, composer not found ask-deepseek.sh --dry-run --visible only after manual inspection consider selector edits

If 3 fixes failed already

Do not keep guessing. Reset to a known-good baseline:

cd ~/.openclaw/workspace/skills/ai-orchestrator
pm2 stop deepseek-daemon
pkill -f puppeteer || true
rm -f .daemon-ws-endpoint .profile/Singleton*
bash scripts/setup-daemon.sh
bash ask-deepseek.sh "Say OK" --daemon

If that still fails, escalate to manual auth/inspection with --visible --wait.

Manual Auth with --wait

--wait blocks until you complete auth in the visible browser or interrupt the command yourself. There is no automatic timeout documented here. Use Ctrl+C if you need to abort.

Daemon Setup

One-liner:

cd ~/.openclaw/workspace/skills/ai-orchestrator && bash scripts/setup-daemon.sh

Or manual:

bash scripts/setup-daemon.sh  # Or run step-by-step below
npm install   # First time only
pm2 start deepseek-daemon.js --name deepseek-daemon --no-autorestart
pm2 save
pm2 startup   # Auto-start on boot

Exit Codes

Code Meaning Action
0 Success — response received Continue
1 Config/arg error Check flags, run --help
2 DeepSeek unreachable or daemon unavailable Check network, daemon endpoint, pm2 status
3 Blocked or rate limited Wait 5s, retry, or use --visible

Note: Partial success (truncated response) still returns 0. Use "Continue" button handling.

Known Limitations (v2.0.11)

  • Exact-string prompts: DeepSeek may prepend explanation text before the requested suffix. For machine-sensitive checks, prefer structured JSON prompts when possible, or validate that the returned payload still contains the expected terminal token instead of assuming exact literal obedience.
  • Oversized prompts: if a giant single-shot prompt does not actually leave the page, ai-orchestrator now validates submit outcome, retries with adaptive shortening, and fails explicitly with DEEPSEEK_SUBMIT_BLOCKED_OVERSIZE_PROMPT if delivery never succeeds.
  • Publish hygiene: local runtime state must not be published. Before ClawHub publish, verify that .clawhubignore excludes local profile, diagnostics, logs, sessions, and daemon state files.

DeepSeek Free Tier Limits

  • Per response: ~13,000 characters (verified 2026-04-03)
  • Button "Continue" auto-clicked up to 30 times
  • Rate limit: 5 seconds between requests
  • Session limit: Use --session for long conversations instead of single huge prompts

Workaround for Long Answers (>13k chars)

ask-deepseek.sh "Write a Python backend guide" --session guide
ask-deepseek.sh "Now cover async and databases" --session guide  # Continue
ask-deepseek.sh --session guide --end-session  # Done

Logging

After important orchestrator runs, append to memory/episodic/YYYY-MM-DD.md:

## ai-orchestrator
- Task: code review app.js (tool: deepseek, duration: 12s, status: success)
- Failure: CAPTCHA on deepseek (fallback: manual via --visible)

Not every request needs logging. Log decisions and failures, not routine questions.

What NOT to do

  • ❌ Use for web scraping or browser automation (wrong tool — use agent-browser skill)
  • ❌ Bypass Dual Thinking for complex decisions (orchestrator executes, doesn't think)
  • ❌ Ignore failure logs (they tell you what's broken)
  • ❌ Run without --daemon unless debugging (cold start = 15s vs 35ms)
  • ❌ Guess random fixes when a known failure case already matches
  • ❌ Open a visible browser first if the problem is only a dead daemon — restart daemon first
  • ❌ Keep reusing one broken long prompt after free-tier cutoff — switch to --session chunks instead

Configuration (.deepseek.json)

{
  "idleTimeout": 15000,
  "heartbeatInterval": 15000,
  "domErrorIdleMs": 25000,
  "maxContinueRounds": 30,
  "logToFile": true,
  "logPath": ".logs/deepseek.log"
}

Minimal Contract for Weak Runtimes

  • Exit codes: 0 = success, 1 = config/runtime error, 2 = DeepSeek unreachable or daemon unavailable, 3 = blocked or rate-limited. Never treat 2 or 3 as success.
  • Mode enforcement: when DeepSeek shows Instant / Expert, ai-orchestrator must use Expert unless the user explicitly requests otherwise via a future supported override.
  • Session restore: --session NAME must restore the exact saved chatUrl unless --new-chat was explicitly requested.
  • Publish hygiene: before publishing to ClawHub, ensure .clawhubignore exists and excludes local runtime state.

Minimal Decision Rules for Weak Models

When choosing what to do next, use these defaults:

  • Need fastest normal run → use --daemon
  • Need context across multiple prompts on one topic → use --session
  • Need a brand new DeepSeek chat for that topic → add --new-chat
  • Need to close the topic chat → use --end-session
  • Need auth/login repair → stop daemon first, then --visible --wait --dry-run
  • Need a health check without sending a real prompt → use --dry-run
  • Need a long answer → use --session and split it into chunks
  • Need browser automation on websites → stop and use agent-browser, not ai-orchestrator`
  • Need failure recovery → do not guess; use the symptom table above
  • Before every real prompt send, keep the DeepSeek site in Expert mode when that switch exists
  • If --think is used, enable the site DeepThink toggle before sending the prompt

Troubleshooting → REFERENCE.md

See REFERENCE.md for:

  • Architecture overview (Puppeteer + CDP interceptor)
  • Complete troubleshooting guide
  • Diagnostic system (trace + metrics + summary JSON + file log)
  • Performance benchmarks
  • Common issues: CAPTCHA, rate limits, selector changes, visible-browser vs daemon behavior
安全使用建议
What to consider before installing/running: - Declared vs required runtime: The registry says no required binaries, but the skill requires Node (to run the .js files), Puppeteer (npm dependency), Chromium/Chrome, and PM2. Ensure you install and understand these prerequisites before running. - Run in isolation first: Because the code manipulates browser profiles, kills Chrome processes, and may remove lock files and temporary Chrome artifacts, test the skill inside a disposable/isolated environment (container, VM, or dedicated user account) rather than on your primary workstation or server. - Backup any real Chrome profile: The skill expects a .profile user-data-dir under the skill folder and may instruct manual Chrome launches that point at that dir. Back up any real profile before using it and avoid pointing the skill at a profile you need. - Review and control PM2 / startup changes: The SKILL.md directs pm2 startup/save usage which can add services to system startup. If you do not want a persistent service, do not run the pm2 startup/save commands and run the tool in one-off (non-daemon) mode. - Inspect scripts that run system commands: ask-puppeteer.js and helper scripts use child_process execSync and process.kill (e.g., to find and kill Chrome PIDs) and may run rm -rf patterns to clear temp files. Confirm these commands are limited to the skill's intended profile path and are safe in your environment. - Authentication and manual interventions: The tool expects you to perform manual login/CAPTCHA resolution in a visible browser in some failure modes; be prepared to do this. The auth-check prints explicit instructions including a long local Chrome path and --no-sandbox; running Chrome with --no-sandbox is risky on multi-user hosts. - Least privilege: Avoid running as root. Run under a dedicated, unprivileged user. Prefer ephemeral profiles and sandboxed environments. - Audit network behavior: The code targets chat.deepseek.com; if you require assurance that no other endpoints are contacted or exfiltrate data, grep the source for unexpected remote hosts and review scripts/setup-daemon.sh (not included in full) and package.json for postinstall hooks. If you are not comfortable with process-level operations (killing Chrome, altering /dev/shm, enabling PM2 startup), consider rejecting the skill or requesting a version that (a) documents runtime dependencies, (b) avoids system-wide commands, and (c) provides an install script that clearly lists and installs required components into an isolated environment.
功能分析
Type: OpenClaw Skill Name: ai-orchestrator Version: 2.0.11 The `ai-orchestrator` skill automates the DeepSeek web interface via Puppeteer and captures responses using a CDP network interceptor (`ask-puppeteer.js`). It utilizes PM2 for process persistence and includes scripts for health monitoring and daemon management. While the functionality aligns with the stated goal of providing API-less LLM access, the bundle employs high-risk techniques such as shell command execution for process control (`execSync` in `ask-puppeteer.js` and `daemon-healthcheck.js`) and deep browser automation. Additionally, `package.json` includes an unused `express` dependency, which is atypical for the provided scripts. No explicit malicious intent, data exfiltration, or unauthorized remote control was identified.
能力评估
Purpose & Capability
Name/description (DeepSeek via Puppeteer, daemon + PM2) align with the code, but the package metadata declares no required binaries/env yet the SKILL.md and code assume Node, npm-installed dependencies (puppeteer), Chromium/Chrome, and PM2. The skill runs and manages a persistent daemon and expects to manipulate a Chrome profile under the skill directory—these runtime requirements are not declared in the registry metadata and should be disclosed.
Instruction Scope
SKILL.md and scripts instruct the agent/operator to run pm2 commands, remove lock files, delete and write session/profile/diagnostic files under the skill directory, and perform manual Chrome launches with --user-data-dir and --no-sandbox. The runtime instructions also advise killing Chrome processes and removing files in /dev/shm and /tmp (via helper code). Those are system-level operations beyond a simple API wrapper and expand the agent's scope to process management and local profile manipulation.
Install Mechanism
There is no formal install spec (instruction-only), but the skill bundles Node code (package.json, package-lock.json) that depends on puppeteer and expects a Chromium binary. Because no automated install is declared, the operator/agent must ensure Node modules and Chromium are present; the lack of an install step is an operational mismatch and may lead users to run code in an environment missing required dependencies.
Credentials
The skill does not request external credentials or environment variables. It stores session/profile/diagnostic state under the skill directory rather than accessing unrelated system credentials. No obvious credential exfiltration endpoints are present in the reviewed files.
Persistence & Privilege
The skill expects and manages a persistent background process via PM2 (deepseek-daemon) and provides instructions to enable PM2 autostart (pm2 startup && pm2 save). While 'always: false' is set, the skill does request persistent presence via PM2 and includes auto-restart/healthcheck logic that can restart the daemon (and trigger pm2 restart). This gives it ongoing background activity if the operator follows the instructions.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install ai-orchestrator
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /ai-orchestrator 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v2.0.11
Add adaptive oversized-prompt submit detection and shorten/retry fallback; fix giant prompt transport via --file; expand mode-matrix coverage.
v2.0.10
Hardening release: aligned contract/package versions, added publish ignore rules, fixed deterministic exit-code signaling for rate-limit and daemon-unreachable paths, and added low-risk session-fallback observability + clearer exact-string limitations.
v2.1.0
Add isolation guardrails: local setup now runs isolation checks, qwen runtime decoupling companion release, and safer separation expectations for orchestrator packaging.
v2.0.9
Fix DeepSeek daemon session continuity: follow-up requests now restore the saved chatUrl for the session instead of reusing an arbitrary open DeepSeek tab. Keeps multi-round reviews in one chat while preserving Expert-mode behavior.
v2.0.8
Force DeepSeek Expert mode before every prompt send, make --think enable the real site DeepThink toggle, and align SKILL.md with the new Expert-default runtime behavior.
v2.0.7
Skill Creator + Dual Thinking pass: adds explicit working-directory rules, fixes contradictory auth dry-run recovery, verifies daemon health through both dry-run and real-response paths, documents blocking --wait behavior, and publishes a cleaned package without runtime artifacts.
v2.0.6
Improve weak-model operability in SKILL.md: add explicit execution authority, linear execution flow, reference cues, and clearer separation between human examples, flags reference, and runtime behavior.
v2.0.5
Fix session exit hang after successful session responses; stop one-shot cleanup from killing daemon Chrome via shared profile; harden daemon metadata/endpoint recovery after restarts; verified by full live regression across dry-run, daemon/search/think, session flows, stdin/heredoc, local run, medium/large outputs, and dual-thinking rounds.
v2.0.4
Improve weak-model guidance with deterministic failure routing, symptom-to-command recovery, and clearer anti-guessing rules.
v2.0.3
Fix auth/visible flow, dry-run UX, diagnostics artifacts, rate-limit handling, long-response auditing, and docs.
v2.0.2
Fix CLI verbose support, emit DRY_RUN phase, improve rate-limit backoff, and clean documentation typos; verified with dry-run and large-answer tests.
v2.0.1
Fix: continueBtn undefined bug; Auto-recovery for chrome-error pages; Nav retry on failure
v1.1.0
Fixed new-session chat collision — startNewChat now forces new chat when session has no chatUrl, even if daemon is still on an old one. This ensures each dual-thinking topic gets its own DeepSeek chat while continuation rounds stay in the same chat.
v2.0.0
Phase 1: network-first pipeline via CDP loadingFinished + getResponseBody. parseDeepSeekBody for DeepSeek custom event-stream. Per-request correlation, cleanupState on all paths, 6-layer dedupe for Continue, evaluateOnNewDocument before goto.
v3.5.0
v3.5 full refactor: merged diagnostics (trace+metrics), .deepseek.json config, stdin/pipe support, --dry-run, daemon auto-recovery, smart rate limit with exponential backoff, dedup extractBestText, dead code removal, updated benchmarks
v3.3.3
Public-lite packaging for DeepSeek session helper.
v3.3.2
Public-lite packaging for DeepSeek session helper.
v3.3.1
Cleaner public packaging for DeepSeek session helper with reusable context and long-running conversations.
v3.3.0
Production-ready DeepSeek browser orchestration with persistent daemon, CDP interception, session persistence, and health checks.
元数据
Slug ai-orchestrator
版本 2.0.11
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 19
常见问题

AI Orchestrator 是什么?

DeepSeek AI access via Puppeteer browser automation with CDP interceptor. Persistent daemon (~35ms startup), health checks, graceful shutdown, PM2 management... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 282 次。

如何安装 AI Orchestrator?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install ai-orchestrator」即可一键安装,无需额外配置。

AI Orchestrator 是免费的吗?

是的,AI Orchestrator 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

AI Orchestrator 支持哪些平台?

AI Orchestrator 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 AI Orchestrator?

由 ciklopentan(@ciklopentan)开发并维护,当前版本 v2.0.11。

💬 留言讨论