Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Build an Agentlas automation by describing it, list saved ones, or request a run.
.claude/skills/agentlas-ai-hep-graph/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | -5% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -10% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-13 | ✗→✓ | ▲ Improved | -17% | 0% |
Update fallback: 자동 업데이트가 안 되면 hephaestus update를 한 번 실행하세요. 업데이트하지 않아도 현재 버전 명령은 그대로 동작합니다.
Saved automation graphs live in the local Agentlas database, shared with the desktop app. This command reads that database and can ask for a graph to run.
Raw arguments: everything the user typed after /skill:hep-graph.
What this command can and cannot do. It lists graphs, shows what a graph does, and requests a run. It does not execute the graph — the desktop app is what runs it. Say that plainly when you report back; do not tell the user their automation ran.
bashCLI="" for candidate in \ "$(command -v agentlas 2>/dev/null)" \ "$HOME/.agentlas/runtime/current/bin/agentlas" \ "./bin/agentlas" do if [ -n "$candidate" ] && [ -x "$candidate" ]; then CLI="$candidate"; break; fi done [ -n "$CLI" ] || { echo "Agentlas CLI not found. Install it with: npm i -g agentlas" >&2; exit 1; }
With new <what they want> (or when the user describes an automation they want and no saved graph matches), run the CLI's interview. It asks the user things it must not decide for them — when it runs, whether a step goes outside, how many times a repeat may run.
The CLI reads answers from stdin, one per line. So: run it once with no answers to see the first questions, relay them to the user in their own words, get their answers, then run it again with every answer so far:
bashprintf '%s\n' "<answer 1>" "<answer 2>" "y" | "$CLI" graph new "<what they want>"
Rules that matter here:
a time. The whole point of the interview is that these come from the person.
(알아서 해주세요 / you decide). The CLI then takes the most conservative option and says what it chose. Do not decide on their behalf yourself.
y to save. Until then nothing is written.(graph show to look it over, automation on to turn it on).
it needed one more answer. Relay that exact question to the user and run again with the fuller list. Do not retry with a guess.
With no arguments, or with list:
bash"$CLI" graph list
Report each graph with its trigger kind (schedule or input), step count, and whether it is on. If nothing is saved, say so and point at the desktop app's Graph page — do not invent graphs.
With show <name>:
bash"$CLI" graph show "<name>"
The output is a tree, not a list — indentation is the wiring. Relay it as wiring, because on a surface with no canvas this is the only way the user can see where a graph branches. Four marks must survive into your summary: a step that changes something outside, a step that asks first, a branch's [yes]/[no] sides, and a ↩ back to … line (a repeat). If the graph starts from a value the user provides, the output says so — carry that into the summary too.
With run <name>, the user's direct command is the authority to request that run. Do not ask for a second yes: graph approval is captured when the graph is created, and adding another confirmation here makes an approved automation needlessly stall.
"$CLI" graph show "<name>" first and report what the graph does,including any step that changes something outside.
graph show says so), require that valuefrom the user in their own words. This is missing execution input, not an approval prompt. Do not invent one or reuse an example from the graph.
bash"$CLI" graph run "<name>" -y
If the graph starts from a value, pass it — without it the CLI refuses, because a graph run with a blank value silently produces something else:
bash"$CLI" graph run "<name>" -y --input "<the value the user gave>"
Report exactly what the CLI reported: the run was requested, the desktop app picks it up within a minute while open, and a closed app runs it on next open. If the CLI refuses because the automation is switched off, relay that refusal and its reason rather than retrying.
If the CLI exits non-zero, show its message verbatim and stop. Do not substitute a guess about why, and do not retry a run request.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 13,832 | 12,682 | -8% | 1 | 1 | 0% | 537 | 1,751 | +226% | 0 | 0 | — |
case-02 | fail→fail | 6,515 | 9,041 | +39% | 1 | 1 | 0% | 736 | 1,612 | +119% | 0 | 0 | — |
case-03 | fail→fail | 14,411 | 9,111 | -37% | 1 | 1 | 0% | 1,172 | 1,629 | +39% | 0 | 0 | — |
case-04 | fail→fail | 9,116 | 11,451 | +26% | 1 | 1 | 0% | 1,107 | 1,713 | +55% | 0 | 0 | — |
case-05 | fail→pass | 12,651 | 4,332 | -66% | 1 | 1 | 0% | 1,776 | 1,680 | -5% | 0 | 0 | — |
case-06 | fail→pass | 10,878 | 3,997 | -63% | 1 | 1 | 0% | 1,888 | 1,781 | -6% | 0 | 0 | — |
case-07 | fail→fail | 9,443 | 4,704 | -50% | 1 | 1 | 0% | 1,225 | 1,879 | +53% | 0 | 0 | — |
case-08 | fail→pass | 27,832 | 3,012 | -89% | 1 | 1 | 0% | 1,816 | 1,626 | -10% | 0 | 0 | — |
case-09 | fail→fail | 15,823 | 4,742 | -70% | 1 | 1 | 0% | 1,252 | 1,916 | +53% | 0 | 0 | — |
case-10 | pass→pass | 14,008 | 5,776 | -59% | 1 | 1 | 0% | 2,059 | 1,851 | -10% | 0 | 0 | — |
case-11 | pass→fail | 16,115 | 4,645 | -71% | 1 | 1 | 0% | 2,200 | 1,856 | -16% | 0 | 0 | — |
case-12 | fail→pass | 11,826 | 5,599 | -53% | 1 | 1 | 0% | 1,763 | 2,009 | +14% | 0 | 0 | — |
case-13 | fail→pass | 16,075 | 4,769 | -70% | 1 | 1 | 0% | 2,380 | 1,964 | -17% | 0 | 0 | — |
case-14 | pass→pass | 10,089 | 2,988 | -70% | 1 | 1 | 0% | 1,595 | 1,575 | -1% | 0 | 0 | — |
case-15 | fail→fail | 10,033 | 11,959 | +19% | 1 | 1 | 0% | 1,602 | 2,002 | +25% | 0 | 0 | — |
case-16 | pass→pass | 6,830 | 2,853 | -58% | 1 | 1 | 0% | 946 | 1,578 | +67% | 0 | 0 | — |
case-17 | fail→pass | 17,619 | 2,869 | -84% | 1 | 1 | 0% | 1,893 | 1,466 | -23% | 0 | 0 | — |
case-18 | fail→pass | 11,954 | 3,005 | -75% | 1 | 1 | 0% | 1,398 | 1,567 | +12% | 0 | 0 | — |
case-19 | fail→pass | 6,071 | 4,289 | -29% | 1 | 1 | 0% | 850 | 1,866 | +120% | 0 | 0 | — |
case-20 | fail→fail | 22,673 | 8,945 | -61% | 1 | 1 | 0% | 1,076 | 2,692 | +150% | 0 | 0 | — |
case-21 | fail→pass | 9,700 | 4,892 | -50% | 1 | 1 | 0% | 1,489 | 1,847 | +24% | 0 | 0 | — |
case-22 | pass→pass | 9,486 | 7,482 | -21% | 1 | 1 | 0% | 1,371 | 2,206 | +61% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 15 counted toward the lift figure. The other 7 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +36 percentage points is the difference between those two pass rates over the 15 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.