2426be893a
An image the manifest does not publish was rewritten to a raw.githubusercontent URL, which serves a private repository to nobody: raw answers 404 unauthenticated, and a github.com session does not authenticate it. Every image on the site was broken for every reader, and no gate could say so — link checking asks whether the file exists in the repository, not whether a site reader can fetch it. The projector now copies a referenced image into the generated tree beside the page and points the reference at it, so Vite bundles it like any other site asset and repository visibility cannot reach the published page. The copy lands beside the page so one relative URL is right from both locale trees and a page's assets leave with the page; two sources projecting onto one path throw rather than letting the last copy win. Canonical Markdown keeps writing ordinary repository-relative paths, so the same file still renders when read in the repository. The guide this was found through is renamed to its subject: 配置模型.
63 lines
1.8 KiB
Markdown
63 lines
1.8 KiB
Markdown
# Quick start
|
|
|
|
English | [中文](quickstart.zh.md)
|
|
|
|
This guide gets an agent running in five minutes.
|
|
|
|
## Prerequisites
|
|
|
|
- [Node.js](https://nodejs.org/) ^22.19 or >= 24
|
|
- [pnpm](https://pnpm.io/) 11 through Corepack
|
|
- A [DeepSeek Platform](https://platform.deepseek.com/) API key
|
|
|
|
```sh
|
|
node -v
|
|
corepack enable
|
|
pnpm -v
|
|
```
|
|
|
|
## Step 1: install and configure the API key
|
|
|
|
```sh
|
|
git clone https://github.com/deepseek-harness/deepseek-harness.git
|
|
cd deepseek-harness
|
|
pnpm install
|
|
```
|
|
|
|
Create the gitignored repository-root `.env`:
|
|
|
|
```sh
|
|
DEEPSEEK_API_KEY=sk-your-key-here
|
|
```
|
|
|
|
## Step 2: run one Headless task
|
|
|
|
Run a non-interactive task and print its final answer:
|
|
|
|
```sh
|
|
pnpm run demo:headless "summarize the architecture of this workspace"
|
|
```
|
|
|
|
Headless runs one complete model/tool turn, persists the session, prints the result, and exits. Use `--output-format stream-json` when you need the canonical event stream.
|
|
|
|
## Step 3: use the Web UI
|
|
|
|
Build and start the browser interface:
|
|
|
|
```sh
|
|
pnpm run build
|
|
pnpm run dsh web
|
|
```
|
|
|
|
Open `http://127.0.0.1:3080`. The agent can read and write files, run commands, delegate subtasks, and track a plan. Try: `Create hello.js in the current directory, print "Hello from Harness!", and run it`.
|
|
|
|
## What happened
|
|
|
|
headless-agent uses the `@deepseek-ai/dsh-cli-demo` app. `dsh web` instead composes [`apps/cli/config/base.cordis.yml`](../../../apps/cli/config/base.cordis.yml) with [`apps/cli/config/web.cordis.yml`](../../../apps/cli/config/web.cordis.yml) and no app bundle. Both select the DeepSeek model and capability plugins appropriate to their entry mode.
|
|
|
|
## Next steps
|
|
|
|
- [Configure models](./providers.md) — reach providers beyond DeepSeek, and custom gateways
|
|
- [Configuration](./config.md) — understand the `cordis.yml` format
|
|
- [Develop a plugin](../develop/basic/) — build your own tool or backend
|