stable-harness 0.0.140 → 0.0.144
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -17
- package/dist/index.js +1 -1
- package/dist/runtime/skills/skill-metadata.js +1 -1
- package/dist/workspace/compile.js +1 -1
- package/docs/0.1.0-tool-guard-benchmark.zh.md +5 -5
- package/docs/architecture/system-architecture.zh.md +3 -3
- package/docs/evaluation/0.1.0-bfcl-targeted-model-matrix.zh.md +306 -306
- package/docs/evaluation/0.1.0-bfcl-targeted-review-matrix.zh.md +1 -1
- package/docs/evaluation/0.1.0-bfcl-tool-guard.zh.md +1 -1
- package/docs/granite-tool-calling-comparison.zh.md +8 -8
- package/docs/guides/getting-started.md +14 -6
- package/docs/guides/index.md +5 -3
- package/docs/guides/integration-guide.md +44 -43
- package/docs/guides/operator-runbook.md +51 -3
- package/docs/guides/runtime-governance-proof.md +4 -4
- package/docs/guides/workspace-authoring.md +2 -2
- package/docs/guides/workspace-docker-build.md +3 -3
- package/docs/memory/0.1.0-memory-design.zh.md +20 -0
- package/docs/memory/0.1.0-step-09-deepagents-native-memory.zh.md +1 -1
- package/docs/memory/0.1.0-step-09-langmem-shaped-provider.zh.md +1 -1
- package/docs/memory/0.1.0-step-09-memory-adapter-projection.zh.md +3 -3
- package/docs/memory/0.1.0-step-09-memory-contract.zh.md +1 -1
- package/docs/memory/0.1.0-step-09-memory-governance-approval.zh.md +1 -1
- package/docs/memory/0.1.0-step-09-memory-lifecycle-hooks.zh.md +1 -1
- package/docs/memory/0.1.0-step-09-memory-maintenance-boundary.zh.md +1 -1
- package/docs/memory/0.1.0-step-09-memory-persistence-boundary.zh.md +1 -1
- package/docs/protocols/coverage-matrix.md +114 -0
- package/docs/protocols/http-runtime.md +31 -8
- package/docs/protocols/langgraph-compatible.md +75 -17
- package/docs/protocols/openai-compatible.md +25 -7
- package/docs/protocols/{agent-protocols.md → protocol-facades.md} +76 -18
- package/node_modules/@stable-harness/adapter-deepagents/dist/src/adapter.js +1 -1
- package/node_modules/@stable-harness/adapter-deepagents/dist/src/internal/builtin/task-inventory.js +1 -1
- package/node_modules/@stable-harness/adapter-deepagents/dist/src/internal/builtin-call-repair.js +1 -1
- package/node_modules/@stable-harness/adapter-deepagents/dist/src/internal/builtin-tool-policy.js +1 -1
- package/node_modules/@stable-harness/adapter-deepagents/dist/src/internal/gateway/tool-failure-events.js +1 -1
- package/node_modules/@stable-harness/adapter-deepagents/dist/src/internal/raw-tool-call-parser.js +1 -1
- package/node_modules/@stable-harness/adapter-deepagents/dist/src/internal/stream-events.js +1 -1
- package/node_modules/@stable-harness/adapter-deepagents/dist/src/internal/substrate/checkpoint.js +1 -1
- package/node_modules/@stable-harness/adapter-deepagents/dist/src/internal/tool-repeat-visibility.js +1 -1
- package/node_modules/@stable-harness/adapter-deepagents/dist/src/internal/trace-projection.js +1 -1
- package/node_modules/@stable-harness/adapter-deepagents/dist/src/internal/vfs-backend.js +1 -1
- package/node_modules/@stable-harness/adapter-deepagents/package.json +2 -2
- package/node_modules/@stable-harness/adapter-langgraph/dist/src/graph.js +1 -1
- package/node_modules/@stable-harness/adapter-langgraph/dist/src/index.js +1 -1
- package/node_modules/@stable-harness/adapter-langgraph/dist/src/runtime.js +1 -1
- package/node_modules/@stable-harness/adapter-langgraph/dist/src/skill-providers.js +1 -1
- package/node_modules/@stable-harness/adapter-langgraph/dist/src/types.d.ts +1 -0
- package/node_modules/@stable-harness/adapter-langgraph/package.json +2 -2
- package/node_modules/@stable-harness/core/dist/boundary-scan.js +1 -1
- package/node_modules/@stable-harness/core/dist/index.d.ts +1 -0
- package/node_modules/@stable-harness/core/dist/index.js +1 -1
- package/node_modules/@stable-harness/core/dist/memory-plugins/shared.js +1 -1
- package/node_modules/@stable-harness/core/dist/memory-plugins.js +1 -1
- package/node_modules/@stable-harness/core/dist/quality/event-evidence.js +1 -1
- package/node_modules/@stable-harness/core/dist/quality/execution-review.js +1 -1
- package/node_modules/@stable-harness/core/dist/quality/synthesis/fields.js +1 -1
- package/node_modules/@stable-harness/core/dist/recovery/execution-contract.js +1 -1
- package/node_modules/@stable-harness/core/dist/recovery/tool-call-structure.js +1 -1
- package/node_modules/@stable-harness/core/dist/recovery/tool-call.js +1 -1
- package/node_modules/@stable-harness/core/dist/runtime/direct-tool-call.js +1 -1
- package/node_modules/@stable-harness/core/dist/runtime/inspection/methods.js +1 -1
- package/node_modules/@stable-harness/core/dist/runtime/inspection/replay.js +1 -1
- package/node_modules/@stable-harness/core/dist/runtime/persistence/artifacts.d.ts +4 -0
- package/node_modules/@stable-harness/core/dist/runtime/persistence/artifacts.js +1 -1
- package/node_modules/@stable-harness/core/dist/runtime/persistence/queue.d.ts +1 -0
- package/node_modules/@stable-harness/core/dist/runtime/persistence/queue.js +1 -1
- package/node_modules/@stable-harness/core/dist/runtime/persistence/stores.d.ts +1 -0
- package/node_modules/@stable-harness/core/dist/runtime/persistence/stores.js +1 -1
- package/node_modules/@stable-harness/core/dist/runtime/persistence/system-data.d.ts +34 -0
- package/node_modules/@stable-harness/core/dist/runtime/persistence/system-data.js +1 -0
- package/node_modules/@stable-harness/core/dist/runtime/recovery/adapter-result.js +1 -1
- package/node_modules/@stable-harness/core/dist/runtime/recovery/non-focused-recovery.js +1 -1
- package/node_modules/@stable-harness/core/dist/runtime.js +1 -1
- package/node_modules/@stable-harness/core/dist/workflows/index.d.ts +20 -0
- package/node_modules/@stable-harness/core/dist/workflows/index.js +1 -1
- package/node_modules/@stable-harness/core/package.json +3 -3
- package/node_modules/@stable-harness/governance/dist/src/approval-queue.d.ts +1 -0
- package/node_modules/@stable-harness/governance/dist/src/approval-queue.js +1 -1
- package/node_modules/@stable-harness/governance/dist/src/index.d.ts +1 -1
- package/node_modules/@stable-harness/governance/dist/src/index.js +1 -1
- package/node_modules/@stable-harness/governance/package.json +1 -1
- package/node_modules/@stable-harness/memory/package.json +1 -1
- package/node_modules/@stable-harness/protocols/dist/src/http-events.d.ts +2 -0
- package/node_modules/@stable-harness/protocols/dist/src/http-events.js +1 -1
- package/node_modules/@stable-harness/protocols/dist/src/http-server.d.ts +5 -1
- package/node_modules/@stable-harness/protocols/dist/src/http-server.js +1 -1
- package/node_modules/@stable-harness/protocols/dist/src/index.d.ts +3 -3
- package/node_modules/@stable-harness/protocols/dist/src/index.js +1 -1
- package/node_modules/@stable-harness/protocols/dist/src/openai-compatible.js +1 -1
- package/node_modules/@stable-harness/protocols/dist/src/openai-payload.d.ts +89 -0
- package/node_modules/@stable-harness/protocols/dist/src/openai-payload.js +1 -1
- package/node_modules/@stable-harness/protocols/dist/src/{agent-protocols.d.ts → protocol-facades.d.ts} +4 -10
- package/node_modules/@stable-harness/protocols/dist/src/protocol-facades.js +1 -0
- package/node_modules/@stable-harness/protocols/dist/src/protocol-utils.d.ts +505 -0
- package/node_modules/@stable-harness/protocols/dist/src/protocol-utils.js +1 -0
- package/node_modules/@stable-harness/protocols/package.json +2 -2
- package/node_modules/@stable-harness/tool-gateway/dist/src/argument-guard.js +1 -1
- package/node_modules/@stable-harness/tool-gateway/dist/src/schema-validation.js +1 -1
- package/node_modules/@stable-harness/tool-gateway/package.json +1 -1
- package/node_modules/@stable-harness/workspace-yaml/dist/boundary-scan.js +1 -1
- package/node_modules/@stable-harness/workspace-yaml/dist/discovery.js +1 -1
- package/node_modules/@stable-harness/workspace-yaml/dist/documents.js +1 -1
- package/node_modules/@stable-harness/workspace-yaml/dist/loader.js +1 -1
- package/node_modules/@stable-harness/workspace-yaml/dist/workflows.js +1 -1
- package/node_modules/@stable-harness/workspace-yaml/package.json +2 -2
- package/package.json +12 -11
- package/packages/adapter-deepagents/dist/src/adapter.js +1 -1
- package/packages/adapter-deepagents/dist/src/internal/builtin/task-inventory.js +1 -1
- package/packages/adapter-deepagents/dist/src/internal/builtin-call-repair.js +1 -1
- package/packages/adapter-deepagents/dist/src/internal/builtin-tool-policy.js +1 -1
- package/packages/adapter-deepagents/dist/src/internal/gateway/tool-failure-events.js +1 -1
- package/packages/adapter-deepagents/dist/src/internal/raw-tool-call-parser.js +1 -1
- package/packages/adapter-deepagents/dist/src/internal/stream-events.js +1 -1
- package/packages/adapter-deepagents/dist/src/internal/substrate/checkpoint.js +1 -1
- package/packages/adapter-deepagents/dist/src/internal/tool-repeat-visibility.js +1 -1
- package/packages/adapter-deepagents/dist/src/internal/trace-projection.js +1 -1
- package/packages/adapter-deepagents/dist/src/internal/vfs-backend.js +1 -1
- package/packages/adapter-deepagents/package.json +2 -2
- package/packages/adapter-langgraph/dist/src/graph.js +1 -1
- package/packages/adapter-langgraph/dist/src/index.js +1 -1
- package/packages/adapter-langgraph/dist/src/runtime.js +1 -1
- package/packages/adapter-langgraph/dist/src/skill-providers.js +1 -1
- package/packages/adapter-langgraph/dist/src/types.d.ts +1 -0
- package/packages/adapter-langgraph/package.json +2 -2
- package/packages/cli/dist/src/args.d.ts +3 -2
- package/packages/cli/dist/src/args.js +1 -1
- package/packages/cli/dist/src/build.js +1 -1
- package/packages/cli/dist/src/cli.js +1 -1
- package/packages/cli/dist/src/console/session.js +1 -1
- package/packages/cli/dist/src/daemon/client.d.ts +4 -3
- package/packages/cli/dist/src/daemon/client.js +1 -1
- package/packages/cli/dist/src/init.js +1 -1
- package/packages/cli/dist/src/langgraph/agent-server-compat.d.ts +8 -0
- package/packages/cli/dist/src/langgraph/agent-server-compat.js +1 -0
- package/packages/cli/dist/src/langgraph/store-projection.d.ts +1 -0
- package/packages/cli/dist/src/langgraph/store-projection.js +1 -0
- package/packages/cli/dist/src/langgraph-official.js +1 -1
- package/packages/cli/dist/src/memory/providers.js +1 -1
- package/packages/cli/dist/src/server/gateway.d.ts +12 -0
- package/packages/cli/dist/src/server/gateway.js +1 -0
- package/packages/cli/dist/src/server/protocol-defaults.d.ts +7 -0
- package/packages/cli/dist/src/server/protocol-defaults.js +1 -0
- package/packages/cli/dist/src/server/studio.d.ts +1 -0
- package/packages/cli/dist/src/server/studio.js +1 -0
- package/packages/cli/dist/src/server.js +1 -1
- package/packages/cli/package.json +8 -8
- package/packages/core/dist/boundary-scan.js +1 -1
- package/packages/core/dist/index.d.ts +1 -0
- package/packages/core/dist/index.js +1 -1
- package/packages/core/dist/memory-plugins/shared.js +1 -1
- package/packages/core/dist/memory-plugins.js +1 -1
- package/packages/core/dist/quality/event-evidence.js +1 -1
- package/packages/core/dist/quality/execution-review.js +1 -1
- package/packages/core/dist/quality/synthesis/fields.js +1 -1
- package/packages/core/dist/recovery/execution-contract.js +1 -1
- package/packages/core/dist/recovery/tool-call-structure.js +1 -1
- package/packages/core/dist/recovery/tool-call.js +1 -1
- package/packages/core/dist/runtime/direct-tool-call.js +1 -1
- package/packages/core/dist/runtime/inspection/methods.js +1 -1
- package/packages/core/dist/runtime/inspection/replay.js +1 -1
- package/packages/core/dist/runtime/persistence/artifacts.d.ts +4 -0
- package/packages/core/dist/runtime/persistence/artifacts.js +1 -1
- package/packages/core/dist/runtime/persistence/queue.d.ts +1 -0
- package/packages/core/dist/runtime/persistence/queue.js +1 -1
- package/packages/core/dist/runtime/persistence/stores.d.ts +1 -0
- package/packages/core/dist/runtime/persistence/stores.js +1 -1
- package/packages/core/dist/runtime/persistence/system-data.d.ts +34 -0
- package/packages/core/dist/runtime/persistence/system-data.js +1 -0
- package/packages/core/dist/runtime/recovery/adapter-result.js +1 -1
- package/packages/core/dist/runtime/recovery/non-focused-recovery.js +1 -1
- package/packages/core/dist/runtime.js +1 -1
- package/packages/core/dist/workflows/index.d.ts +20 -0
- package/packages/core/dist/workflows/index.js +1 -1
- package/packages/core/package.json +3 -3
- package/packages/evaluation/dist/src/benchmark.js +1 -1
- package/packages/evaluation/dist/src/run-record.js +1 -1
- package/packages/evaluation/dist/src/tool-call-metrics.js +1 -1
- package/packages/evaluation/package.json +2 -2
- package/packages/governance/dist/src/approval-queue.d.ts +1 -0
- package/packages/governance/dist/src/approval-queue.js +1 -1
- package/packages/governance/dist/src/index.d.ts +1 -1
- package/packages/governance/dist/src/index.js +1 -1
- package/packages/governance/package.json +1 -1
- package/packages/memory/package.json +1 -1
- package/packages/protocols/dist/src/http-events.d.ts +2 -0
- package/packages/protocols/dist/src/http-events.js +1 -1
- package/packages/protocols/dist/src/http-server.d.ts +5 -1
- package/packages/protocols/dist/src/http-server.js +1 -1
- package/packages/protocols/dist/src/index.d.ts +3 -3
- package/packages/protocols/dist/src/index.js +1 -1
- package/packages/protocols/dist/src/openai-compatible.js +1 -1
- package/packages/protocols/dist/src/openai-payload.d.ts +89 -0
- package/packages/protocols/dist/src/openai-payload.js +1 -1
- package/packages/protocols/dist/src/{agent-protocols.d.ts → protocol-facades.d.ts} +4 -10
- package/packages/protocols/dist/src/protocol-facades.js +1 -0
- package/packages/protocols/dist/src/protocol-utils.d.ts +505 -0
- package/packages/protocols/dist/src/protocol-utils.js +1 -0
- package/packages/protocols/package.json +2 -2
- package/packages/tool-gateway/dist/src/argument-guard.js +1 -1
- package/packages/tool-gateway/dist/src/schema-validation.js +1 -1
- package/packages/tool-gateway/package.json +1 -1
- package/packages/workspace-yaml/dist/boundary-scan.js +1 -1
- package/packages/workspace-yaml/dist/discovery.js +1 -1
- package/packages/workspace-yaml/dist/documents.js +1 -1
- package/packages/workspace-yaml/dist/loader.js +1 -1
- package/packages/workspace-yaml/dist/workflows.js +1 -1
- package/packages/workspace-yaml/package.json +2 -2
- package/node_modules/@stable-harness/protocols/dist/src/agent-protocols.js +0 -1
- package/packages/protocols/dist/src/agent-protocols.js +0 -1
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- 标准数据:Berkeley Function Calling Leaderboard BFCL v4 single-turn categories
|
|
8
8
|
- 模型:`qwen3.5:2b, qwen3.5:4b, qwen3.5:9b, gemma4:e2b`
|
|
9
9
|
- 模式:`raw, repair, review`
|
|
10
|
-
- 远端 Ollama:`https://ollama-rtx-4070.easynet.world`
|
|
10
|
+
- 远端 Ollama:`https://ollama-rtx-4070.easynet.world/v1`
|
|
11
11
|
- 用例数:`1800`
|
|
12
12
|
- 说明:这是 BFCL 标准数据上的 stable-harness guard/repair 测试,不是 BFCL 官方 leaderboard 分数。
|
|
13
13
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
- 标准数据:Berkeley Function Calling Leaderboard BFCL v4 single-turn categories
|
|
8
8
|
- 模型:`qwen3.5:4b`
|
|
9
|
-
- 远端 Ollama:`https://ollama-rtx-4070.easynet.world`
|
|
9
|
+
- 远端 Ollama:`https://ollama-rtx-4070.easynet.world/v1`
|
|
10
10
|
- 用例数:`1390`
|
|
11
11
|
- Repair:`on`
|
|
12
12
|
- 说明:这是 BFCL 标准数据上的 stable-harness guard/repair 测试,不是 BFCL 官方 leaderboard 分数。
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
- Default Ollama model id: `qwen3.5:0.8b`
|
|
8
8
|
- Default Ollama options: `num_ctx=2048`, `num_predict=256`
|
|
9
|
-
- Granite baseline model id: `
|
|
9
|
+
- Granite baseline model id: `qwen3.5:4b`
|
|
10
10
|
- Hugging Face model id: `ibm-granite/granite-4.1-3b`
|
|
11
11
|
- Ollama native endpoint: `/api/chat`
|
|
12
12
|
- vLLM/SGLang endpoint: OpenAI-compatible `/v1/chat/completions`
|
|
@@ -76,11 +76,11 @@ Parser support varies by backend and model template. Keep parser selection as ba
|
|
|
76
76
|
|
|
77
77
|
Validated in this checkout:
|
|
78
78
|
|
|
79
|
-
- local Ollama `
|
|
80
|
-
- remote Ollama `https://ollama-rtx-4070.easynet.world`, model `
|
|
79
|
+
- local Ollama `https://ollama-rtx-4070.easynet.world/v1`, model `qwen3.5:4b`: 3/3 passed.
|
|
80
|
+
- remote Ollama `https://ollama-rtx-4070.easynet.world/v1`, model `qwen3.5:4b`: 3/3 passed.
|
|
81
81
|
- local Ollama through OpenAI-compatible `/v1`, `tool_choice=required`: 3/3 passed.
|
|
82
82
|
- local Ollama through OpenAI-compatible `/v1`, `tool_choice=named`: 3/3 passed.
|
|
83
|
-
- CUDA host Ollama `
|
|
83
|
+
- CUDA host Ollama `https://ollama-rtx-4070.easynet.world/v1`, model `qwen3.5:4b`: 3/3 passed.
|
|
84
84
|
- CUDA host Ollama through OpenAI-compatible `/v1`, `tool_choice=required`: 3/3 passed.
|
|
85
85
|
- CUDA host Ollama through OpenAI-compatible `/v1`, `tool_choice=named`: 3/3 passed.
|
|
86
86
|
- CUDA host vLLM `http://192.168.0.201:8000/v1`, model `ibm-granite/granite-4.1-3b`, `tool_choice=auto`: 3/3 passed.
|
|
@@ -172,7 +172,7 @@ Expanded matrix: 15 cases. The additional cases cover closed-ticket search, Hong
|
|
|
172
172
|
|
|
173
173
|
Ollama models currently visible on `192.168.0.201` include:
|
|
174
174
|
|
|
175
|
-
- Small/medium chat candidates: `qwen3.5:0.8b`, `qwen3:0.6b`, `lfm2.5-thinking:latest`, `
|
|
175
|
+
- Small/medium chat candidates: `qwen3.5:0.8b`, `qwen3:0.6b`, `lfm2.5-thinking:latest`, `qwen3.5:4b`, `qwen3.5:2b`, `qwen3.5:4b`, `qwen3.5:4b`, `qwen3.5:9b`, `qwen3.5:4b`, `gemma4:e2b`, `gemma4:e4b`, `gpt-oss:latest`.
|
|
176
176
|
- Very large or slower candidates not included in the fast matrix: `qwen3.6:27b`, `qwen3.6:35b`, `gemma4:26b`, `qwen3.5:27b`, `nemotron-cascade-2:30b`, `lfm2:latest`.
|
|
177
177
|
- Non-chat/specialized models not included: `nomic-embed-text:latest`, `glm-ocr:q8_0`.
|
|
178
178
|
|
|
@@ -184,9 +184,9 @@ Fast matrix results:
|
|
|
184
184
|
| Ollama | `qwen3.5:4b` | native auto tools | 15/15 | none |
|
|
185
185
|
| Ollama | `qwen3.5:9b` | native auto tools | 15/15 | none |
|
|
186
186
|
| Ollama | `qwen3.5:0.8b` | native auto tools | 14/15 | `freshness` day instead of month |
|
|
187
|
-
| Ollama | `
|
|
188
|
-
| Ollama | `qwen3:
|
|
189
|
-
| Ollama | `
|
|
187
|
+
| Ollama | `qwen3.5:4b` | native auto tools | 14/15 | Chinese news query became unnatural text |
|
|
188
|
+
| Ollama | `qwen3.5:4b` | native auto tools | 14/15 | ExampleCo ticker became `EXCO` |
|
|
189
|
+
| Ollama | `qwen3.5:4b` | native auto tools | 14/15 | path with space was collapsed |
|
|
190
190
|
| Ollama | `gemma4:e2b` | native auto tools | 14/15 | missed Chinese ExampleCo stock tool call |
|
|
191
191
|
| Ollama | `gemma4:e4b` | native auto tools | 14/15 | missed Chinese ExampleCo stock tool call |
|
|
192
192
|
| Ollama | `lfm2.5-thinking:latest` | native auto tools | 13/15 | namespace typo and HK market error |
|
|
@@ -56,8 +56,8 @@ For a local or private OpenAI-compatible endpoint, keep the same model catalog
|
|
|
56
56
|
shape and change the environment variables:
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
|
-
export STABLE_HARNESS_MODEL=
|
|
60
|
-
export STABLE_HARNESS_OPENAI_BASE_URL=
|
|
59
|
+
export STABLE_HARNESS_MODEL=qwen3.5:4b
|
|
60
|
+
export STABLE_HARNESS_OPENAI_BASE_URL=https://ollama-rtx-4070.easynet.world/v1
|
|
61
61
|
export OPENAI_API_KEY=local
|
|
62
62
|
```
|
|
63
63
|
|
|
@@ -87,21 +87,29 @@ Print runtime trace lines:
|
|
|
87
87
|
stable-harness -w . --agent orchestra --trace "Call the echo tool with hello."
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
## Start The
|
|
90
|
+
## Start The Runtime Daemon
|
|
91
91
|
|
|
92
92
|
```bash
|
|
93
|
-
stable-harness start -w .
|
|
93
|
+
stable-harness start -w .
|
|
94
|
+
stable-harness serve -w .
|
|
94
95
|
```
|
|
95
96
|
|
|
96
|
-
Clients can point at:
|
|
97
|
+
Clients can point at the fixed local gateway paths:
|
|
97
98
|
|
|
98
99
|
```text
|
|
99
|
-
|
|
100
|
+
stable-harness-studio: https://shs.easynet.world/?baseUrl=http%3A%2F%2F127.0.0.1%3A56789
|
|
101
|
+
LangSmith Studio: https://smith.langchain.com/studio/?baseUrl=http%3A%2F%2F127.0.0.1%3A56789%2Fprotocols%2Flanggraph
|
|
102
|
+
Runtime API: http://127.0.0.1:56789/runtime/v1
|
|
103
|
+
OpenAI-compatible: http://127.0.0.1:56789/protocols/openai/v1
|
|
104
|
+
LangGraph-compatible: http://127.0.0.1:56789/protocols/langgraph
|
|
100
105
|
```
|
|
101
106
|
|
|
102
107
|
The facade is a protocol adapter around the same Stable Harness runtime. It is
|
|
103
108
|
not a separate execution path.
|
|
104
109
|
|
|
110
|
+
The hosted Stable Harness Studio also accepts an explicit gateway parameter:
|
|
111
|
+
`https://shs.easynet.world/?baseUrl=<stable-harness-gateway-url>`.
|
|
112
|
+
|
|
105
113
|
## Develop The Framework
|
|
106
114
|
|
|
107
115
|
Clone the repository only when you are changing Stable Harness itself:
|
package/docs/guides/index.md
CHANGED
|
@@ -32,8 +32,9 @@ embed it, operate it, or explain why it exists.
|
|
|
32
32
|
relative to agent frameworks, protocol gateways, and orchestration systems.
|
|
33
33
|
- [Product boundary](../product-boundary.md): the guardrails that keep the project
|
|
34
34
|
framework-generic and passthrough-first.
|
|
35
|
-
- [
|
|
36
|
-
|
|
35
|
+
- [Protocol feature coverage matrix](../protocols/coverage-matrix.md): side-by-side
|
|
36
|
+
runtime feature and API support across the Runtime API, OpenAI-compatible,
|
|
37
|
+
LangGraph-compatible, ACP, A2A, and AG-UI surfaces.
|
|
37
38
|
|
|
38
39
|
## Engineering References
|
|
39
40
|
|
|
@@ -43,7 +44,8 @@ embed it, operate it, or explain why it exists.
|
|
|
43
44
|
- [OpenAI-compatible protocol](../protocols/openai-compatible.md)
|
|
44
45
|
- [LangGraph-compatible protocol](../protocols/langgraph-compatible.md)
|
|
45
46
|
- [HTTP runtime protocol](../protocols/http-runtime.md)
|
|
46
|
-
- [ACP, A2A, and AG-UI protocol facades](../protocols/
|
|
47
|
+
- [ACP, A2A, and AG-UI protocol facades](../protocols/protocol-facades.md)
|
|
48
|
+
- [Protocol feature coverage matrix](../protocols/coverage-matrix.md)
|
|
47
49
|
|
|
48
50
|
The short version: keep execution semantics upstream-native, define product
|
|
49
51
|
inventory in YAML, and use Stable Harness for lifecycle, governance,
|
|
@@ -23,7 +23,7 @@ stable-harness workflow render review-shell -w ./workspace
|
|
|
23
23
|
stable-harness workflow inspect review-shell -w ./workspace
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
The CLI is intentionally thin. When the
|
|
26
|
+
The CLI is intentionally thin. When the native runtime daemon for the workspace
|
|
27
27
|
is already running, request commands submit work through HTTP and consume
|
|
28
28
|
runtime updates through SSE. When no daemon is available, the CLI falls back to
|
|
29
29
|
an in-process runtime for local development.
|
|
@@ -32,7 +32,7 @@ Clients can choose the connection mode explicitly:
|
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
stable-harness -w ./workspace --runtime auto "Review the release evidence."
|
|
35
|
-
stable-harness -w ./workspace --runtime daemon --daemon-url http://127.0.0.1:
|
|
35
|
+
stable-harness -w ./workspace --runtime daemon --daemon-url http://127.0.0.1:56789/runtime/v1 "Review the release evidence."
|
|
36
36
|
stable-harness -w ./workspace --runtime local "Review the release evidence."
|
|
37
37
|
stable-harness console -w ./workspace --runtime daemon
|
|
38
38
|
```
|
|
@@ -40,30 +40,31 @@ stable-harness console -w ./workspace --runtime daemon
|
|
|
40
40
|
| Mode | Behavior |
|
|
41
41
|
| --- | --- |
|
|
42
42
|
| `auto` | Use the matching workspace daemon when available; otherwise run in-process. |
|
|
43
|
-
| `daemon` | Require a matching
|
|
43
|
+
| `daemon` | Require a matching native runtime daemon and fail clearly if unavailable. |
|
|
44
44
|
| `local` | Always create an in-process runtime for this CLI process. |
|
|
45
45
|
|
|
46
46
|
Clients can also choose the wire protocol used for daemon/server requests:
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
stable-harness -w ./workspace --protocol
|
|
50
|
-
stable-harness -w ./workspace --protocol a2a --protocol-url http://127.0.0.1:
|
|
51
|
-
stable-harness -w ./workspace --protocol agui --protocol-url http://127.0.0.1:
|
|
52
|
-
stable-harness -w ./workspace --protocol acp --protocol-url http://127.0.0.1:
|
|
53
|
-
stable-harness console -w ./workspace --protocol a2a --protocol-url http://127.0.0.1:
|
|
49
|
+
stable-harness -w ./workspace --protocol runtime "Review the release evidence."
|
|
50
|
+
stable-harness -w ./workspace --protocol a2a --protocol-url http://127.0.0.1:56789/protocols "Review the release evidence."
|
|
51
|
+
stable-harness -w ./workspace --protocol agui --protocol-url http://127.0.0.1:56789/protocols "Review the release evidence."
|
|
52
|
+
stable-harness -w ./workspace --protocol acp --protocol-url http://127.0.0.1:56789/protocols "Review the release evidence."
|
|
53
|
+
stable-harness console -w ./workspace --protocol a2a --protocol-url http://127.0.0.1:56789/protocols
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
| Protocol | Behavior |
|
|
57
57
|
| --- | --- |
|
|
58
|
-
| `
|
|
58
|
+
| `runtime` | Native runtime HTTP + SSE with request/session/trace/operator features. |
|
|
59
59
|
| `a2a` | Sends request turns through the A2A facade. |
|
|
60
60
|
| `agui` | Sends request turns through the AG-UI HTTP+SSE facade. |
|
|
61
61
|
| `acp` | Sends request turns through the ACP HTTP JSON-RPC custom transport. |
|
|
62
62
|
|
|
63
|
-
`--protocol-url` overrides the configured
|
|
64
|
-
and ACP carry explicit
|
|
65
|
-
|
|
66
|
-
traces, approvals, memory administration,
|
|
63
|
+
`--protocol-url` overrides the configured protocol facade server. A2A, AG-UI,
|
|
64
|
+
and ACP carry explicit native runtime request extensions for CLI parity, but
|
|
65
|
+
the gateway also exposes the native runtime control
|
|
66
|
+
plane at `/runtime/v1/*` for traces, approvals, memory administration,
|
|
67
|
+
artifacts, workflows, and full session inspection.
|
|
67
68
|
|
|
68
69
|
The CLI prints the selected runtime path to stderr:
|
|
69
70
|
|
|
@@ -91,10 +92,10 @@ supports ordinary prompts plus slash commands:
|
|
|
91
92
|
| `/exit` | Leave console mode. |
|
|
92
93
|
|
|
93
94
|
When the console uses `--protocol a2a`, `--protocol agui`, or `--protocol acp`,
|
|
94
|
-
the selected protocol carries
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
the selected protocol carries prompt turns while slash-command operator features
|
|
96
|
+
use the same gateway's `/runtime/v1/*` route. This keeps `/sessions`,
|
|
97
|
+
`/requests`, `/memory`, `/clear`, `/debug`, and native event streaming available
|
|
98
|
+
when switching protocol.
|
|
98
99
|
|
|
99
100
|
## Embedded Runtime
|
|
100
101
|
|
|
@@ -146,31 +147,30 @@ is the native `StableHarnessRuntime` object returned by
|
|
|
146
147
|
Start the server:
|
|
147
148
|
|
|
148
149
|
```bash
|
|
149
|
-
stable-harness start -w ./workspace --host 127.0.0.1
|
|
150
|
+
stable-harness start -w ./workspace --host 127.0.0.1
|
|
150
151
|
```
|
|
151
152
|
|
|
152
|
-
`stable-harness start` exposes the first-party
|
|
153
|
-
the OpenAI-compatible facade, the LangGraph-compatible server, and
|
|
154
|
-
|
|
155
|
-
at:
|
|
153
|
+
`stable-harness start` exposes the first-party native runtime control plane,
|
|
154
|
+
the OpenAI-compatible facade, the LangGraph-compatible server, and ACP/A2A/AG-UI
|
|
155
|
+
facades. Point first-party clients at:
|
|
156
156
|
|
|
157
157
|
```text
|
|
158
|
-
http://127.0.0.1:
|
|
158
|
+
http://127.0.0.1:56789/runtime/v1
|
|
159
159
|
```
|
|
160
160
|
|
|
161
161
|
Point OpenAI-compatible clients at:
|
|
162
162
|
|
|
163
163
|
```text
|
|
164
|
-
http://127.0.0.1:
|
|
164
|
+
http://127.0.0.1:56789/protocols/openai/v1
|
|
165
165
|
```
|
|
166
166
|
|
|
167
167
|
Use this path when an existing product or evaluation harness already speaks
|
|
168
168
|
OpenAI-compatible chat completions. Stable Harness still owns workspace loading,
|
|
169
169
|
runtime events, tool-gateway policy, memory lifecycle, and adapter selection.
|
|
170
170
|
|
|
171
|
-
##
|
|
171
|
+
## native runtime HTTP + SSE
|
|
172
172
|
|
|
173
|
-
Use
|
|
173
|
+
Use native runtime HTTP + SSE when the caller needs Stable Harness concepts
|
|
174
174
|
directly: request IDs, sessions, traces, spans, approvals, cancellation,
|
|
175
175
|
artifacts, memory lifecycle, runtime inspection, and real-time control-plane
|
|
176
176
|
updates.
|
|
@@ -180,16 +180,16 @@ compatible `/v1`, LangGraph-compatible, ACP, A2A, and AG-UI servers are
|
|
|
180
180
|
ecosystem facades that map to this protocol instead of adding new runtime
|
|
181
181
|
semantics.
|
|
182
182
|
|
|
183
|
-
See [
|
|
183
|
+
See [native runtime HTTP + SSE](../protocols/http-runtime.md).
|
|
184
184
|
|
|
185
185
|
## Client Connection Choices
|
|
186
186
|
|
|
187
187
|
| Client kind | Recommended connection | When to use it |
|
|
188
188
|
| --- | --- | --- |
|
|
189
189
|
| CLI one-shot | `--runtime ...` plus `--protocol ...` | Use runtime mode for process selection and protocol mode for wire compatibility. |
|
|
190
|
-
| CLI console | Same runtime and protocol options as one-shot CLI | Use `
|
|
190
|
+
| CLI console | Same runtime and protocol options as one-shot CLI | Use `runtime` for full slash-command operator features; use A2A/AG-UI/ACP for protocol turn testing. |
|
|
191
191
|
| Embedded app | SDK / in-process runtime | Use when the application owns the process lifecycle. |
|
|
192
|
-
| First-party UI |
|
|
192
|
+
| First-party UI | native runtime HTTP + SSE | Use for sessions, request inspection, approvals, artifacts, memory, traces, and cross-client realtime events. |
|
|
193
193
|
| OpenAI clients | OpenAI-compatible `/v1` | Use for existing chat-completion clients and evaluation harnesses. |
|
|
194
194
|
| LangGraph Studio | LangGraph-compatible server | Use for LangGraph/LangSmith Studio workflows. |
|
|
195
195
|
| A2A clients | A2A facade | Use when the caller already speaks A2A task/message APIs. |
|
|
@@ -200,36 +200,37 @@ Session support is intentionally layered:
|
|
|
200
200
|
|
|
201
201
|
| Surface | Session level |
|
|
202
202
|
| --- | --- |
|
|
203
|
-
|
|
|
203
|
+
| native runtime HTTP + SSE | Full operator session API: request history, events, deletion, memory, approvals, and inspection. |
|
|
204
204
|
| SDK / in-process runtime | Full operator session API through `StableHarnessRuntime`. |
|
|
205
205
|
| OpenAI-compatible `/v1` | Chat continuity through session headers or metadata. |
|
|
206
|
-
| LangGraph-compatible | Maps LangGraph `thread_id` to
|
|
207
|
-
| A2A | Maps A2A `contextId` or `taskId` to
|
|
208
|
-
| AG-UI | Maps AG-UI `threadId` or `sessionId` to
|
|
209
|
-
| ACP HTTP JSON-RPC | Uses ACP `session/*` methods and maps `sessionId` to
|
|
206
|
+
| LangGraph-compatible | Maps LangGraph `thread_id` to native runtime `sessionId`. |
|
|
207
|
+
| A2A | Maps A2A `contextId` or `taskId` to native runtime `sessionId`. |
|
|
208
|
+
| AG-UI | Maps AG-UI `threadId` or `sessionId` to native runtime `sessionId`. |
|
|
209
|
+
| ACP HTTP JSON-RPC | Uses ACP `session/*` methods and maps `sessionId` to native runtime. |
|
|
210
210
|
|
|
211
211
|
Protocol facades preserve continuity for their ecosystems, but they do not
|
|
212
|
-
replace the
|
|
212
|
+
replace the native runtime operator API.
|
|
213
213
|
|
|
214
214
|
## ACP, A2A, and AG-UI Facades
|
|
215
215
|
|
|
216
|
-
Enable the
|
|
217
|
-
speaks one of these protocols:
|
|
216
|
+
Enable the protocol server that matches the external client:
|
|
218
217
|
|
|
219
218
|
```yaml
|
|
220
219
|
apiVersion: stable-harness.dev/v1
|
|
221
220
|
kind: Runtime
|
|
222
221
|
spec:
|
|
223
222
|
protocols:
|
|
224
|
-
|
|
223
|
+
gateway:
|
|
225
224
|
enabled: true
|
|
226
225
|
host: 127.0.0.1
|
|
227
|
-
port:
|
|
228
|
-
|
|
226
|
+
port: 56789
|
|
227
|
+
a2a:
|
|
228
|
+
enabled: true
|
|
229
229
|
```
|
|
230
230
|
|
|
231
|
-
|
|
232
|
-
documented HTTP JSON-RPC custom transport. Local ACP clients can also
|
|
231
|
+
Stable Harness exposes A2A over HTTP+JSON/SSE, AG-UI over HTTP+SSE, and ACP
|
|
232
|
+
over a documented HTTP JSON-RPC custom transport. Local ACP clients can also
|
|
233
|
+
launch:
|
|
233
234
|
|
|
234
235
|
```bash
|
|
235
236
|
stable-harness acp-stdio -w ./workspace
|
|
@@ -237,7 +238,7 @@ stable-harness acp-stdio -w ./workspace
|
|
|
237
238
|
|
|
238
239
|
The stdio entrypoint accepts one JSON-RPC message per line and reuses the same
|
|
239
240
|
ACP method handler as the HTTP endpoint. See
|
|
240
|
-
[ACP, A2A, and AG-UI Protocol Facades](../protocols/
|
|
241
|
+
[ACP, A2A, and AG-UI Protocol Facades](../protocols/protocol-facades.md).
|
|
241
242
|
|
|
242
243
|
## Backend Adapters
|
|
243
244
|
|
|
@@ -68,7 +68,8 @@ stable-harness -w ./workspace --agent orchestra --trace "Use the echo tool with
|
|
|
68
68
|
Start:
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
stable-harness start -w ./workspace --host 127.0.0.1
|
|
71
|
+
stable-harness start -w ./workspace --host 127.0.0.1
|
|
72
|
+
stable-harness serve -w ./workspace --host 127.0.0.1
|
|
72
73
|
```
|
|
73
74
|
|
|
74
75
|
Stop:
|
|
@@ -77,10 +78,57 @@ Stop:
|
|
|
77
78
|
stable-harness stop -w ./workspace
|
|
78
79
|
```
|
|
79
80
|
|
|
80
|
-
|
|
81
|
-
`
|
|
81
|
+
The default daemon port is the Stable Harness gateway on `56789`. Use
|
|
82
|
+
`STABLE_HARNESS_HOST`, `STABLE_HARNESS_PORT`, `STABLE_HARNESS_GATEWAY_PORT`,
|
|
83
|
+
and `STABLE_HARNESS_API_KEY` when the server is managed by an environment
|
|
82
84
|
wrapper.
|
|
83
85
|
|
|
86
|
+
## Inspect System Data
|
|
87
|
+
|
|
88
|
+
Daemon mode uses the workspace-local `runtime.dataRoot`, defaulting to
|
|
89
|
+
`.stable-harness`, for runtime-owned system data:
|
|
90
|
+
|
|
91
|
+
```text
|
|
92
|
+
.stable-harness/
|
|
93
|
+
manifest.json
|
|
94
|
+
control-plane/stable.sqlite
|
|
95
|
+
artifacts/
|
|
96
|
+
memory/langmem/langmem.sqlite
|
|
97
|
+
checkpoints/deepagents.sqlite
|
|
98
|
+
store/deepagents.sqlite
|
|
99
|
+
langgraph/
|
|
100
|
+
logs/
|
|
101
|
+
tmp/
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
`control-plane/stable.sqlite` is the daemon default for runs, events, sessions,
|
|
105
|
+
approvals, queue state, recovery intents, and artifact metadata. Artifact
|
|
106
|
+
content is stored under `artifacts/`. JSON stores remain available for tests,
|
|
107
|
+
debugging, import, and export, but they are not the daemon default because they
|
|
108
|
+
rewrite whole documents and do not provide indexed concurrent control-plane
|
|
109
|
+
queries.
|
|
110
|
+
|
|
111
|
+
Inspect the resolved paths:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
stable-harness data inspect -w ./workspace
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Run non-destructive diagnostics:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
stable-harness data doctor -w ./workspace
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Clean only generated temporary files:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
stable-harness data gc -w ./workspace
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
`langgraph/` is a generated compatibility projection for LangGraph and
|
|
130
|
+
LangSmith clients. It is not the Stable Harness source of truth.
|
|
131
|
+
|
|
84
132
|
## Read Runtime Evidence
|
|
85
133
|
|
|
86
134
|
Prefer structured runtime evidence over final prose:
|
|
@@ -23,8 +23,8 @@ stable-harness agent render orchestra -w ./examples/minimal-deepagents
|
|
|
23
23
|
Start the protocol facade:
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
stable-harness start -w ./examples/minimal-deepagents
|
|
27
|
-
curl -fsS http://127.0.0.1:
|
|
26
|
+
stable-harness start -w ./examples/minimal-deepagents
|
|
27
|
+
curl -fsS http://127.0.0.1:56789/protocols/openai/v1/models
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
Package the same workspace as a portable Docker runtime:
|
|
@@ -32,8 +32,8 @@ Package the same workspace as a portable Docker runtime:
|
|
|
32
32
|
```bash
|
|
33
33
|
stable-harness build --target docker -w ./examples/minimal-deepagents --output ./dist/workspace-docker
|
|
34
34
|
cd ./dist/workspace-docker
|
|
35
|
-
STABLE_HARNESS_PORT=
|
|
36
|
-
curl -fsS http://127.0.0.1:
|
|
35
|
+
STABLE_HARNESS_PORT=56789 docker compose up --build
|
|
36
|
+
curl -fsS http://127.0.0.1:56789/protocols/openai/v1/models
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
## What The Proof Shows
|
|
@@ -40,7 +40,7 @@ http://127.0.0.1:3000/v1
|
|
|
40
40
|
Use another host port if `3000` is already allocated:
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
STABLE_HARNESS_PORT=
|
|
43
|
+
STABLE_HARNESS_PORT=56789 docker compose up --build
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
## Persistence
|
|
@@ -58,12 +58,12 @@ application that defines it.
|
|
|
58
58
|
## Versioning
|
|
59
59
|
|
|
60
60
|
The Dockerfile pins the Stable Harness package version used by the build
|
|
61
|
-
command. It installs that package into an isolated `/stable-runtime` npm project
|
|
61
|
+
command. It installs that package into an isolated `/stable-harness-runtime` npm project
|
|
62
62
|
so runtime dependencies resolve like a normal application install:
|
|
63
63
|
|
|
64
64
|
```dockerfile
|
|
65
65
|
ARG STABLE_HARNESS_PACKAGE=stable-harness@<current package version>
|
|
66
|
-
WORKDIR /stable-runtime
|
|
66
|
+
WORKDIR /stable-harness-runtime
|
|
67
67
|
RUN npm init -y && npm install "${STABLE_HARNESS_PACKAGE}"
|
|
68
68
|
```
|
|
69
69
|
|
|
@@ -436,8 +436,17 @@ easynet:user:e2e-user:user
|
|
|
436
436
|
|
|
437
437
|
```text
|
|
438
438
|
config/memory/ # Memory YAML
|
|
439
|
+
.stable-harness/manifest.json # system data manifest
|
|
440
|
+
.stable-harness/control-plane/stable.sqlite
|
|
441
|
+
# runs/events/sessions/approvals/queue/artifact metadata
|
|
439
442
|
.stable-harness/memory/langmem/ # generated LangMem data
|
|
440
443
|
.stable-harness/memory/langmem/e2e/ # disposable E2E SQLite
|
|
444
|
+
.stable-harness/checkpoints/deepagents.sqlite
|
|
445
|
+
# DeepAgents checkpoint substrate
|
|
446
|
+
.stable-harness/store/deepagents.sqlite # DeepAgents/LangGraph Store substrate
|
|
447
|
+
.stable-harness/artifacts/ # artifact content files
|
|
448
|
+
.stable-harness/langgraph/ # generated LangGraph compatibility projection
|
|
449
|
+
.stable-harness/tmp/ # generated temporary files
|
|
441
450
|
```
|
|
442
451
|
|
|
443
452
|
EasyNet:
|
|
@@ -452,6 +461,17 @@ config/memory/ # Memory YAML
|
|
|
452
461
|
|
|
453
462
|
生成数据不提交到 git。
|
|
454
463
|
|
|
464
|
+
daemon 默认使用 SQLite 作为 control-plane 存储。JSON store 只保留为测试、
|
|
465
|
+
debug、import/export 形态,不作为长期运行 daemon 的默认持久化后端。
|
|
466
|
+
原因是 JSON 文件追加事件时需要重写整份文档,缺少并发事务和索引查询。
|
|
467
|
+
|
|
468
|
+
LangMem 的 vector 数据属于召回索引,不是唯一事实源。事实源仍然是
|
|
469
|
+
`memory_records`;`memory_vectors` 可以由事实记录和 embedding model 重建。
|
|
470
|
+
本地默认可以使用 SQLite 中的 embedding JSON + cosine search;当 memory
|
|
471
|
+
规模、tenant 数量、artifact/trace recall 规模上升时,可以接入 Qdrant、
|
|
472
|
+
LanceDB、pgvector、Chroma 或 Pinecone provider,但 Stable Harness runtime
|
|
473
|
+
不绑定某一个外部 vector database。
|
|
474
|
+
|
|
455
475
|
## SQLite Schema
|
|
456
476
|
|
|
457
477
|
LangMem SQLite service 当前维护两张表:
|
|
@@ -135,7 +135,7 @@ flowchart TD
|
|
|
135
135
|
- `deepagents.memory` 透传为 `createDeepAgent({ memory })`。
|
|
136
136
|
- `deepagents.skills` 透传为 `createDeepAgent({ skills })`。
|
|
137
137
|
- `deepagents.backend`、`store`、`checkpointer`、`middleware`、`permissions` 透传。
|
|
138
|
-
- 真实 `deepagents@1.9.1` + 远端 Ollama `
|
|
138
|
+
- 真实 `deepagents@1.9.1` + 远端 Ollama `qwen3.5:4b` 默认路径仍通过。
|
|
139
139
|
|
|
140
140
|
验证命令:
|
|
141
141
|
|
|
@@ -165,5 +165,5 @@ npm run test:botbotgo:full
|
|
|
165
165
|
- `npm test` 通过:18 个 contract tests,7 个 real integration tests。
|
|
166
166
|
- `test:botbotgo:full` 通过:8/8 matrix cases。
|
|
167
167
|
- full matrix 明确使用 EasyNet package-local `node_modules/.bin/botbotgo`。
|
|
168
|
-
- 真实模型路径为 EasyNet 配置的远端 Ollama `
|
|
168
|
+
- 真实模型路径为 EasyNet 配置的远端 Ollama `qwen3.5:4b`。
|
|
169
169
|
- 覆盖 owner:orchestra、software、qa、ops、release、research、secretary、k8s。
|
|
@@ -84,7 +84,7 @@ flowchart TD
|
|
|
84
84
|
- DeepAgents native memory config 仍透传给 upstream,不产生 prompt 注入。
|
|
85
85
|
- adapter 仍通过 upstream `createDeepAgent` 路径执行。
|
|
86
86
|
- stable runtime 仍不暴露 DeepAgents `/memories/`。
|
|
87
|
-
- 安装 `deepagents@1.9.1` 后,adapter 默认路径真实 import 上游包并使用远端 Ollama `
|
|
87
|
+
- 安装 `deepagents@1.9.1` 后,adapter 默认路径真实 import 上游包并使用远端 Ollama `qwen3.5:4b` 完成一次真实调用。
|
|
88
88
|
|
|
89
89
|
验证命令:
|
|
90
90
|
|
|
@@ -109,8 +109,8 @@ npm run test:botbotgo:full
|
|
|
109
109
|
- `npm test` 通过:18 个 contract tests,7 个 real integration tests。
|
|
110
110
|
- `test:botbotgo:full` 通过:8/8 matrix cases。
|
|
111
111
|
- full matrix 明确使用 EasyNet package-local `node_modules/.bin/botbotgo`。
|
|
112
|
-
- 真实模型路径为 EasyNet 配置的远端 Ollama `
|
|
113
|
-
- stable-harness 自身测试真实调用 `deepagents@1.9.1` + `@langchain/ollama` + `https://ollama-rtx-4070.easynet.world
|
|
112
|
+
- 真实模型路径为 EasyNet 配置的远端 Ollama `qwen3.5:4b`。
|
|
113
|
+
- stable-harness 自身测试真实调用 `deepagents@1.9.1` + `@langchain/ollama` + `https://ollama-rtx-4070.easynet.world/v1`。
|
|
114
114
|
- 覆盖 owner:orchestra、software、qa、ops、release、research、secretary、k8s。
|
|
115
115
|
- 覆盖真实工具/数据路径:finance stock report、source analysis、disk investigation、Git/GitHub Actions、Kubernetes readonly investigation、CLI routing。
|
|
116
116
|
|
|
@@ -153,7 +153,7 @@ npm run test:botbotgo:full
|
|
|
153
153
|
|
|
154
154
|
- EasyNet 使用 `file:../stable-harness` 依赖当前本地 runtime。
|
|
155
155
|
- botbotgo full matrix 明确使用 EasyNet package-local `node_modules/.bin/botbotgo`。
|
|
156
|
-
- 模型路径为远端 Ollama `
|
|
156
|
+
- 模型路径为远端 Ollama `qwen3.5:4b`,配置来自 EasyNet `config/models.yaml`。
|
|
157
157
|
- `npm test` 通过:18 个 contract tests,7 个 real integration tests。
|
|
158
158
|
- `test:botbotgo:full` 通过:8/8 matrix cases。
|
|
159
159
|
- 覆盖 owner:orchestra、software、qa、ops、release、research、secretary、k8s。
|
|
@@ -130,7 +130,7 @@ npm run test:botbotgo:full
|
|
|
130
130
|
- `npm test` 通过:18 个 contract tests,7 个 real integration tests。
|
|
131
131
|
- `test:botbotgo:full` 通过:8/8 matrix cases。
|
|
132
132
|
- full matrix 明确使用 EasyNet package-local `node_modules/.bin/botbotgo`。
|
|
133
|
-
- 真实模型路径为 EasyNet 配置的远端 Ollama `
|
|
133
|
+
- 真实模型路径为 EasyNet 配置的远端 Ollama `qwen3.5:4b`。
|
|
134
134
|
- 覆盖 owner:orchestra、software、qa、ops、release、research、secretary、k8s。
|
|
135
135
|
- 覆盖真实工具/数据路径:finance stock report、source analysis、disk investigation、Git/GitHub Actions、Kubernetes readonly investigation、CLI routing。
|
|
136
136
|
|
|
@@ -136,7 +136,7 @@ npm run test:botbotgo:full
|
|
|
136
136
|
- `npm test` 通过:18 个 contract tests,7 个 real integration tests。
|
|
137
137
|
- `test:botbotgo:full` 通过:8/8 matrix cases。
|
|
138
138
|
- full matrix 明确使用 EasyNet package-local `node_modules/.bin/botbotgo`。
|
|
139
|
-
- 真实模型路径为 EasyNet 配置的远端 Ollama `
|
|
139
|
+
- 真实模型路径为 EasyNet 配置的远端 Ollama `qwen3.5:4b`。
|
|
140
140
|
- 覆盖 owner:orchestra、software、qa、ops、release、research、secretary、k8s。
|
|
141
141
|
- 覆盖真实工具/数据路径:finance stock report、source analysis、disk investigation、Git/GitHub Actions、Kubernetes readonly investigation、CLI routing。
|
|
142
142
|
|
|
@@ -113,6 +113,6 @@ npm run test:botbotgo:full
|
|
|
113
113
|
- `npm test` 通过:18 个 contract tests,7 个 real integration tests。
|
|
114
114
|
- `test:botbotgo:full` 通过:8/8 matrix cases。
|
|
115
115
|
- full matrix 明确使用 EasyNet package-local `node_modules/.bin/botbotgo`。
|
|
116
|
-
- 真实模型路径为 EasyNet 配置的远端 Ollama `
|
|
116
|
+
- 真实模型路径为 EasyNet 配置的远端 Ollama `qwen3.5:4b`。
|
|
117
117
|
- 覆盖 owner:orchestra、software、qa、ops、release、research、secretary、k8s。
|
|
118
118
|
- 覆盖真实工具/数据路径:finance stock report、source analysis、disk investigation、Git/GitHub Actions、Kubernetes readonly investigation、CLI routing。
|
|
@@ -105,7 +105,7 @@ npm run test:botbotgo:full
|
|
|
105
105
|
- `npm test` 通过:18 个 contract tests,7 个 real integration tests。
|
|
106
106
|
- `test:botbotgo:full` 通过:8/8 matrix cases。
|
|
107
107
|
- full matrix 明确使用 EasyNet package-local `node_modules/.bin/botbotgo`。
|
|
108
|
-
- 真实模型路径为 EasyNet 配置的远端 Ollama `
|
|
108
|
+
- 真实模型路径为 EasyNet 配置的远端 Ollama `qwen3.5:4b`。
|
|
109
109
|
- 覆盖 owner:orchestra、software、qa、ops、release、research、secretary、k8s。
|
|
110
110
|
- 覆盖真实工具/数据路径:finance stock report、source analysis、disk investigation、Git/GitHub Actions、Kubernetes readonly investigation、CLI routing。
|
|
111
111
|
|