---
name: Custom Engine
slug: custom-engine
category: AI Engineering
description: Custom Engine is a minimal end-to-end fixture for testing local and HTTP custom agent transports. Use it to verify SessionInput and SessionResult flow through the pipeline.
github: "https://github.com/alibaba/skill-up/tree/main/e2e/testdata/custom-engine"
language: Go
stars: 680
forks: 45
install: "npx degit https://github.com/alibaba/skill-up/tree/main/e2e/testdata/custom-engine ~/.claude/skills/custom-engine"
installs_to: ~/.claude/skills/custom-engine
source_path: e2e/testdata/custom-engine/SKILL.md
collection_size: 23
category_size: 2451
collection_url: "https://dirskills.com/collections/alibaba/skill-up"
added: 2026-08-24T05:16:10.241Z
last_synced: 2026-08-24T05:16:10.241Z
canonical_url: "https://dirskills.com/skills/custom-engine"
---

# Custom Engine

Custom Engine is a minimal end-to-end fixture for testing local and HTTP custom agent transports. Use it to verify SessionInput and SessionResult flow through the pipeline.

**Install:**

```bash
npx degit https://github.com/alibaba/skill-up/tree/main/e2e/testdata/custom-engine ~/.claude/skills/custom-engine
```

## README

# Custom Engine e2e fixture

This directory is a minimal skill-up fixture that exercises the **Custom
Engine** local and http transports end-to-end. It is consumed by
`e2e/custom_engine_test.go`.

`agent.sh` + `evals/eval.yaml` cover the **local** transport: `agent.sh` is a
deterministic stand-in for a real custom agent that reads the `SessionInput`
JSON the framework writes to `${input_file}` and emits a fixed `SessionResult`
on stdout. The case asserts that `final_message` flows from the agent's stdout
into the report.

`evals/eval-http.yaml` exercises the **http** transport against the same
`hello.yaml` case. `TestPipeline_CustomEngine_HTTPTransport` starts an
in-process `httptest` server, points `${CUSTOM_AGENT_ENDPOINT}` at it, and
asserts the posted `SessionInput` reaches the server and the returned
`SessionResult` flows into the report — so the http stand-in agent lives in the
test rather than in `agent.sh`.
