中文EN

dsh-plugin-aitelier

workflow已测通过npmMIT

从 DSH 经 MCP 运行 AItelier 流水线:39 个工具(22 读、17 写),用于生成、运行、查看、编辑、导出与导入多步 SkillFlow 流水线。步骤在 AItelier 中执行而不占用 DSH 会话,按 run_id 轮询,在引擎强制的检查点暂停并由 answer_checkpoint 应答,事后可读取逐步 trace 与各步输出;add_provider / map_model / edit_role 可把单个角色指向本地或更便宜的端点。随包附带 aitelier-pipelines skill。

下载量 / Downloads
804
依赖体积 / node_modules
0.03 MB
测试时间 / Tested
2026-11-07
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-plugin-aitelier

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-plugin-aitelier

Use AItelier as a subagent from DeepSeek Harness: design a pipeline, edit its graph / roles / prompts / tools, run it, and carry it to another machine.

The plugin is a Profile Bundle that mounts one @deepseek-ai/dsh-mcp-client row against AItelier's MCP endpoint. The model then sees the surface as native tools under mcp__aitelier__*.

Compatibility: the patch assumes dsh-mcp-client's config shape as of dsh 0.1.0-rc.2 (serverName/transport/url/headers/toolCallTimeoutMs); every dsh release through 0.1.2-alpha.1 keeps it. This is deliberately not a peerDependencies entry: the plugin has no code and imports nothing — dsh resolves the mcp-client name from its own installation — and a declared peer would invite pnpm's auto-install-peers to pull a second, registry-sourced copy of dsh-mcp-client into the profile, which dsh's profile-first module resolution would then shadow the installation's instance with.

### No mcp__aitelier__* tools? Read this first.
A connection failure here is silent. dsh-mcp-client has failOnStartupError: false, so an unreachable endpoint does not stop dsh booting — the tools simply never appear, and nothing says why. An agent in that state can only report "no such tools" and guess; it cannot diagnose it from the inside. Check, in order:
1. Is AItelier running? curl -s localhost:4444/health should answer {"status":"ok",…}. If not, start it — see [Prerequisite](#prerequisite-aitelier-itself).
2. Is the URL right for where dsh runs? The default is http://127.0.0.1:4444/mcp (host). Use http://aitelier:4444/mcp only if dsh is itself a container on the same docker network.
3. Does the endpoint answer? curl -s -X POST $AITELIER_MCP_URL -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"c","version":"0"}}}' — a 421 means the Host header is not in AItelier's allow-list (set AITELIER_MCP_ALLOWED_HOSTS on the AItelier side).
4. Is the row actually mounted? dsh --profile <name> --dump-config | grep -A3 mcp-aitelier.

Prerequisite: AItelier itself

This plugin is a client. It does not install or start AItelier — you need one running and reachable first. AItelier ships as a container:

git clone https://github.com/linxuhao/AItelier && cd AItelier
mkdir -p ~/.aitelier-secrets && chmod 700 ~/.aitelier-secrets
printf '%s' "sk-your-deepseek-key" > ~/.aitelier-secrets/DEEPSEEK_API_KEY
chmod 600 ~/.aitelier-secrets/DEEPSEEK_API_KEY
docker compose up -d          # serves the API + MCP endpoint on 127.0.0.1:4444

The LLM key stays on the AItelier side and never travels through this plugin — see [Which API key goes where](#which-api-key-goes-where).

Install

corepack enable pnpm     # `dsh plugin` drives pnpm; on a node-only box it refuses
dsh plugin --profile headless add dsh-plugin-aitelier

That one command installs the package and appends it to the profile's dsh.profile.bundles. Then restart the profile. Configure it in the Harness home's env layer (~/.dsh/.env):

AITELIER_MCP_URL=http://127.0.0.1:4444/mcp   # the default; set it only to override
AITELIER_ADMIN_TOKEN=…                       # required for writes and private State reads

Ordinary workflow reads work with no credentials. Writes and private State reads need the token — see [Authorization](#authorization).

Verify the install by asking the agent to call mcp__aitelier__list_pipelines; it should come back with the registered pipelines.

Persistent project State DAG

For project goals and acceptance, first call state_graph_help and read its

driver_guide field. It is the tool-only fallback for the MCP prompt

state_graph_driver and resource aitelier://state/driver-guide; use the live

schemas instead of assuming this client bundles the latest server contract.

If State tools are absent, report the backend capability gap; ordinary pipeline

operations can still be used where appropriate.

Use one persistent State project per product. Register workflow or external

attempts before dispatch, retain exact IDs and frozen context, and wait with

state_graph_read(action="wait_for_state_change", arguments=...). Persist

next_after with its filter scope. Timeout does not stop a worker; completion

produces a candidate, not acceptance. Record actual evidence for each criterion

before explicit verification. Checkpoint decisions follow existing authorization.

Keep a compact private director notebook for decisions, unresolved questions,

worker/worktree ownership and cursor handoff. Reference State IDs; do not copy

its status tables or event history. No notebook API is assumed. On resume, read

current State before acting; notes cannot grant permission or certify results.

The surface

Tool · Kind · What it is for

list_pipelines · read · Start here. Names + input_hint for every registered pipeline.

get_pipeline · read · One pipeline's graph YAML and step list.

edit_pipeline · write · Replace the graph. Validated before anything is written.

list_roles / get_role · read · The agent roles a pipeline's steps use.

edit_role · write · Model, tools, temperature, thinking.

list_templates / get_template · read · Each role's prompt.

edit_template · write · Replace a role's prompt — the main way to change behaviour.

list_tools / get_tool · read · Host tools; which are generated (editable) vs built-in.

edit_tool · write · Write a generated tool. The source must import and define its own name.

export_pipeline · read · The whole closure — graph, roles with prompts, custom tools — as one JSON bundle.

import_pipeline · write · Install a bundle, optionally under a new name

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:10,最后更新 2026-09-08

链接

GitHub · Homepage · npm

同类插件