@qwen-code/arena-agent 0.0.8 → 0.0.9-dev.0
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/.env.example +41 -11
- package/README.md +128 -29
- package/dist/agent.d.ts +2 -0
- package/dist/agent.js +57 -36
- package/dist/agent.js.map +1 -1
- package/dist/cli.js +12 -4
- package/dist/cli.js.map +1 -1
- package/dist/compaction.js +2 -1
- package/dist/compaction.js.map +1 -1
- package/dist/config.d.ts +11 -0
- package/dist/config.js +73 -9
- package/dist/config.js.map +1 -1
- package/dist/conversation-metrics.d.ts +61 -0
- package/dist/conversation-metrics.js +433 -0
- package/dist/conversation-metrics.js.map +1 -0
- package/dist/document-reader.js +9 -0
- package/dist/document-reader.js.map +1 -1
- package/dist/history.d.ts +31 -2
- package/dist/history.js +53 -3
- package/dist/history.js.map +1 -1
- package/dist/metrics.d.ts +61 -0
- package/dist/metrics.js +578 -0
- package/dist/metrics.js.map +1 -0
- package/dist/mock.js +153 -0
- package/dist/mock.js.map +1 -1
- package/dist/protocol.d.ts +1 -1
- package/dist/protocol.js +9 -2
- package/dist/protocol.js.map +1 -1
- package/dist/provider.js +22 -8
- package/dist/provider.js.map +1 -1
- package/dist/runtime-assets.d.ts +3 -0
- package/dist/runtime-assets.js +16 -0
- package/dist/runtime-assets.js.map +1 -0
- package/dist/sdk.d.ts +28 -1
- package/dist/sdk.js +38 -0
- package/dist/sdk.js.map +1 -1
- package/dist/server.js +486 -36
- package/dist/server.js.map +1 -1
- package/dist/side-query.d.ts +31 -0
- package/dist/side-query.js +138 -0
- package/dist/side-query.js.map +1 -0
- package/dist/spec.js +4 -1
- package/dist/spec.js.map +1 -1
- package/dist/tools.js +122 -45
- package/dist/tools.js.map +1 -1
- package/dist/tui.js +4 -3
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +155 -0
- package/dist/web/app.d.ts +1 -0
- package/dist/web/app.js +333 -10
- package/dist/web/app.js.map +1 -1
- package/docs/SDK.md +563 -0
- package/package.json +5 -1
- package/web/index.html +25 -0
- package/web/styles.css +109 -3
package/.env.example
CHANGED
|
@@ -1,28 +1,45 @@
|
|
|
1
1
|
# Model name. Provider prefixes are stripped for direct connections and kept
|
|
2
2
|
# when LITELLM_PROXY_URL is configured.
|
|
3
|
-
|
|
4
|
-
#
|
|
5
|
-
#
|
|
3
|
+
OPENAI_MODEL=openai/qwen-latest-series-invite-beta-v92
|
|
4
|
+
# OPENAI_MODEL=anthropic/claude-sonnet-4-20250514
|
|
5
|
+
# OPENAI_MODEL=gemini/gemini-2.5-pro
|
|
6
6
|
|
|
7
|
+
OPENAI_BASE_URL=
|
|
7
8
|
OPENAI_API_KEY=
|
|
8
|
-
ANTHROPIC_API_KEY=
|
|
9
|
-
GEMINI_API_KEY=
|
|
10
9
|
|
|
11
|
-
#
|
|
10
|
+
# Native provider fallbacks used when OPENAI_BASE_URL/API_KEY are unset.
|
|
11
|
+
# ANTHROPIC_BASE_URL=https://api.anthropic.com/v1
|
|
12
|
+
# ANTHROPIC_API_KEY=
|
|
13
|
+
# GEMINI_API_KEY=
|
|
14
|
+
|
|
15
|
+
# LiteLLM Proxy (takes precedence over OPENAI_BASE_URL).
|
|
12
16
|
# LITELLM_PROXY_URL=http://127.0.0.1:4000/v1
|
|
13
17
|
# LITELLM_API_KEY=
|
|
14
18
|
|
|
15
19
|
# Direct OpenAI-compatible DashScope endpoint:
|
|
16
|
-
#
|
|
20
|
+
# OPENAI_MODEL=qwen3.7-max
|
|
17
21
|
# Default model used by the reproduction scripts:
|
|
18
22
|
# ARENA_API_MODEL=qwen-latest-series-invite-beta-v92
|
|
19
|
-
#
|
|
20
|
-
#
|
|
23
|
+
# OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
|
|
24
|
+
# OPENAI_API_KEY=
|
|
25
|
+
|
|
26
|
+
# Anthropic-compatible DashScope endpoint. The model prefix selects the native
|
|
27
|
+
# Messages protocol even though the shared connection variables use OPENAI_*.
|
|
28
|
+
# OPENAI_MODEL=anthropic/qwen-latest-series-invite-beta-v92
|
|
29
|
+
# OPENAI_BASE_URL=https://dashscope.aliyuncs.com/apps/anthropic/v1
|
|
30
|
+
# OPENAI_API_KEY=
|
|
21
31
|
|
|
22
32
|
# Trace-compatible model settings.
|
|
33
|
+
# ARENA_MAX_TURNS=500
|
|
23
34
|
# ARENA_MAX_TOKENS=131072
|
|
35
|
+
# ARENA_TEMPERATURE=1
|
|
36
|
+
# ARENA_REASONING_EFFORT=max
|
|
37
|
+
# ARENA_TOOL_CHOICE=auto
|
|
38
|
+
# JSON array of exact tool names hidden from the model and rejected if called.
|
|
39
|
+
# ARENA_DISALLOWED_TOOLS=["bash","write_file"]
|
|
24
40
|
# ARENA_THINKING_BUDGET=81920
|
|
25
41
|
# ARENA_ENABLE_THINKING=true
|
|
42
|
+
# ARENA_PRESERVE_THINKING=true
|
|
26
43
|
# Context is summarized before a model call when the estimated input reaches
|
|
27
44
|
# this fraction of the configured model context window.
|
|
28
45
|
# ARENA_CONTEXT_WINDOW=1000000
|
|
@@ -38,6 +55,19 @@ GEMINI_API_KEY=
|
|
|
38
55
|
# retried like a network fault (0 disables). Some gateways stall silently.
|
|
39
56
|
# ARENA_MODEL_STREAM_IDLE_TIMEOUT_MS=300000
|
|
40
57
|
|
|
58
|
+
# Dynamic session metrics. High-confidence Bash cases use deterministic rules;
|
|
59
|
+
# ambiguous Bash attribution/termination plus user praise, complaint, correction,
|
|
60
|
+
# repair-attempt, and repair-verdict classification use this tool-free structured
|
|
61
|
+
# side query. Disable it to retain those cases as unclassified/ambiguous.
|
|
62
|
+
# ARENA_METRICS_SIDE_QUERY_ENABLED=true
|
|
63
|
+
# ARENA_METRICS_SIDE_QUERY_MODEL=openai/qwen-latest-series-invite-beta-v92
|
|
64
|
+
# ARENA_METRICS_SIDE_QUERY_MAX_TOKENS=800
|
|
65
|
+
# ARENA_METRICS_SIDE_QUERY_MAX_ATTEMPTS=2
|
|
66
|
+
# Defaults to the main model settings. Models that reject disabled thinking,
|
|
67
|
+
# such as qwen3.8-max-preview, require this to stay enabled.
|
|
68
|
+
# ARENA_METRICS_SIDE_QUERY_ENABLE_THINKING=true
|
|
69
|
+
# ARENA_METRICS_SIDE_QUERY_THINKING_BUDGET=1024
|
|
70
|
+
|
|
41
71
|
# Daemon storage namespace. One deployed daemon should use one authenticated
|
|
42
72
|
# tenant identity; sessions underneath it have independent workspaces.
|
|
43
73
|
# ARENA_TENANT_ID=local
|
|
@@ -52,8 +82,8 @@ DASHSCOPE_API_KEY=
|
|
|
52
82
|
# DASHSCOPE_API_BASE=https://your-workspace.cn-beijing.maas.aliyuncs.com
|
|
53
83
|
# ARENA_WEB_SEARCH_MODEL=qwen-plus
|
|
54
84
|
# ARENA_IMAGE_SEARCH_MODEL=qwen3.7-plus
|
|
55
|
-
# ARENA_IMAGE_MODEL=
|
|
56
|
-
# ARENA_IMAGE_SIZE=
|
|
85
|
+
# ARENA_IMAGE_MODEL=qwen-image-2.0-pro
|
|
86
|
+
# ARENA_IMAGE_SIZE=2048*2048
|
|
57
87
|
# ARENA_SPEECH_MODEL=qwen-audio-3.0-tts-flash
|
|
58
88
|
# DASHSCOPE_SPEECH_VOICE=longanhuan_v3.6
|
|
59
89
|
|
package/README.md
CHANGED
|
@@ -28,16 +28,35 @@ npm run typecheck
|
|
|
28
28
|
npm test
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
+
### 单文件二进制
|
|
32
|
+
|
|
33
|
+
如果目标机器无法安装 Node.js,可以在构建机上把 Arena 打包为包含 Node.js
|
|
34
|
+
运行时和静态资源的单文件可执行程序:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm ci
|
|
38
|
+
npm run build:binary
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
产物为 `build/sea/arena`(Windows 为 `build/sea/arena.exe`),交付该文件即可,
|
|
42
|
+
目标机器不需要安装 Node.js。二进制必须针对目标操作系统和 CPU 架构分别构建;
|
|
43
|
+
Linux 业务机如果 glibc 较旧,应在相同或更老的系统环境中构建并实机验证。
|
|
44
|
+
|
|
45
|
+
详细的安装、平台兼容性和外部工具要求见
|
|
46
|
+
[Arena 单文件二进制](docs/BINARY_DISTRIBUTION.md)。
|
|
47
|
+
|
|
31
48
|
## 模型
|
|
32
49
|
|
|
33
|
-
TypeScript
|
|
34
|
-
|
|
50
|
+
TypeScript 运行时根据模型前缀选择协议:`openai/` 使用 OpenAI Chat
|
|
51
|
+
Completions,`anthropic/` 使用原生 Messages,`gemini/` 使用 Google 的
|
|
52
|
+
OpenAI-compatible 接口。LiteLLM 官方提供 Python SDK 或独立 Proxy,因此
|
|
53
|
+
纯 TypeScript 版本使用
|
|
35
54
|
[LiteLLM Proxy](https://docs.litellm.ai/) 作为多 provider 网关:
|
|
36
55
|
|
|
37
56
|
```bash
|
|
38
57
|
export LITELLM_PROXY_URL=http://127.0.0.1:4000/v1
|
|
39
58
|
export LITELLM_API_KEY=sk-litellm
|
|
40
|
-
export
|
|
59
|
+
export OPENAI_MODEL=anthropic/claude-sonnet-4-20250514
|
|
41
60
|
```
|
|
42
61
|
|
|
43
62
|
设置 `LITELLM_PROXY_URL` 时,模型名会原样发送给 LiteLLM。没有 Proxy 时,
|
|
@@ -46,23 +65,32 @@ export ARENA_MODEL=anthropic/claude-sonnet-4-20250514
|
|
|
46
65
|
|
|
47
66
|
```bash
|
|
48
67
|
# OpenAI
|
|
49
|
-
export
|
|
68
|
+
export OPENAI_MODEL=openai/gpt-4.1-mini
|
|
69
|
+
export OPENAI_BASE_URL=https://api.openai.com/v1
|
|
50
70
|
export OPENAI_API_KEY=...
|
|
51
71
|
|
|
52
72
|
# Anthropic
|
|
53
|
-
export
|
|
73
|
+
export OPENAI_MODEL=anthropic/claude-sonnet-4-20250514
|
|
74
|
+
export ANTHROPIC_BASE_URL=https://api.anthropic.com/v1
|
|
54
75
|
export ANTHROPIC_API_KEY=...
|
|
55
76
|
|
|
56
77
|
# Gemini
|
|
57
|
-
export
|
|
78
|
+
export OPENAI_MODEL=gemini/gemini-2.5-pro
|
|
58
79
|
export GEMINI_API_KEY=...
|
|
59
80
|
|
|
60
81
|
# Anthropic 兼容网关(如 DashScope)
|
|
61
|
-
export
|
|
62
|
-
export
|
|
63
|
-
export
|
|
82
|
+
export OPENAI_MODEL=anthropic/qwen-latest-series-invite-beta-v92
|
|
83
|
+
export OPENAI_BASE_URL=https://dashscope.aliyuncs.com/apps/anthropic/v1
|
|
84
|
+
export OPENAI_API_KEY=...
|
|
64
85
|
```
|
|
65
86
|
|
|
87
|
+
`OPENAI_BASE_URL` / `OPENAI_API_KEY` 是统一的模型连接入口,变量名不决定
|
|
88
|
+
wire protocol。`OPENAI_MODEL=anthropic/...` 仍会向 `<base>/messages` 发送
|
|
89
|
+
Anthropic Messages payload 并使用 `x-api-key`;`openai/...` 则会向
|
|
90
|
+
`<base>/chat/completions` 发送 OpenAI payload 并使用 Bearer token。未设置
|
|
91
|
+
统一入口时,Anthropic 可回退到 `ANTHROPIC_BASE_URL` /
|
|
92
|
+
`ANTHROPIC_API_KEY`。
|
|
93
|
+
|
|
66
94
|
Anthropic 直连默认只用 `x-api-key` 鉴权(同时携带 Authorization 会让部分
|
|
67
95
|
兼容网关挂起);若网关要求 Bearer token(如 DashScope 的
|
|
68
96
|
claude-code-proxy),收到 401 后会自动切换鉴权方式并记住。流式连接保持
|
|
@@ -82,34 +110,56 @@ Anthropic 要求 tool-use 续跑时回传签名 thinking block,重放历史时
|
|
|
82
110
|
OpenAI-compatible 服务重放同一份历史时,`reasoning_details` 与 `usage`
|
|
83
111
|
一样在 wire 边界剥离。usage 会映射为 OpenAI 风格字段(`prompt_tokens`
|
|
84
112
|
含 cache 创建/读取部分),同时保留 `input_tokens`、
|
|
85
|
-
`cache_read_input_tokens` 等原生字段。`
|
|
113
|
+
`cache_read_input_tokens` 等原生字段。`OPENAI_BASE_URL` 对 anthropic
|
|
86
114
|
前缀同样生效,可指向兼容 Messages 协议的网关。
|
|
87
115
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
116
|
+
模型服务可通过 `OPENAI_BASE_URL`、`OPENAI_API_KEY` 统一配置。CLI、TUI
|
|
117
|
+
和服务端会读取工作区根目录的 `.env`,且不会覆盖进程中已经存在的环境变量。
|
|
118
|
+
当前 DashScope 配置示例:
|
|
91
119
|
|
|
92
120
|
```dotenv
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
121
|
+
OPENAI_MODEL=qwen3.7-max
|
|
122
|
+
OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
|
|
123
|
+
OPENAI_API_KEY=sk-...
|
|
124
|
+
ARENA_MAX_TURNS=500
|
|
125
|
+
ARENA_MAX_TOKENS=131072
|
|
126
|
+
ARENA_TEMPERATURE=1
|
|
127
|
+
ARENA_TOOL_CHOICE=auto
|
|
96
128
|
ARENA_ENABLE_THINKING=true
|
|
97
129
|
ARENA_THINKING_BUDGET=81920
|
|
98
|
-
|
|
130
|
+
ARENA_PRESERVE_THINKING=true
|
|
99
131
|
ARENA_CONTEXT_WINDOW=1000000
|
|
100
132
|
ARENA_CONTEXT_COMPACTION_RATIO=0.8
|
|
101
133
|
ARENA_COMPACTION_SUMMARY_MAX_TOKENS=8192
|
|
102
134
|
```
|
|
103
135
|
|
|
136
|
+
可选的 `ARENA_REASONING_EFFORT` 支持 `low`、`medium`、`high`、`xhigh`
|
|
137
|
+
和 `max` 五档;配置后会作为 OpenAI-compatible 请求的
|
|
138
|
+
`reasoning_effort` 原样发送,不做 provider 映射或降级。
|
|
139
|
+
`ARENA_DISALLOWED_TOOLS` 是 JSON 字符串数组,工具名精确匹配:
|
|
140
|
+
|
|
141
|
+
```dotenv
|
|
142
|
+
ARENA_REASONING_EFFORT=max
|
|
143
|
+
ARENA_DISALLOWED_TOOLS=["bash","write_file"]
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
被禁用的工具不会发送给模型;即使模型仍构造了该工具调用,执行层也会
|
|
147
|
+
在产生副作用前拒绝。
|
|
148
|
+
`ARENA_EXTRA_BODY` 会在配置加载时解析为 JSON 对象,既作为最后一层请求
|
|
149
|
+
参数覆盖,也会原样写入 `history.json` 的
|
|
150
|
+
`metadata.parameters.extra_body`。
|
|
151
|
+
|
|
104
152
|
`DASHSCOPE_API_KEY` 单独供搜索、图片生成和语音工具使用,不会作为模型连接的
|
|
105
153
|
密钥。
|
|
106
154
|
|
|
107
155
|
Harness 会在每次模型调用前估算消息、reasoning、工具 schema 和图片占用;达到
|
|
108
156
|
`ARENA_CONTEXT_WINDOW × ARENA_CONTEXT_COMPACTION_RATIO`(默认 80%)时,调用
|
|
109
|
-
|
|
110
|
-
一致的 leading `<arena-system-message
|
|
111
|
-
|
|
112
|
-
|
|
157
|
+
当前模型把已完成的旧回合生成结构化续作摘要。只有发给模型的内存上下文会把
|
|
158
|
+
旧前缀替换为与 Arena trace 一致的 leading `<arena-system-message>`;持久化的
|
|
159
|
+
`history.json.messages` 保留原始消息,不会因压缩删除或替换前缀。当前用户回合及
|
|
160
|
+
其后的 tool-call / result 链在模型上下文中保持原样。摘要重点保留目标、硬约束、
|
|
161
|
+
发现、已完成/未完成事项、下一步和相关文件路径;摘要调用默认关闭 thinking,
|
|
162
|
+
输出上限由
|
|
113
163
|
`ARENA_COMPACTION_SUMMARY_MAX_TOKENS` 控制(默认 8192)。
|
|
114
164
|
|
|
115
165
|
`ARENA_CONTEXT_WINDOW` 应设置为所用模型的真实上下文窗口;默认 `1000000` 是
|
|
@@ -137,9 +187,11 @@ assistant 消息的 `usage` 字段(`history.json` 与事件流中均可见)
|
|
|
137
187
|
`model.retry` 事件(TUI 会显示「reconnecting after a network error」提示)。
|
|
138
188
|
用户主动取消(abort)不会被当作可重试的网络故障。
|
|
139
189
|
|
|
140
|
-
Agent turn
|
|
141
|
-
|
|
142
|
-
|
|
190
|
+
Agent turn 默认没有模型 step 数上限;设置 `ARENA_MAX_TURNS` 后,达到指定上限
|
|
191
|
+
会返回 error,已经完成的 assistant/tool step 仍会保留。整轮没有内建墙钟时长
|
|
192
|
+
上限,会持续到模型正常结束、请求用户输入、发生不可恢复错误、达到显式配置的
|
|
193
|
+
step 上限,或用户主动取消。工具自身仍可定义单次调用的超时。每个完整的
|
|
194
|
+
assistant/tool step 都会原子保存到 `history.json`;
|
|
143
195
|
进程被外部超时终止时,已完成步骤仍可恢复,最多丢失当时正在执行的一步。
|
|
144
196
|
|
|
145
197
|
## Headless
|
|
@@ -160,11 +212,19 @@ session 状态统一存放在 `~/.arena`(可用 `ARENA_HOME` 覆盖),不
|
|
|
160
212
|
workspace,因此不会污染任务工作区或被 diff 工作区的 verifier 观察到。
|
|
161
213
|
|
|
162
214
|
输出事件及 JSON 结果中的 `session_id` 就是路径里的 `<sessionId>`。
|
|
163
|
-
`history.json`
|
|
164
|
-
|
|
215
|
+
`history.json` 的 `messages` 是只追加的原始轨迹;上下文压缩只影响发送给模型的
|
|
216
|
+
临时副本。`metadata` 记录 session、模型以及本次实际生效的 `max_turns`、
|
|
217
|
+
`context_window`、生成和压缩参数。daemon 完成一次 turn 后还会写入
|
|
218
|
+
`version: 3` 和 `metrics`,后者是截至该 turn 的 praise vs. complaint、
|
|
219
|
+
steerability、Bash recovery 与 tool hallucination 增量快照。即使结果为
|
|
220
|
+
`needs_input` 或 `error` 也会保存;旧的 `{"messages":[...]}` 历史仍可直接加载。
|
|
221
|
+
需要跨命令续写同一份显式历史时,可另外传入
|
|
165
222
|
`--history-file path`;该文件会被加载并在执行结束后更新,同时本次自动
|
|
166
223
|
session 目录中的历史快照仍会保留。
|
|
167
224
|
|
|
225
|
+
指标的判定口径、动态更新过程、side query 配置以及 API/SSE 字段见
|
|
226
|
+
[`docs/SESSION_METRICS.md`](docs/SESSION_METRICS.md)。
|
|
227
|
+
|
|
168
228
|
需要让多次 `-p` 作为同一个 session 连续对话时,重复传入相同的
|
|
169
229
|
`--session-id`:
|
|
170
230
|
|
|
@@ -322,11 +382,17 @@ await events.ready;
|
|
|
322
382
|
await session.send({ input: "分析 workspace" });
|
|
323
383
|
|
|
324
384
|
await session.cancel(); // 只取消服务端当前 turn,不销毁 session
|
|
385
|
+
const undone = await session.undo(); // 恢复 turn 提交前的历史和 workspace
|
|
386
|
+
console.log(undone.input); // 前端可把原输入放回编辑框
|
|
325
387
|
events.close(); // 只关闭本地 SSE 连接
|
|
326
388
|
|
|
327
389
|
const resumed = arena.sessions.resume(savedCredentials);
|
|
328
390
|
const history = await resumed.getHistory();
|
|
329
|
-
|
|
391
|
+
if (history.retryable) {
|
|
392
|
+
await resumed.retry({ messageId: history.retryMessageId || undefined });
|
|
393
|
+
} else {
|
|
394
|
+
await resumed.run({ input: "继续" });
|
|
395
|
+
}
|
|
330
396
|
```
|
|
331
397
|
|
|
332
398
|
也可以用 `arena.run()` 创建临时 session 并一次性收集结果。SDK 导出完整
|
|
@@ -354,6 +420,7 @@ workspace 和 artifacts 分别保存在(根目录 `~/.arena` 可用 `ARENA_HOM
|
|
|
354
420
|
~/.arena/tenants/<tenantId>/sessions/<sessionId>/
|
|
355
421
|
session.json
|
|
356
422
|
history.json
|
|
423
|
+
model-retry.json # 仅在最后一次模型调用失败且可手动重试时存在
|
|
357
424
|
workspace/
|
|
358
425
|
artifacts/
|
|
359
426
|
```
|
|
@@ -372,9 +439,11 @@ workspace,可设置 `ARENA_SESSION_WORKSPACE_MODE=empty`。
|
|
|
372
439
|
| `POST /ai-proxy/realtime/v1/sessions/:id/in/append` | 写入用户消息 |
|
|
373
440
|
| `GET /ai-proxy/realtime/v1/sessions/:id/out` | SSE 输出实时事件 |
|
|
374
441
|
| `GET /api/chat/sessions/:id/messages` | 恢复完整消息历史 |
|
|
442
|
+
| `POST /api/chat/sessions/:id/retry` | 从最后一个失败模型节点继续,不追加 user 消息 |
|
|
375
443
|
| `POST /api/chat/sessions/:id/uploads` | 上传当前消息的附件 |
|
|
376
444
|
| `POST /api/chat/sessions/:id/input-response` | 回答 `ask_user` |
|
|
377
445
|
| `POST /api/chat/sessions/:id/cancel` | 取消当前 turn |
|
|
446
|
+
| `POST /api/chat/sessions/:id/undo` | 回滚最近完成的 turn,并返回原输入 |
|
|
378
447
|
| `GET /api/chat/sessions/:id/workspace/:path` | 鉴权获取该 session 的 workspace 文件 |
|
|
379
448
|
|
|
380
449
|
创建会话时,客户端需要提供用于初始 system message 的本地日期与 IANA 时区;
|
|
@@ -407,6 +476,33 @@ part 放入实时消息。每个文件最大 20 MB,每条消息最多 10 个
|
|
|
407
476
|
SSE 支持 `Last-Event-ID` 断线续传。`ask_user` 会暂停同一个 Agent Promise;
|
|
408
477
|
用户提交答案后生成标准 `role=tool` 消息并继续循环。
|
|
409
478
|
|
|
479
|
+
模型自动重试耗尽时,daemon 会把 `history.json` 保持在该模型调用之前的最后
|
|
480
|
+
一个完整 checkpoint,并将对应的历史哈希和失败元数据原子记录到
|
|
481
|
+
`model-retry.json`;消息内容仍以 `history.json` 为唯一真相源。手动重试只重新
|
|
482
|
+
执行失败的模型节点:此前完成的 assistant/tool 消息全部保留,不会追加重复
|
|
483
|
+
user 消息,也不会重新运行已经完成的工具。若手动重试又完成了新工具后再次
|
|
484
|
+
失败,可重试节点会前移到最新完整 checkpoint;成功或提交新的用户消息后辅助
|
|
485
|
+
retry 文件会删除。
|
|
486
|
+
|
|
487
|
+
本地手动验证不需要真的让供应商返回错误。下面两个 mock 都会先产出 partial
|
|
488
|
+
内容,再连续失败 6 次(初次请求 + 默认 5 次自动重试);将退避设为 0 可以立刻
|
|
489
|
+
看到 WebUI 的 Retry 按钮:
|
|
490
|
+
|
|
491
|
+
```bash
|
|
492
|
+
# 初始模型节点失败:失败后 history 只有 system/user;点一次 Retry 后成功
|
|
493
|
+
ARENA_MODEL=mock/manual-retry-initial \
|
|
494
|
+
ARENA_MODEL_RETRY_BASE_MS=0 ARENA_MODEL_RETRY_MAX_MS=0 npm run dev
|
|
495
|
+
|
|
496
|
+
# 中间节点失败:tool1 → 失败 → Retry → tool2 → 失败 → Retry → 成功
|
|
497
|
+
ARENA_MODEL=mock/manual-retry \
|
|
498
|
+
ARENA_MODEL_RETRY_BASE_MS=0 ARENA_MODEL_RETRY_MAX_MS=0 npm run dev
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
真实 HTTP 状态中,408/409/429 和 5xx 会自动重试;例如 503 在默认配置下会
|
|
502
|
+
请求 6 次,全部失败后才进入手动重试状态。402/403/404 不属于瞬时错误,不做
|
|
503
|
+
自动重试,但其终止的模型调用仍可由用户手动重试。自动化测试使用本地假上游
|
|
504
|
+
覆盖了 503 耗尽,不依赖真实 API 或限流。
|
|
505
|
+
|
|
410
506
|
取消正在执行的 turn 时,daemon 会保存已经完成的 assistant/tool 消息以及已
|
|
411
507
|
流式生成的 partial assistant 内容。下一条用户消息会在最前面注入标准
|
|
412
508
|
`arena-system-message` interruption notice,且仅注入一次;如果取消发生在
|
|
@@ -457,7 +553,10 @@ Draft-07 schema。repo mode 的动态提示词模板保存在 `src/prompts.ts`
|
|
|
457
553
|
`read_file` 可直接提取本地 PDF(前 30 页)、DOCX、PPTX、XLSX 的文字和
|
|
458
554
|
表格内容;旧版 DOC、PPT、XLS 会先通过 LibreOffice 转换。默认从 `PATH`
|
|
459
555
|
查找 `soffice`,也可用 `ARENA_SOFFICE_PATH` 指定其路径。文档解压和输出
|
|
460
|
-
|
|
556
|
+
均设有大小上限;普通文本文件超过 256 KiB 时返回可恢复的工具错误,提示
|
|
557
|
+
模型改用 `sed`、`head`、`tail`、`grep` 或 `rg` 分段读取/搜索,不会把完整
|
|
558
|
+
内容继续发送给模型。所有工具结果另有 1,000,000 字符的最终兜底。当前不做
|
|
559
|
+
OCR,扫描版 PDF 只会返回无可提取文字的提示。
|
|
461
560
|
|
|
462
561
|
可用 `ARENA_WEB_SEARCH_MODEL`、`ARENA_IMAGE_SEARCH_MODEL`、
|
|
463
562
|
`ARENA_IMAGE_MODEL`、`ARENA_SPEECH_MODEL` 覆盖默认模型。图片生成结果和
|
|
@@ -473,7 +572,7 @@ Draft-07 schema。repo mode 的动态提示词模板保存在 `src/prompts.ts`
|
|
|
473
572
|
内置 mock 模型只用于无密钥集成测试:
|
|
474
573
|
|
|
475
574
|
```bash
|
|
476
|
-
|
|
575
|
+
OPENAI_MODEL=mock/landing-page arena -p \
|
|
477
576
|
'create a hello.html landing page' --output stream-json
|
|
478
577
|
npm test
|
|
479
578
|
```
|
package/dist/agent.d.ts
CHANGED
|
@@ -11,10 +11,12 @@ interface AgentOptions {
|
|
|
11
11
|
clientContext?: ClientContext;
|
|
12
12
|
workspaceContext?: WorkspaceContext;
|
|
13
13
|
onCheckpoint?: (messages: readonly Message[]) => Promise<void>;
|
|
14
|
+
onModelFailure?: (messages: readonly Message[], error: unknown) => void;
|
|
14
15
|
}
|
|
15
16
|
interface AgentRunOptions {
|
|
16
17
|
interrupted?: boolean;
|
|
17
18
|
userMessage?: UserTurnMessage;
|
|
19
|
+
resumeFromHistory?: boolean;
|
|
18
20
|
}
|
|
19
21
|
export declare function resolveRepoContext(workspace: string, history?: Message[]): RepoContext | undefined;
|
|
20
22
|
export declare class Agent {
|
package/dist/agent.js
CHANGED
|
@@ -129,6 +129,9 @@ export class Agent {
|
|
|
129
129
|
options.sessionId || crypto.randomUUID().replaceAll("-", "");
|
|
130
130
|
}
|
|
131
131
|
async run(prompt, history, runOptions = {}) {
|
|
132
|
+
if (runOptions.resumeFromHistory && !history?.length) {
|
|
133
|
+
throw new Error("resumeFromHistory requires a non-empty history");
|
|
134
|
+
}
|
|
132
135
|
const baseUserMessage = runOptions.userMessage ||
|
|
133
136
|
{ role: "user", content: prompt };
|
|
134
137
|
const userMessage = runOptions.interrupted
|
|
@@ -136,62 +139,85 @@ export class Agent {
|
|
|
136
139
|
: structuredClone(baseUserMessage);
|
|
137
140
|
const clientContext = this.options.clientContext || defaultClientContext();
|
|
138
141
|
const repoContext = resolveRepoContext(this.config.workspace, history);
|
|
139
|
-
const
|
|
142
|
+
const trajectory = history?.length
|
|
140
143
|
? completeInterruptedToolCalls(structuredClone(history))
|
|
141
144
|
: initialMessages(prompt, clientContext, this.options.workspaceContext, repoContext);
|
|
142
145
|
if (history?.length) {
|
|
143
146
|
const expected = repoContext
|
|
144
147
|
? repoSystemMessage(clientContext, repoContext)
|
|
145
148
|
: undefined;
|
|
146
|
-
if (!isCanonicalSystemMessage(
|
|
149
|
+
if (!isCanonicalSystemMessage(trajectory[0], expected || this.options.workspaceContext)) {
|
|
147
150
|
if (!repoContext &&
|
|
148
151
|
this.options.workspaceContext &&
|
|
149
|
-
isCanonicalSystemMessage(
|
|
150
|
-
|
|
152
|
+
isCanonicalSystemMessage(trajectory[0])) {
|
|
153
|
+
trajectory[0] = initialMessages("", this.options.clientContext, this.options.workspaceContext)[0];
|
|
151
154
|
}
|
|
152
155
|
else {
|
|
153
156
|
throw new Error("history does not match the current workspace runtime context");
|
|
154
157
|
}
|
|
155
158
|
}
|
|
156
|
-
|
|
159
|
+
if (runOptions.resumeFromHistory) {
|
|
160
|
+
const lastRole = trajectory.at(-1)?.role;
|
|
161
|
+
if (lastRole !== "user" && lastRole !== "tool") {
|
|
162
|
+
throw new Error("resumeFromHistory history must end with a user or tool message");
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
trajectory.push(userMessage);
|
|
167
|
+
}
|
|
157
168
|
}
|
|
158
169
|
else {
|
|
159
|
-
|
|
170
|
+
trajectory[1] = userMessage;
|
|
160
171
|
}
|
|
172
|
+
// Persisted history is the lossless source of truth for replay and
|
|
173
|
+
// training. Compaction may rewrite only this private model-context copy;
|
|
174
|
+
// every real user, assistant, and tool message is appended to both.
|
|
175
|
+
const messages = structuredClone(trajectory);
|
|
176
|
+
const recordMessage = async (message) => {
|
|
177
|
+
messages.push(message);
|
|
178
|
+
const recorded = structuredClone(message);
|
|
179
|
+
trajectory.push(recorded);
|
|
180
|
+
this.sink.message(this.sessionId, recorded, trajectory);
|
|
181
|
+
await this.checkpoint(trajectory);
|
|
182
|
+
};
|
|
161
183
|
await this.maybeCompact(messages);
|
|
162
|
-
this.sink.start(this.sessionId,
|
|
184
|
+
this.sink.start(this.sessionId, trajectory);
|
|
163
185
|
try {
|
|
164
|
-
await this.checkpoint(
|
|
186
|
+
await this.checkpoint(trajectory);
|
|
187
|
+
const maxTurns = this.config.maxTurns
|
|
188
|
+
? Math.max(1, Math.floor(this.config.maxTurns))
|
|
189
|
+
: undefined;
|
|
165
190
|
for (let step = 1;; step += 1) {
|
|
191
|
+
if (maxTurns !== undefined && step > maxTurns) {
|
|
192
|
+
throw new Error(`agent reached max_turns limit (${maxTurns})`);
|
|
193
|
+
}
|
|
166
194
|
if (this.options.signal?.aborted) {
|
|
167
195
|
throw this.options.signal.reason || new Error("operation cancelled");
|
|
168
196
|
}
|
|
169
|
-
if (step > 1
|
|
170
|
-
await this.
|
|
171
|
-
|
|
172
|
-
this.sink.modelStart(this.sessionId, step);
|
|
197
|
+
if (step > 1)
|
|
198
|
+
await this.maybeCompact(messages);
|
|
199
|
+
const offeredTools = this.tools.availableTools();
|
|
200
|
+
this.sink.modelStart(this.sessionId, step, offeredTools.map((tool) => tool.function.name));
|
|
173
201
|
let assistant;
|
|
174
202
|
try {
|
|
175
|
-
assistant = await this.assistantTurn(messages);
|
|
203
|
+
assistant = await this.assistantTurn(messages, offeredTools);
|
|
176
204
|
}
|
|
177
205
|
catch (error) {
|
|
178
206
|
if (error instanceof PartialAssistantTurnError) {
|
|
207
|
+
this.options.onModelFailure?.(trajectory, error.cause);
|
|
179
208
|
if (error.assistant) {
|
|
180
|
-
|
|
181
|
-
this.sink.message(this.sessionId, error.assistant, messages);
|
|
182
|
-
await this.checkpoint(messages);
|
|
209
|
+
await recordMessage(error.assistant);
|
|
183
210
|
}
|
|
184
211
|
throw error.cause;
|
|
185
212
|
}
|
|
213
|
+
this.options.onModelFailure?.(trajectory, error);
|
|
186
214
|
throw error;
|
|
187
215
|
}
|
|
188
216
|
const finishReason = assistant.tool_calls?.length ? "tool_calls" : "stop";
|
|
189
217
|
this.sink.modelComplete(this.sessionId, step, finishReason, assistant.usage);
|
|
190
|
-
|
|
191
|
-
this.sink.message(this.sessionId, assistant, messages);
|
|
192
|
-
await this.checkpoint(messages);
|
|
218
|
+
await recordMessage(assistant);
|
|
193
219
|
if (!assistant.tool_calls?.length) {
|
|
194
|
-
return this.sink.result(this.sessionId, "success",
|
|
220
|
+
return this.sink.result(this.sessionId, "success", trajectory);
|
|
195
221
|
}
|
|
196
222
|
const completedToolCallIds = [];
|
|
197
223
|
for (const call of assistant.tool_calls) {
|
|
@@ -204,24 +230,20 @@ export class Agent {
|
|
|
204
230
|
if (this.options.signal?.aborted && !skippedAskUser) {
|
|
205
231
|
throw this.options.signal.reason || new Error("operation cancelled");
|
|
206
232
|
}
|
|
207
|
-
|
|
233
|
+
await recordMessage(toolMessage);
|
|
208
234
|
completedToolCallIds.push(toolCallId);
|
|
209
|
-
this.sink.message(this.sessionId, toolMessage, messages);
|
|
210
|
-
await this.checkpoint(messages);
|
|
211
235
|
this.sink.toolComplete(this.sessionId, toolCallId, toolName);
|
|
212
236
|
if (toolName === "ask_user") {
|
|
213
237
|
if (toolResult.status === "needs_input") {
|
|
214
238
|
const visualMessage = this.tools.takeVisualMessage(completedToolCallIds);
|
|
215
239
|
if (visualMessage) {
|
|
216
|
-
|
|
217
|
-
this.sink.message(this.sessionId, visualMessage, messages);
|
|
218
|
-
await this.checkpoint(messages);
|
|
240
|
+
await recordMessage(visualMessage);
|
|
219
241
|
}
|
|
220
242
|
const questions = Array.isArray(toolResult.questions)
|
|
221
243
|
? toolResult.questions
|
|
222
244
|
: [];
|
|
223
245
|
this.sink.inputRequired(this.sessionId, toolCallId, questions);
|
|
224
|
-
return this.sink.result(this.sessionId, "needs_input",
|
|
246
|
+
return this.sink.result(this.sessionId, "needs_input", trajectory);
|
|
225
247
|
}
|
|
226
248
|
}
|
|
227
249
|
if (this.options.signal?.aborted) {
|
|
@@ -230,15 +252,13 @@ export class Agent {
|
|
|
230
252
|
}
|
|
231
253
|
const visualMessage = this.tools.takeVisualMessage(completedToolCallIds);
|
|
232
254
|
if (visualMessage) {
|
|
233
|
-
|
|
234
|
-
this.sink.message(this.sessionId, visualMessage, messages);
|
|
235
|
-
await this.checkpoint(messages);
|
|
255
|
+
await recordMessage(visualMessage);
|
|
236
256
|
}
|
|
237
257
|
}
|
|
238
258
|
}
|
|
239
259
|
catch (error) {
|
|
240
260
|
const message = error instanceof Error ? error.message : String(error);
|
|
241
|
-
return this.sink.result(this.sessionId, "error",
|
|
261
|
+
return this.sink.result(this.sessionId, "error", trajectory, message);
|
|
242
262
|
}
|
|
243
263
|
}
|
|
244
264
|
async checkpoint(messages) {
|
|
@@ -252,9 +272,9 @@ export class Agent {
|
|
|
252
272
|
summaryMaxTokens: this.config.compactionSummaryMaxTokens,
|
|
253
273
|
}, this.options.signal);
|
|
254
274
|
if (result.compacted) {
|
|
255
|
-
// The summary
|
|
256
|
-
//
|
|
257
|
-
//
|
|
275
|
+
// The summary exists only in the private model context, not as a real
|
|
276
|
+
// trajectory message, so the event stream is the only place its usage
|
|
277
|
+
// can be accounted for.
|
|
258
278
|
this.sink.compaction(this.sessionId, result.usage);
|
|
259
279
|
}
|
|
260
280
|
return result.compacted;
|
|
@@ -266,7 +286,7 @@ export class Agent {
|
|
|
266
286
|
return false;
|
|
267
287
|
}
|
|
268
288
|
}
|
|
269
|
-
async assistantTurn(messages) {
|
|
289
|
+
async assistantTurn(messages, offeredTools) {
|
|
270
290
|
// A mid-stream network fault loses only the tokens produced so far, not the
|
|
271
291
|
// conversation: the request is idempotent, so the whole turn is re-issued
|
|
272
292
|
// from scratch. Accumulators live inside the loop and reset each attempt, so
|
|
@@ -282,10 +302,11 @@ export class Agent {
|
|
|
282
302
|
const stream = this.client.stream({
|
|
283
303
|
model: this.config.model,
|
|
284
304
|
messages: structuredClone(messages),
|
|
285
|
-
tools:
|
|
305
|
+
tools: offeredTools,
|
|
286
306
|
toolChoice: this.config.toolChoice,
|
|
287
307
|
temperature: this.config.temperature,
|
|
288
308
|
maxTokens: this.config.maxTokens,
|
|
309
|
+
reasoningEffort: this.config.reasoningEffort,
|
|
289
310
|
enableThinking: this.config.enableThinking,
|
|
290
311
|
thinkingBudget: this.config.thinkingBudget,
|
|
291
312
|
preserveThinking: this.config.preserveThinking,
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|