@qwen-code/arena-agent 0.0.9-dev.0 → 0.0.9-dev.11
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 +30 -0
- package/README.md +126 -25
- package/dist/agent.d.ts +4 -2
- package/dist/agent.js +116 -15
- package/dist/agent.js.map +1 -1
- package/dist/anthropic.d.ts +1 -1
- package/dist/anthropic.js +68 -7
- package/dist/anthropic.js.map +1 -1
- package/dist/ask-user.d.ts +20 -0
- package/dist/ask-user.js +388 -0
- package/dist/ask-user.js.map +1 -0
- package/dist/canonical-data.d.ts +1 -0
- package/dist/canonical-data.js +1 -0
- package/dist/canonical-data.js.map +1 -1
- package/dist/cli.js +26 -9
- package/dist/cli.js.map +1 -1
- package/dist/code-cli.d.ts +2 -0
- package/dist/code-cli.js +12 -0
- package/dist/code-cli.js.map +1 -0
- package/dist/code-tools.d.ts +73 -0
- package/dist/code-tools.js +2106 -0
- package/dist/code-tools.js.map +1 -0
- package/dist/config.d.ts +12 -1
- package/dist/config.js +66 -3
- package/dist/config.js.map +1 -1
- package/dist/fetch-page.d.ts +2 -0
- package/dist/fetch-page.js +50 -21
- package/dist/fetch-page.js.map +1 -1
- package/dist/history.d.ts +3 -0
- package/dist/history.js +4 -0
- package/dist/history.js.map +1 -1
- package/dist/mode.d.ts +6 -0
- package/dist/mode.js +33 -0
- package/dist/mode.js.map +1 -0
- package/dist/model-capabilities.d.ts +20 -0
- package/dist/model-capabilities.js +98 -0
- package/dist/model-capabilities.js.map +1 -0
- package/dist/model-diagnostics.d.ts +32 -0
- package/dist/model-diagnostics.js +365 -0
- package/dist/model-diagnostics.js.map +1 -0
- package/dist/provider.d.ts +16 -0
- package/dist/provider.js +328 -37
- package/dist/provider.js.map +1 -1
- package/dist/sdk.d.ts +26 -1
- package/dist/sdk.js +1 -0
- package/dist/sdk.js.map +1 -1
- package/dist/server.d.ts +2 -0
- package/dist/server.js +11 -2
- package/dist/server.js.map +1 -1
- package/dist/spec.d.ts +11 -8
- package/dist/spec.js +101 -12
- package/dist/spec.js.map +1 -1
- package/dist/tools.d.ts +11 -28
- package/dist/tools.js +60 -11
- package/dist/tools.js.map +1 -1
- package/dist/tui.d.ts +2 -0
- package/dist/tui.js +8 -2
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +6 -1
- package/dist/workspace.d.ts +12 -0
- package/dist/workspace.js +165 -0
- package/dist/workspace.js.map +1 -0
- package/docs/BINARY_DISTRIBUTION.md +225 -0
- package/docs/MODES_AND_RELEASES.md +119 -0
- package/modes/code-arena/full-stack/system-prompt.txt +77 -0
- package/modes/code-arena/full-stack/template/.env +1 -0
- package/modes/code-arena/full-stack/template/drizzle.config.json +7 -0
- package/modes/code-arena/full-stack/template/eslint.config.mjs +9 -0
- package/modes/code-arena/full-stack/template/next.config.ts +5 -0
- package/modes/code-arena/full-stack/template/package.json +32 -0
- package/modes/code-arena/full-stack/template/postcss.config.mjs +7 -0
- package/modes/code-arena/full-stack/template/src/app/api/health/route.ts +13 -0
- package/modes/code-arena/full-stack/template/src/app/globals.css +1 -0
- package/modes/code-arena/full-stack/template/src/app/layout.tsx +16 -0
- package/modes/code-arena/full-stack/template/src/app/page.tsx +22 -0
- package/modes/code-arena/full-stack/template/src/db/index.ts +24 -0
- package/modes/code-arena/full-stack/template/src/db/schema.ts +3 -0
- package/modes/code-arena/full-stack/template/tsconfig.json +24 -0
- package/modes/code-arena/full-stack/tools.json +446 -0
- package/modes/code-arena/html/system-prompt.txt +36 -0
- package/modes/code-arena/html/tools.json +284 -0
- package/modes/code-arena/model.json +10 -0
- package/modes/code-arena/react/system-prompt.txt +33 -0
- package/modes/code-arena/react/template/index.html +12 -0
- package/modes/code-arena/react/template/package.json +28 -0
- package/modes/code-arena/react/template/src/App.tsx +28 -0
- package/modes/code-arena/react/template/src/index.css +1 -0
- package/modes/code-arena/react/template/src/main.tsx +10 -0
- package/modes/code-arena/react/template/src/utils/cn.ts +6 -0
- package/modes/code-arena/react/template/tsconfig.json +25 -0
- package/modes/code-arena/react/template/vite.config.ts +18 -0
- package/modes/code-arena/react/tools.json +410 -0
- package/package.json +15 -3
- package/dist/web/app.d.ts +0 -1
package/.env.example
CHANGED
|
@@ -7,6 +7,13 @@ OPENAI_MODEL=openai/qwen-latest-series-invite-beta-v92
|
|
|
7
7
|
OPENAI_BASE_URL=
|
|
8
8
|
OPENAI_API_KEY=
|
|
9
9
|
|
|
10
|
+
# Unified runtime mode. Canonical values are shown; full_stack/fullstack and
|
|
11
|
+
# single_html/single-html remain accepted compatibility aliases.
|
|
12
|
+
ARENA_HARNESS_MODE=arena
|
|
13
|
+
# ARENA_HARNESS_MODE=react
|
|
14
|
+
# ARENA_HARNESS_MODE=html
|
|
15
|
+
# ARENA_HARNESS_MODE=full-stack
|
|
16
|
+
|
|
10
17
|
# Native provider fallbacks used when OPENAI_BASE_URL/API_KEY are unset.
|
|
11
18
|
# ANTHROPIC_BASE_URL=https://api.anthropic.com/v1
|
|
12
19
|
# ANTHROPIC_API_KEY=
|
|
@@ -31,8 +38,11 @@ OPENAI_API_KEY=
|
|
|
31
38
|
|
|
32
39
|
# Trace-compatible model settings.
|
|
33
40
|
# ARENA_MAX_TURNS=500
|
|
41
|
+
# Code Arena compatibility alias used only when ARENA_MAX_TURNS is unset:
|
|
42
|
+
# CODE_HARNESS_MAX_STEPS=50
|
|
34
43
|
# ARENA_MAX_TOKENS=131072
|
|
35
44
|
# ARENA_TEMPERATURE=1
|
|
45
|
+
# OpenAI-compatible: reasoning_effort; native Anthropic: output_config.effort.
|
|
36
46
|
# ARENA_REASONING_EFFORT=max
|
|
37
47
|
# ARENA_TOOL_CHOICE=auto
|
|
38
48
|
# JSON array of exact tool names hidden from the model and rejected if called.
|
|
@@ -55,6 +65,13 @@ OPENAI_API_KEY=
|
|
|
55
65
|
# retried like a network fault (0 disables). Some gateways stall silently.
|
|
56
66
|
# ARENA_MODEL_STREAM_IDLE_TIMEOUT_MS=300000
|
|
57
67
|
|
|
68
|
+
# Optional headless ask_user delegation. When enabled, `arena -p` sends the
|
|
69
|
+
# current questions plus a serialized ATIF trajectory to this JSON endpoint.
|
|
70
|
+
# No authorization token/header is added by the harness.
|
|
71
|
+
# ARENA_ASK_USER_MODE=remote
|
|
72
|
+
# ARENA_ASK_USER_HANDLER_URL=http://127.0.0.1:8080/v1/ask-user
|
|
73
|
+
# ARENA_ASK_USER_TIMEOUT_MS=60000
|
|
74
|
+
|
|
58
75
|
# Dynamic session metrics. High-confidence Bash cases use deterministic rules;
|
|
59
76
|
# ambiguous Bash attribution/termination plus user praise, complaint, correction,
|
|
60
77
|
# repair-attempt, and repair-verdict classification use this tool-free structured
|
|
@@ -87,5 +104,18 @@ DASHSCOPE_API_KEY=
|
|
|
87
104
|
# ARENA_SPEECH_MODEL=qwen-audio-3.0-tts-flash
|
|
88
105
|
# DASHSCOPE_SPEECH_VOICE=longanhuan_v3.6
|
|
89
106
|
|
|
107
|
+
# Code Arena stock photo/video search used by fetch_media.
|
|
108
|
+
# PEXELS_API_KEY=
|
|
109
|
+
# CODE_HARNESS_MEDIA_CACHE_DIR=/tmp/code-harness-media-cache
|
|
110
|
+
# CODE_HARNESS_MEDIA_CACHE_TTL_MS=86400000
|
|
111
|
+
|
|
112
|
+
# Full Stack build_and_start runtime. It builds and health-checks the Next.js
|
|
113
|
+
# preview and can start PostgreSQL 16 in Docker for an unavailable local URL.
|
|
114
|
+
# CODE_HARNESS_PREVIEW_PORT=3000
|
|
115
|
+
# CODE_HARNESS_PREVIEW_URL=http://127.0.0.1:3000
|
|
116
|
+
# CODE_HARNESS_FULLSTACK_BUILD_TIMEOUT_MS=300000
|
|
117
|
+
# CODE_HARNESS_BASH_TIMEOUT_SECONDS=300
|
|
118
|
+
# CODE_HARNESS_POSTGRES_IMAGE=postgres:16-alpine
|
|
119
|
+
|
|
90
120
|
# Optional LibreOffice executable for read_file support of legacy .doc/.ppt/.xls.
|
|
91
121
|
# ARENA_SOFFICE_PATH=/usr/local/bin/soffice
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ harness。运行时只依赖 Node.js,不再依赖 Python:
|
|
|
9
9
|
- Agent loop:流式 assistant → tool call → tool result → assistant。
|
|
10
10
|
- 11 个工具逐字使用 `tools.json` 的 Draft-07 schema。
|
|
11
11
|
|
|
12
|
-
## 安装
|
|
12
|
+
## 源码与 SDK 安装
|
|
13
13
|
|
|
14
14
|
要求 Node.js 20.16+:
|
|
15
15
|
|
|
@@ -30,21 +30,59 @@ npm test
|
|
|
30
30
|
|
|
31
31
|
### 单文件二进制
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
业务机器已有 Node.js 18、但无法升级到 Node.js 20+ 时,安装平台选择入口包:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm install -g @qwen-code/arena-cli
|
|
37
|
+
arena --version
|
|
38
|
+
code-harness --version
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
这个入口脚本本身兼容 Node.js 18,只负责选择并启动随 npm 安装的平台二进制;
|
|
42
|
+
Arena 业务代码使用二进制内嵌的 Node.js,不会在业务机的 Node.js 18 中运行。
|
|
43
|
+
|
|
44
|
+
如果目标机器完全没有 Node.js,则从发布产物下载对应平台的 `arena` / `arena.exe`
|
|
45
|
+
直接运行。构建机可以执行:
|
|
35
46
|
|
|
36
47
|
```bash
|
|
37
48
|
npm ci
|
|
38
|
-
npm run
|
|
49
|
+
npm run package:binary
|
|
39
50
|
```
|
|
40
51
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
Linux
|
|
52
|
+
命令会生成 `build/sea/arena`(Windows 为 `arena.exe`),并打出当前平台包和
|
|
53
|
+
`@qwen-code/arena-cli` 的 npm tarball。二进制必须针对目标操作系统、CPU 架构和
|
|
54
|
+
Linux libc 分别构建;不能把 macOS 上生成的文件直接用于 Linux。
|
|
44
55
|
|
|
45
|
-
|
|
56
|
+
平台包矩阵、发包顺序、旧系统兼容性和外部工具要求见
|
|
46
57
|
[Arena 单文件二进制](docs/BINARY_DISTRIBUTION.md)。
|
|
47
58
|
|
|
59
|
+
## 四种模式
|
|
60
|
+
|
|
61
|
+
| 模式 | 选择方式 | 初始工作区 |
|
|
62
|
+
| --- | --- | --- |
|
|
63
|
+
| Arena | `--mode arena`(`arena` 默认) | 保持现有工作区 |
|
|
64
|
+
| React | `--mode react`(`code-harness` 默认) | Vite + React scaffold |
|
|
65
|
+
| HTML | `--mode html` | 空工作区,生成单个 `index.html` |
|
|
66
|
+
| Full Stack | `--mode full-stack` | Next.js + PostgreSQL scaffold |
|
|
67
|
+
|
|
68
|
+
四种模式共用同一套配置、provider、agent loop、上下文压缩、历史记录、服务端、
|
|
69
|
+
TUI 和 SDK,只替换模式对应的 system prompt、tools 与可选 scaffold:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
arena -p '分析这个目录' --mode arena
|
|
73
|
+
arena -p '做一个产品页' --mode react
|
|
74
|
+
arena -p '做一个单文件网页' --mode html
|
|
75
|
+
arena -p '做一个带数据库的应用' --mode full-stack
|
|
76
|
+
|
|
77
|
+
# 兼容原 Code Harness 命令,默认等价于 --mode react
|
|
78
|
+
code-harness -p '做一个产品页'
|
|
79
|
+
code-harness -p '做一个单文件网页' --mode html
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
也可以设置 `ARENA_HARNESS_MODE=arena|react|html|full-stack`。迁移期继续接受
|
|
83
|
+
`CODE_HARNESS_MODE`、`ARENA_MODE` 及旧模式别名。详细目录和发包决策见
|
|
84
|
+
[`docs/MODES_AND_RELEASES.md`](docs/MODES_AND_RELEASES.md)。
|
|
85
|
+
|
|
48
86
|
## 模型
|
|
49
87
|
|
|
50
88
|
TypeScript 运行时根据模型前缀选择协议:`openai/` 使用 OpenAI Chat
|
|
@@ -98,11 +136,13 @@ claude-code-proxy),收到 401 后会自动切换鉴权方式并记住。流
|
|
|
98
136
|
`ARENA_MODEL_STREAM_IDLE_TIMEOUT_MS`(默认 300000,设 0 关闭)中止并按
|
|
99
137
|
网络故障重试。
|
|
100
138
|
|
|
101
|
-
Anthropic 直连在原生协议上完整支持
|
|
102
|
-
`ARENA_ENABLE_THINKING` / `ARENA_THINKING_BUDGET` 映射为
|
|
103
|
-
`thinking.
|
|
104
|
-
|
|
105
|
-
|
|
139
|
+
Anthropic 直连在原生协议上完整支持 thinking。旧版 Claude 和非 Claude
|
|
140
|
+
兼容网关把 `ARENA_ENABLE_THINKING` / `ARENA_THINKING_BUDGET` 映射为
|
|
141
|
+
`thinking.type=enabled` / `thinking.budget_tokens`;Claude Opus/Sonnet 4.6+
|
|
142
|
+
以及 Claude 5、Fable、Mythos 使用 `thinking.type=adaptive`,不再发送固定
|
|
143
|
+
budget。Anthropic 要求启用 thinking 时不调整 temperature,此时不发送该
|
|
144
|
+
参数。带签名的 thinking/redacted_thinking block 会原样保存在对应 assistant
|
|
145
|
+
消息的 `reasoning_details` 字段——
|
|
106
146
|
Anthropic 要求 tool-use 续跑时回传签名 thinking block,重放历史时会按
|
|
107
147
|
原顺序还原;无签名的 thinking block(部分网关返回 `signature: ""`)
|
|
108
148
|
不参与重放,因为协议不需要它们,而且某些网关收到会挂起。
|
|
@@ -134,8 +174,9 @@ ARENA_COMPACTION_SUMMARY_MAX_TOKENS=8192
|
|
|
134
174
|
```
|
|
135
175
|
|
|
136
176
|
可选的 `ARENA_REASONING_EFFORT` 支持 `low`、`medium`、`high`、`xhigh`
|
|
137
|
-
和 `max`
|
|
138
|
-
|
|
177
|
+
和 `max` 五档;OpenAI-compatible 请求使用 `reasoning_effort`,原生
|
|
178
|
+
Anthropic Messages 请求映射为 `output_config.effort`。不会按模型静默
|
|
179
|
+
降档;目标模型或兼容网关不支持所选档位时,由服务端返回明确错误。
|
|
139
180
|
`ARENA_DISALLOWED_TOOLS` 是 JSON 字符串数组,工具名精确匹配:
|
|
140
181
|
|
|
141
182
|
```dotenv
|
|
@@ -206,11 +247,52 @@ daemon 相同的目录层级和 JSON 格式:
|
|
|
206
247
|
|
|
207
248
|
```text
|
|
208
249
|
~/.arena/tenants/<tenantId>/sessions/<sessionId>/history.json
|
|
250
|
+
~/.arena/tenants/<tenantId>/sessions/<sessionId>/llm-calls.jsonl
|
|
209
251
|
```
|
|
210
252
|
|
|
211
253
|
session 状态统一存放在 `~/.arena`(可用 `ARENA_HOME` 覆盖),不写入
|
|
212
254
|
workspace,因此不会污染任务工作区或被 diff 工作区的 verifier 观察到。
|
|
213
255
|
|
|
256
|
+
`llm-calls.jsonl` 默认以 `raw` 模式记录每次主模型调用:实际发送的完整 JSON
|
|
257
|
+
request body(system/user/assistant/tool 消息、工具定义及图片/视频 Base64 均不
|
|
258
|
+
截断、不脱敏)、聚合后的完整模型回复,以及错误响应的原始 body。流式 SSE chunk
|
|
259
|
+
不会逐条写入;聚合后的 `response` 事件直接包含完整 `reasoning_content`、`content`、
|
|
260
|
+
tool calls 和 `finish_reason`。`raw` 模式的 `request` 事件只写一份
|
|
261
|
+
`raw_request_body`,不会再附带一份包含相同 prompt 的诊断摘要。
|
|
262
|
+
同时记录协议、endpoint、HTTP 重试、响应状态、provider request ID、耗时、finish
|
|
263
|
+
reason 和 usage。HTTP 认证 header 不属于模型 payload,不会写入日志。设置
|
|
264
|
+
`ARENA_MODEL_CALL_LOG_MODE=summary` 可改为仅记录脱敏摘要,设置
|
|
265
|
+
`ARENA_MODEL_CALL_LOGGING=false` 可完全关闭。Harbor 收集 session 目录时会随
|
|
266
|
+
`history.json` 一起带出该文件,因此失败 rollout 也能直接查看原始 LLM 调用。
|
|
267
|
+
|
|
268
|
+
如果未知模型或能力配置不准确,导致模型端点仍在解析阶段以明确的媒体/content-part
|
|
269
|
+
拒绝签名返回错误,Arena 会保留该次 400 和原始请求,然后把私有模型上下文中的对应
|
|
270
|
+
媒体替换为“不支持该媒体输入”说明,再调用同一个模型完成回复;不会静默切换模型,
|
|
271
|
+
也不会改写 `history.json` 中的原始媒体轨迹。普通的 `messages input is invalid`
|
|
272
|
+
不会触发这条降级路径。
|
|
273
|
+
|
|
274
|
+
Arena 还维护一份有顺序的模型输入模态表,在第一次 HTTP 调用前处理已知模型;版本级
|
|
275
|
+
规则优先于系列规则,避免同一别名下能力不同造成误判。当前覆盖:
|
|
276
|
+
|
|
277
|
+
- Qwen:`qwen3.8-max[-preview]`、`qwen3.7-max-2026-06-08` 支持图片;
|
|
278
|
+
Qwen 3.5/3.6/3.7 Plus、Qwen 3.5/3.6 Flash、Qwen-VL/QVQ 支持图片和视频;
|
|
279
|
+
Qwen-Omni 另支持音频;`qwen3.7-max` 当前别名按文本模型处理。
|
|
280
|
+
- Claude:Claude 3 及后续系列支持图片;Claude 1/2/Instant 按文本模型处理。
|
|
281
|
+
- GPT/OpenAI:GPT-5、GPT-4o、GPT-4.1、GPT-4.5、GPT-4 Turbo/Vision 及已知
|
|
282
|
+
o-series 视觉模型支持图片;`gpt-audio*` 支持音频,Realtime 系列支持图片和
|
|
283
|
+
音频;旧 GPT-3.5/GPT-4、
|
|
284
|
+
`o1-mini`、`o3-mini` 按文本模型处理。
|
|
285
|
+
- DeepSeek:官方托管的 Chat/Reasoner/V3/V4 系列按文本模型处理;单独部署的
|
|
286
|
+
DeepSeek-VL/OCR 系列支持图片。
|
|
287
|
+
- Kimi:Kimi K2 与 Kimi coding 系列支持图片和视频;旧
|
|
288
|
+
`moonshot-v1-*-vision*` 支持图片。
|
|
289
|
+
- Gemini:常规 Gemini 1.5/2.x/3.x 模型支持图片、视频和音频;TTS、图片生成、
|
|
290
|
+
Live/Realtime 等不同 API 合同的变体不做静态推断。
|
|
291
|
+
|
|
292
|
+
未知模型默认尝试发送,具体路由能力仍以端点返回为准。可以分别用
|
|
293
|
+
`ARENA_MODEL_SUPPORTS_IMAGE_INPUT`、`ARENA_MODEL_SUPPORTS_VIDEO_INPUT`、
|
|
294
|
+
`ARENA_MODEL_SUPPORTS_AUDIO_INPUT` 显式覆盖;覆盖值优先于内置表。
|
|
295
|
+
|
|
214
296
|
输出事件及 JSON 结果中的 `session_id` 就是路径里的 `<sessionId>`。
|
|
215
297
|
`history.json` 的 `messages` 是只追加的原始轨迹;上下文压缩只影响发送给模型的
|
|
216
298
|
临时副本。`metadata` 记录 session、模型以及本次实际生效的 `max_turns`、
|
|
@@ -265,8 +347,8 @@ data-URI。
|
|
|
265
347
|
`stream-json` 每行一个 JSON 对象。`start`、`message`、`result` 事件中的
|
|
266
348
|
`messages` 与输入样例保持相同契约:
|
|
267
349
|
|
|
268
|
-
- system/user:`role` + `content
|
|
269
|
-
message
|
|
350
|
+
- system/user:`role` + `content`;支持图片输入的模型在读取图片后会持久化
|
|
351
|
+
一条 multimodal user message
|
|
270
352
|
- assistant:`role` + `content` + `reasoning_content`,工具轮含 `tool_calls`;
|
|
271
353
|
服务端上报用量时含 `usage`
|
|
272
354
|
- tool:`role` + `tool_call_id` + JSON 字符串 `content`
|
|
@@ -275,15 +357,34 @@ data-URI。
|
|
|
275
357
|
`model.start`、`model.complete`、`model.retry`、`tool.start`、`tool.complete`
|
|
276
358
|
标记阶段。最后的 `result` 带完整可重放消息。
|
|
277
359
|
|
|
278
|
-
`ask_user`
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
360
|
+
`ask_user` 只有在注入 handler 时才会提供给模型。TUI 和 WebUI 使用真人交互
|
|
361
|
+
handler;headless(`-p`)默认仍不开放该工具,但可配置远程 User Agent handler:
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
export ARENA_ASK_USER_MODE=remote
|
|
365
|
+
export ARENA_ASK_USER_HANDLER_URL=http://127.0.0.1:8080/v1/ask-user
|
|
366
|
+
export ARENA_ASK_USER_TIMEOUT_MS=60000
|
|
367
|
+
arena -p 'build a home page'
|
|
368
|
+
```
|
|
284
369
|
|
|
285
|
-
|
|
286
|
-
|
|
370
|
+
远程请求使用 `application/json`,body 只含 `sessionId`、`toolCallId`、
|
|
371
|
+
`questions` 和字符串形式的完整 ATIF `trajectory`;当前不发送 token 或鉴权
|
|
372
|
+
header。合法的 `answers`/`skipped` 会直接写成 tool result。服务端 `error`、
|
|
373
|
+
HTTP 非 2xx、超时、非法 JSON 或不符合问题约束的答案会转换成普通 error tool
|
|
374
|
+
result:只把错误信息放在 tool result 的 `message` 字段提供给模型,由模型决定如何
|
|
375
|
+
采用合理默认值继续执行,不会因此终止整个任务。无会话的 `/query` 仍不注入
|
|
376
|
+
handler。
|
|
377
|
+
|
|
378
|
+
未配置远程模式时行为不变:headless 不开放 `ask_user`,因此不会卡在
|
|
379
|
+
`needs_input` 上阻塞训练 worker。若续写历史或模型幻觉仍调用它,工具返回普通
|
|
380
|
+
error 结果,提示模型使用合理默认值继续。
|
|
381
|
+
|
|
382
|
+
对于支持图片输入的模型,图片 `read_file` 的 tool result 使用占位文本;真实图片
|
|
383
|
+
作为紧随工具结果组的 multimodal user message 注入并写入历史,因此后续重放不依赖
|
|
384
|
+
原图片仍然存在。已知不支持图片的模型则直接在 `read_file` tool result 中返回
|
|
385
|
+
`Unsupported image file` 文本,不生成带图 user message,也不向模型服务发送图片。
|
|
386
|
+
用户直接附带的已知不支持模态也会在首次请求前仅从私有模型上下文移除并换成说明;
|
|
387
|
+
原始附件部件仍保留在 `history.json`。
|
|
287
388
|
|
|
288
389
|
## TUI
|
|
289
390
|
|
package/dist/agent.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ArenaConfig } from "./config.js";
|
|
2
2
|
import { EventSink } from "./protocol.js";
|
|
3
|
+
import { type HarnessMode } from "./mode.js";
|
|
3
4
|
import { ToolExecutor } from "./tools.js";
|
|
4
5
|
import type { AgentResult, AskUserHandler, ClientContext, Message, ModelClient, RepoContext, UserTurnMessage, WorkspaceContext } from "./types.js";
|
|
5
6
|
interface AgentOptions {
|
|
@@ -18,13 +19,14 @@ interface AgentRunOptions {
|
|
|
18
19
|
userMessage?: UserTurnMessage;
|
|
19
20
|
resumeFromHistory?: boolean;
|
|
20
21
|
}
|
|
21
|
-
export declare function resolveRepoContext(workspace: string, history?: Message[]): RepoContext | undefined;
|
|
22
|
+
export declare function resolveRepoContext(workspace: string, history?: Message[], mode?: HarnessMode): RepoContext | undefined;
|
|
22
23
|
export declare class Agent {
|
|
23
24
|
private readonly config;
|
|
24
25
|
private readonly sink;
|
|
25
26
|
private readonly options;
|
|
26
27
|
private readonly client;
|
|
27
28
|
private readonly tools;
|
|
29
|
+
private readonly workspaceContext?;
|
|
28
30
|
readonly sessionId: string;
|
|
29
31
|
constructor(config: ArenaConfig, sink: EventSink, options?: AgentOptions);
|
|
30
32
|
run(prompt: string, history?: Message[], runOptions?: AgentRunOptions): Promise<AgentResult>;
|
package/dist/agent.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
2
|
import { setTimeout as delay } from "node:timers/promises";
|
|
3
|
+
import { supportsModelInput, } from "./config.js";
|
|
3
4
|
import { compactMessagesIfNeeded } from "./compaction.js";
|
|
5
|
+
import { modelCallLogPath } from "./history.js";
|
|
4
6
|
import { MockModelClient } from "./mock.js";
|
|
5
|
-
import {
|
|
7
|
+
import { contentPartMediaTypes, JsonlModelCallDiagnostics, } from "./model-diagnostics.js";
|
|
8
|
+
import { HttpModelClient, ModelCapabilityError } from "./provider.js";
|
|
6
9
|
import { detectRepoContext } from "./repo.js";
|
|
10
|
+
import { isCodeArenaMode } from "./mode.js";
|
|
7
11
|
import { defaultClientContext, initialMessages, interruptedUserMessage, isCanonicalSystemMessage, repoContextFromSystemMessage, repoSystemMessage, } from "./spec.js";
|
|
8
12
|
import { ToolExecutor } from "./tools.js";
|
|
13
|
+
import { initializeWorkspace } from "./workspace.js";
|
|
9
14
|
function parseToolResult(content) {
|
|
10
15
|
try {
|
|
11
16
|
return JSON.parse(content);
|
|
@@ -50,6 +55,58 @@ function isRetryableStreamError(error) {
|
|
|
50
55
|
const code = errorCode(error);
|
|
51
56
|
return code !== undefined && retryableStreamCodes.has(code);
|
|
52
57
|
}
|
|
58
|
+
function unsupportedMediaNotice(mediaTypes) {
|
|
59
|
+
const label = mediaTypes.join(", ") || "media";
|
|
60
|
+
return ("<arena-system-message>\n" +
|
|
61
|
+
`The ${label} content in this message could not be delivered because the ` +
|
|
62
|
+
"configured model endpoint rejected that media input. You cannot inspect " +
|
|
63
|
+
`the ${label} content. Tell the user that you cannot read it with the ` +
|
|
64
|
+
"current model; do not infer or invent its contents.\n" +
|
|
65
|
+
"</arena-system-message>");
|
|
66
|
+
}
|
|
67
|
+
function replaceUnsupportedMedia(messages, mediaTypes) {
|
|
68
|
+
const unsupported = new Set(mediaTypes);
|
|
69
|
+
let replaced = 0;
|
|
70
|
+
for (const message of messages) {
|
|
71
|
+
if (message.role !== "user" || !Array.isArray(message.content))
|
|
72
|
+
continue;
|
|
73
|
+
const textParts = message.content.filter((part) => {
|
|
74
|
+
const partTypes = contentPartMediaTypes(part);
|
|
75
|
+
if (partTypes.some((type) => unsupported.has(type))) {
|
|
76
|
+
replaced += 1;
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
return true;
|
|
80
|
+
});
|
|
81
|
+
if (textParts.length !== message.content.length) {
|
|
82
|
+
message.content = [
|
|
83
|
+
...textParts,
|
|
84
|
+
{ text: unsupportedMediaNotice(mediaTypes) },
|
|
85
|
+
];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return replaced;
|
|
89
|
+
}
|
|
90
|
+
function preflightUnsupportedMedia(config, messages) {
|
|
91
|
+
const present = new Set();
|
|
92
|
+
for (const message of messages) {
|
|
93
|
+
if (message.role !== "user" || !Array.isArray(message.content))
|
|
94
|
+
continue;
|
|
95
|
+
for (const part of message.content) {
|
|
96
|
+
for (const mediaType of contentPartMediaTypes(part)) {
|
|
97
|
+
if ((mediaType === "image" ||
|
|
98
|
+
mediaType === "video" ||
|
|
99
|
+
mediaType === "audio") &&
|
|
100
|
+
!supportsModelInput(config, mediaType)) {
|
|
101
|
+
present.add(mediaType);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return present.size
|
|
107
|
+
? replaceUnsupportedMedia(messages, [...present])
|
|
108
|
+
: 0;
|
|
109
|
+
}
|
|
53
110
|
function completeInterruptedToolCalls(messages) {
|
|
54
111
|
const completed = [];
|
|
55
112
|
let pending = [];
|
|
@@ -97,7 +154,9 @@ class PartialAssistantTurnError extends Error {
|
|
|
97
154
|
// Mode is fixed at the first turn: resume reads it back from the history's
|
|
98
155
|
// system message, so a mid-session clone or detached HEAD cannot flip it.
|
|
99
156
|
// Exported so the replay script checks the same decision instead of redoing it.
|
|
100
|
-
export function resolveRepoContext(workspace, history) {
|
|
157
|
+
export function resolveRepoContext(workspace, history, mode = "arena") {
|
|
158
|
+
if (isCodeArenaMode(mode))
|
|
159
|
+
return undefined;
|
|
101
160
|
return history?.length
|
|
102
161
|
? repoContextFromSystemMessage(history[0])
|
|
103
162
|
: detectRepoContext(workspace);
|
|
@@ -108,49 +167,68 @@ export class Agent {
|
|
|
108
167
|
options;
|
|
109
168
|
client;
|
|
110
169
|
tools;
|
|
170
|
+
workspaceContext;
|
|
111
171
|
sessionId;
|
|
112
172
|
constructor(config, sink, options = {}) {
|
|
113
173
|
this.config = config;
|
|
114
174
|
this.sink = sink;
|
|
115
175
|
this.options = options;
|
|
176
|
+
this.sessionId =
|
|
177
|
+
options.sessionId || crypto.randomUUID().replaceAll("-", "");
|
|
178
|
+
this.workspaceContext =
|
|
179
|
+
options.workspaceContext ||
|
|
180
|
+
(isCodeArenaMode(config.mode)
|
|
181
|
+
? {
|
|
182
|
+
root: config.workspace,
|
|
183
|
+
cwd: config.workspace,
|
|
184
|
+
presentFile: false,
|
|
185
|
+
}
|
|
186
|
+
: undefined);
|
|
116
187
|
this.client =
|
|
117
188
|
options.client ||
|
|
118
189
|
(config.model.startsWith("mock/")
|
|
119
190
|
? new MockModelClient()
|
|
120
|
-
: new HttpModelClient(config
|
|
191
|
+
: new HttpModelClient(config, {
|
|
192
|
+
...(config.modelCallLogging === false
|
|
193
|
+
? {}
|
|
194
|
+
: {
|
|
195
|
+
diagnostics: new JsonlModelCallDiagnostics(modelCallLogPath(config.stateRoot, config.tenantId, this.sessionId)),
|
|
196
|
+
}),
|
|
197
|
+
}));
|
|
121
198
|
this.tools =
|
|
122
199
|
options.tools ||
|
|
123
200
|
new ToolExecutor(config, {
|
|
124
201
|
signal: options.signal,
|
|
125
202
|
askUserHandler: options.askUserHandler,
|
|
126
|
-
workspaceContext:
|
|
203
|
+
workspaceContext: this.workspaceContext,
|
|
127
204
|
});
|
|
128
|
-
this.sessionId =
|
|
129
|
-
options.sessionId || crypto.randomUUID().replaceAll("-", "");
|
|
130
205
|
}
|
|
131
206
|
async run(prompt, history, runOptions = {}) {
|
|
132
207
|
if (runOptions.resumeFromHistory && !history?.length) {
|
|
133
208
|
throw new Error("resumeFromHistory requires a non-empty history");
|
|
134
209
|
}
|
|
210
|
+
if (isCodeArenaMode(this.config.mode)) {
|
|
211
|
+
await initializeWorkspace(this.config.workspace, this.config.mode);
|
|
212
|
+
}
|
|
135
213
|
const baseUserMessage = runOptions.userMessage ||
|
|
136
214
|
{ role: "user", content: prompt };
|
|
137
215
|
const userMessage = runOptions.interrupted
|
|
138
|
-
? interruptedUserMessage(baseUserMessage)
|
|
216
|
+
? interruptedUserMessage(baseUserMessage, this.config.mode)
|
|
139
217
|
: structuredClone(baseUserMessage);
|
|
140
218
|
const clientContext = this.options.clientContext || defaultClientContext();
|
|
141
|
-
const repoContext = resolveRepoContext(this.config.workspace, history);
|
|
219
|
+
const repoContext = resolveRepoContext(this.config.workspace, history, this.config.mode);
|
|
142
220
|
const trajectory = history?.length
|
|
143
221
|
? completeInterruptedToolCalls(structuredClone(history))
|
|
144
|
-
: initialMessages(prompt, clientContext, this.
|
|
222
|
+
: initialMessages(prompt, clientContext, this.workspaceContext, repoContext, this.config.mode, this.config.maxTurns);
|
|
145
223
|
if (history?.length) {
|
|
146
224
|
const expected = repoContext
|
|
147
|
-
? repoSystemMessage(clientContext, repoContext)
|
|
225
|
+
? repoSystemMessage(clientContext, repoContext, this.config.mode, this.workspaceContext, this.config.maxTurns)
|
|
148
226
|
: undefined;
|
|
149
|
-
if (!isCanonicalSystemMessage(trajectory[0], expected || this.
|
|
227
|
+
if (!isCanonicalSystemMessage(trajectory[0], expected || this.workspaceContext, this.config.mode, this.config.maxTurns)) {
|
|
150
228
|
if (!repoContext &&
|
|
151
|
-
this.
|
|
152
|
-
isCanonicalSystemMessage(trajectory[0])) {
|
|
153
|
-
trajectory[0] = initialMessages("", this.options.clientContext, this.
|
|
229
|
+
this.workspaceContext &&
|
|
230
|
+
isCanonicalSystemMessage(trajectory[0], undefined, this.config.mode, this.config.maxTurns)) {
|
|
231
|
+
trajectory[0] = initialMessages("", this.options.clientContext, this.workspaceContext, undefined, this.config.mode, this.config.maxTurns)[0];
|
|
154
232
|
}
|
|
155
233
|
else {
|
|
156
234
|
throw new Error("history does not match the current workspace runtime context");
|
|
@@ -224,7 +302,13 @@ export class Agent {
|
|
|
224
302
|
const toolCallId = String(call.id || "");
|
|
225
303
|
const toolName = String(call.function?.name || "tool");
|
|
226
304
|
this.sink.toolStart(this.sessionId, toolCallId, toolName);
|
|
227
|
-
const toolMessage = await this.tools.execute(call
|
|
305
|
+
const toolMessage = await this.tools.execute(call, toolName === "ask_user"
|
|
306
|
+
? {
|
|
307
|
+
sessionId: this.sessionId,
|
|
308
|
+
messages: structuredClone(trajectory),
|
|
309
|
+
signal: this.options.signal,
|
|
310
|
+
}
|
|
311
|
+
: undefined);
|
|
228
312
|
const toolResult = parseToolResult(toolMessage.content);
|
|
229
313
|
const skippedAskUser = toolName === "ask_user" && toolResult.skipped === true;
|
|
230
314
|
if (this.options.signal?.aborted && !skippedAskUser) {
|
|
@@ -265,6 +349,7 @@ export class Agent {
|
|
|
265
349
|
await this.options.onCheckpoint?.(messages);
|
|
266
350
|
}
|
|
267
351
|
async maybeCompact(messages) {
|
|
352
|
+
preflightUnsupportedMedia(this.config, messages);
|
|
268
353
|
try {
|
|
269
354
|
const result = await compactMessagesIfNeeded(messages, this.tools.availableTools(), this.client, this.config.model, {
|
|
270
355
|
contextWindow: this.config.contextWindow,
|
|
@@ -291,7 +376,12 @@ export class Agent {
|
|
|
291
376
|
// conversation: the request is idempotent, so the whole turn is re-issued
|
|
292
377
|
// from scratch. Accumulators live inside the loop and reset each attempt, so
|
|
293
378
|
// the assistant message written to history reflects one clean completion.
|
|
379
|
+
// Known-unsupported media is removed from this private model-context copy
|
|
380
|
+
// before the first HTTP request. The lossless trajectory still retains the
|
|
381
|
+
// original content, and route-specific rejections keep the runtime fallback.
|
|
382
|
+
preflightUnsupportedMedia(this.config, messages);
|
|
294
383
|
const maxRetries = Math.max(0, Math.floor(this.config.modelMaxRetries ?? 5));
|
|
384
|
+
let multimodalFallbackApplied = false;
|
|
295
385
|
for (let attempt = 0;; attempt += 1) {
|
|
296
386
|
const contentParts = [];
|
|
297
387
|
const reasoningParts = [];
|
|
@@ -370,6 +460,17 @@ export class Agent {
|
|
|
370
460
|
// A user cancellation is not a transient fault: skip the retry, but
|
|
371
461
|
// still fall through so any partial output is preserved in history.
|
|
372
462
|
const aborted = Boolean(this.options.signal?.aborted);
|
|
463
|
+
if (!aborted &&
|
|
464
|
+
!multimodalFallbackApplied &&
|
|
465
|
+
error instanceof ModelCapabilityError) {
|
|
466
|
+
const replacedMedia = replaceUnsupportedMedia(messages, error.mediaTypes);
|
|
467
|
+
if (replacedMedia > 0) {
|
|
468
|
+
multimodalFallbackApplied = true;
|
|
469
|
+
this.sink.modelRetry(this.sessionId, attempt + 1, `model rejected ${error.mediaTypes.join(", ")} input; replaced ` +
|
|
470
|
+
`${replacedMedia} media part(s) with an unsupported-input notice`);
|
|
471
|
+
continue;
|
|
472
|
+
}
|
|
473
|
+
}
|
|
373
474
|
if (!aborted && isRetryableStreamError(error) && attempt < maxRetries) {
|
|
374
475
|
this.sink.modelRetry(this.sessionId, attempt + 1, describeError(error));
|
|
375
476
|
await this.retryBackoff(attempt);
|
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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"}
|