agim-cli 1.2.109 → 1.2.110
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/CHANGELOG.md +27 -0
- package/dist/core/llm/agent-loop.d.ts.map +1 -1
- package/dist/core/llm/agent-loop.js +48 -0
- package/dist/core/llm/agent-loop.js.map +1 -1
- package/dist/core/llm/schema-validate.d.ts +19 -0
- package/dist/core/llm/schema-validate.d.ts.map +1 -0
- package/dist/core/llm/schema-validate.js +162 -0
- package/dist/core/llm/schema-validate.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,33 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.2.110] - 2026-05-29
|
|
8
|
+
|
|
9
|
+
### Added (native agent stability, batch P1 — gap ④ closed)
|
|
10
|
+
|
|
11
|
+
- **agent-loop 在派发前对工具参数做 JSON-Schema 校验,失败注入结构化错误回灌模型。**
|
|
12
|
+
此前 `provider-base.ts:88-94` 注释明确"We don't validate the schema here",模型
|
|
13
|
+
乱传参数只能由各 dispatcher 自己防御,出错时一句模糊的 "tool threw: …" 让模型
|
|
14
|
+
再试一次也猜不出哪里错。现在 agent-loop 在 approval 通过后、dispatch 前调用
|
|
15
|
+
`validateAgainstSchema(call.arguments, schema)`:
|
|
16
|
+
- 失败 → 不派发;用 `formatValidationErrors` 生成多行错误(含 `tool name` /
|
|
17
|
+
每个出错字段的 dot-path / 具体原因 / "Tool was NOT dispatched. Please retry
|
|
18
|
+
with corrected arguments." 提示)作为 `role:'tool'` 反馈给模型;
|
|
19
|
+
- `source: 'schema-validation'`、`isError: true`,errorType 用同一首行——
|
|
20
|
+
自然喂给 v1.2.108 的 stuck-loop 检测(同样的错参 3 次 → 早停)。
|
|
21
|
+
- **轻量验证器**:手写 80 行,不引 ajv。覆盖 `type`(含 `integer` ≠ `number`)/
|
|
22
|
+
`required`/`enum`/`additionalProperties:false`/对象一层嵌套/数组 `items`。复杂
|
|
23
|
+
schema($ref/oneOf/format/数值约束)静默通过——失败开 footgun 比假阳性危险。
|
|
24
|
+
对 agim 现有 tool 的扁平 object schema 足够。
|
|
25
|
+
- **Env 关阀**:`IMHUB_TOOL_SCHEMA_VALIDATE=off` 关闭校验,回退到 v1.2.109 行为,
|
|
26
|
+
万一某 vendor schema 触发误报有快速逃生路径。
|
|
27
|
+
|
|
28
|
+
### Tests
|
|
29
|
+
|
|
30
|
+
24 个新测试覆盖 happy path、类型/必填/枚举/嵌套/数组/`additionalProperties:false`、
|
|
31
|
+
错参不派发、错误回灌内容正确、stuck-loop 联动、env 关阀回退、合法参数正常派发。
|
|
32
|
+
整套 P0+P1 测试 69/69 全绿;typecheck 干净。
|
|
33
|
+
|
|
7
34
|
## [1.2.109] - 2026-05-29
|
|
8
35
|
|
|
9
36
|
### Changed (native agent stability, batch P0b — gap ② closed)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../../src/core/llm/agent-loop.ts"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EAEV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,QAAQ,EACR,eAAe,EACf,UAAU,EACV,OAAO,EACR,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../../src/core/llm/agent-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
import { logger as rootLogger } from '../logger.js';
|
|
47
47
|
import { logInvocation } from '../audit-log.js';
|
|
48
48
|
import { runGoalCritic, resolveCriticMode } from './goal-critic.js';
|
|
49
|
+
import { validateAgainstSchema, formatValidationErrors } from './schema-validate.js';
|
|
49
50
|
const log = rootLogger.child({ component: 'agent-loop' });
|
|
50
51
|
const DEFAULT_MAX_ITERATIONS = 20;
|
|
51
52
|
const DEFAULT_TIMEOUT_MS = 5 * 60 * 1000; // 5 min — generous; signal usually fires first
|
|
@@ -56,6 +57,16 @@ const DEFAULT_TIMEOUT_MS = 5 * 60 * 1000; // 5 min — generous; signal usually
|
|
|
56
57
|
const CRITIC_MIN_TOOL_CALLS = 5;
|
|
57
58
|
const CRITIC_EVERY_N = 5;
|
|
58
59
|
const CRITIC_MAX_CALLS = 2;
|
|
60
|
+
/** v1.2.110 — gate the tool-args schema validator. Default ON; ops can
|
|
61
|
+
* flip OFF via env if a vendor schema confuses the lightweight
|
|
62
|
+
* validator (e.g. uses $ref / oneOf which we don't implement). The
|
|
63
|
+
* escape hatch keeps a footgun small. */
|
|
64
|
+
function resolveSchemaValidate() {
|
|
65
|
+
const raw = (process.env.IMHUB_TOOL_SCHEMA_VALIDATE ?? '').toLowerCase().trim();
|
|
66
|
+
if (raw === 'off' || raw === 'false' || raw === '0' || raw === 'no')
|
|
67
|
+
return false;
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
59
70
|
/**
|
|
60
71
|
* Deterministic JSON.stringify with sorted object keys at every level.
|
|
61
72
|
* Used by the stuck-loop detector to derive a stable identity key for
|
|
@@ -132,6 +143,12 @@ export async function runAgentLoop(input) {
|
|
|
132
143
|
const approve = input.approve ?? alwaysAllowGate;
|
|
133
144
|
const dispatch = input.dispatch;
|
|
134
145
|
const signal = mergeSignal(input.signal, timeoutMs);
|
|
146
|
+
// v1.2.110 — build a name → schema map once so the per-iteration
|
|
147
|
+
// tool-args validator (just before dispatch) can look up the declared
|
|
148
|
+
// shape in O(1). When the validator is disabled or a tool isn't in
|
|
149
|
+
// the map (caller didn't declare it; defensive), validation is a no-op.
|
|
150
|
+
const schemaValidateOn = resolveSchemaValidate();
|
|
151
|
+
const schemaByName = new Map((tools ?? []).map((t) => [t.name, t.parameters]));
|
|
135
152
|
// Local copy so we don't mutate the caller's array.
|
|
136
153
|
const history = input.messages.slice();
|
|
137
154
|
const toolCalls = [];
|
|
@@ -272,6 +289,37 @@ export async function runAgentLoop(input) {
|
|
|
272
289
|
};
|
|
273
290
|
continue;
|
|
274
291
|
}
|
|
292
|
+
// v1.2.110 — pre-dispatch JSON-Schema validation. Catches "model
|
|
293
|
+
// sent the wrong shape" (missing required field, string-where-int,
|
|
294
|
+
// bad enum, etc.) and feeds the model a structured "fix and retry"
|
|
295
|
+
// message INSTEAD of dispatching with garbage args. Without this,
|
|
296
|
+
// the dispatcher had to defensively parse / coerce, and any
|
|
297
|
+
// failure surfaced as an opaque "tool threw: …" the model rarely
|
|
298
|
+
// self-corrected. Disabled when IMHUB_TOOL_SCHEMA_VALIDATE=off.
|
|
299
|
+
const toolSchema = schemaByName.get(call.name);
|
|
300
|
+
if (schemaValidateOn && toolSchema) {
|
|
301
|
+
const verrs = validateAgainstSchema(call.arguments, toolSchema);
|
|
302
|
+
if (verrs.length > 0) {
|
|
303
|
+
const msg = formatValidationErrors(call.name, verrs);
|
|
304
|
+
historySlots[idx] = { role: 'tool', toolCallId: call.id, content: msg };
|
|
305
|
+
reportSlots[idx] = {
|
|
306
|
+
...reportBase,
|
|
307
|
+
decision: 'allow',
|
|
308
|
+
isError: true,
|
|
309
|
+
durationMs: 0,
|
|
310
|
+
source: 'schema-validation',
|
|
311
|
+
preview: msg.slice(0, 200),
|
|
312
|
+
errorType: extractErrorType(true, msg),
|
|
313
|
+
};
|
|
314
|
+
log.debug({
|
|
315
|
+
event: 'agent-loop.schema_validation_failed',
|
|
316
|
+
tool: call.name,
|
|
317
|
+
errors: verrs.length,
|
|
318
|
+
firstError: verrs[0],
|
|
319
|
+
});
|
|
320
|
+
continue;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
275
323
|
// Capture dispatch into an async closure so it can be awaited
|
|
276
324
|
// either immediately (serial path) or later via Promise.allSettled
|
|
277
325
|
// (parallel batch path). Captures idx by closure so the writer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../../src/core/llm/agent-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../../src/core/llm/agent-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface SchemaValidationError {
|
|
2
|
+
/** Dot-path from the args root, e.g. `path` or `filters.from`. */
|
|
3
|
+
path: string;
|
|
4
|
+
message: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Validate `value` against `schema`. Returns an empty array on success
|
|
8
|
+
* or one entry per violation. Continues past most errors so the caller
|
|
9
|
+
* (the agent loop) can give the model a single message listing
|
|
10
|
+
* everything wrong, not iterations of one-error-at-a-time corrections.
|
|
11
|
+
* Stops short of recursing through a type-mismatched root — once we know
|
|
12
|
+
* the value is the wrong shape, deeper checks would be noise.
|
|
13
|
+
*/
|
|
14
|
+
export declare function validateAgainstSchema(value: unknown, schema: unknown, path?: string): SchemaValidationError[];
|
|
15
|
+
/** Format an error list as a single multi-line string suitable for
|
|
16
|
+
* injection into a `role:'tool'` message so the model sees a clear
|
|
17
|
+
* "your args were wrong because X, Y, Z — fix and retry" signal. */
|
|
18
|
+
export declare function formatValidationErrors(toolName: string, errors: SchemaValidationError[]): string;
|
|
19
|
+
//# sourceMappingURL=schema-validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validate.d.ts","sourceRoot":"","sources":["../../../src/core/llm/schema-validate.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAqCD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,OAAO,EACf,IAAI,SAAK,GACR,qBAAqB,EAAE,CAqEzB;AAED;;qEAEqE;AACrE,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,qBAAqB,EAAE,GAC9B,MAAM,CAQR"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
// schema-validate — minimal JSON-Schema validator for tool-call arguments.
|
|
2
|
+
//
|
|
3
|
+
// Rationale (v1.2.110): provider-base / openai-compat-provider pass tool
|
|
4
|
+
// schemas to the LLM verbatim but do not validate the args the model
|
|
5
|
+
// sends back. Per-dispatcher defensive parsing catches some malformed
|
|
6
|
+
// inputs but its error messages — when surfaced at all — aren't shaped
|
|
7
|
+
// for the model to fix on the next iteration. Result: the model often
|
|
8
|
+
// retries with the same wrong shape, eating iterations until something
|
|
9
|
+
// breaks.
|
|
10
|
+
//
|
|
11
|
+
// We intentionally do NOT pull `ajv` for this:
|
|
12
|
+
// * agim's tool schemas are flat object types with simple type / enum
|
|
13
|
+
// / required constraints. The 250+ KB cost and license footprint
|
|
14
|
+
// are not justified.
|
|
15
|
+
// * A focused 80-line validator covers the cases we actually see
|
|
16
|
+
// (missing required, wrong scalar type, bad enum, extra fields when
|
|
17
|
+
// additionalProperties:false). When real-world schemas grow beyond
|
|
18
|
+
// this, swapping in ajv is straightforward.
|
|
19
|
+
//
|
|
20
|
+
// What's covered:
|
|
21
|
+
// - `type` for primitives + array/object (`integer` distinct from `number`)
|
|
22
|
+
// - `required: string[]` on objects
|
|
23
|
+
// - `properties[k]` recurses one level for nested objects
|
|
24
|
+
// - `items` recurses for array elements (homogeneous schema only)
|
|
25
|
+
// - `enum`: exact set membership (deep-equal for objects/arrays)
|
|
26
|
+
// - `additionalProperties: false`: extra keys reported
|
|
27
|
+
//
|
|
28
|
+
// What's NOT covered (returns "ok" silently):
|
|
29
|
+
// - $ref, oneOf / anyOf / allOf, conditional schemas
|
|
30
|
+
// - format keywords (`format: "email"` etc.)
|
|
31
|
+
// - numeric constraints (`minimum`, `maximum`, `multipleOf`)
|
|
32
|
+
// - string constraints (`minLength`, `pattern`)
|
|
33
|
+
// - `prefixItems`, tuple validation
|
|
34
|
+
//
|
|
35
|
+
// Failing closed on unsupported keywords would create false positives
|
|
36
|
+
// against schemas authored for ajv. The intent here is "catch the
|
|
37
|
+
// frequent + cheap cases" not "be a complete validator".
|
|
38
|
+
function getRuntimeType(v) {
|
|
39
|
+
if (v === null)
|
|
40
|
+
return 'null';
|
|
41
|
+
if (Array.isArray(v))
|
|
42
|
+
return 'array';
|
|
43
|
+
return typeof v;
|
|
44
|
+
}
|
|
45
|
+
function typeMatches(value, declared) {
|
|
46
|
+
const actual = getRuntimeType(value);
|
|
47
|
+
if (declared === 'integer')
|
|
48
|
+
return actual === 'number' && Number.isInteger(value);
|
|
49
|
+
return actual === declared;
|
|
50
|
+
}
|
|
51
|
+
/** Shallow deep-equal for enum membership. Covers primitives, plain
|
|
52
|
+
* arrays, and one level of object nesting — enough for typical enum
|
|
53
|
+
* values (strings, numbers, simple option objects). */
|
|
54
|
+
function looseEqual(a, b) {
|
|
55
|
+
if (a === b)
|
|
56
|
+
return true;
|
|
57
|
+
if (a === null || b === null)
|
|
58
|
+
return false;
|
|
59
|
+
if (typeof a !== typeof b)
|
|
60
|
+
return false;
|
|
61
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
62
|
+
if (a.length !== b.length)
|
|
63
|
+
return false;
|
|
64
|
+
return a.every((x, i) => looseEqual(x, b[i]));
|
|
65
|
+
}
|
|
66
|
+
if (typeof a === 'object' && typeof b === 'object') {
|
|
67
|
+
const ak = Object.keys(a);
|
|
68
|
+
const bk = Object.keys(b);
|
|
69
|
+
if (ak.length !== bk.length)
|
|
70
|
+
return false;
|
|
71
|
+
return ak.every((k) => Object.prototype.hasOwnProperty.call(b, k)
|
|
72
|
+
&& looseEqual(a[k], b[k]));
|
|
73
|
+
}
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Validate `value` against `schema`. Returns an empty array on success
|
|
78
|
+
* or one entry per violation. Continues past most errors so the caller
|
|
79
|
+
* (the agent loop) can give the model a single message listing
|
|
80
|
+
* everything wrong, not iterations of one-error-at-a-time corrections.
|
|
81
|
+
* Stops short of recursing through a type-mismatched root — once we know
|
|
82
|
+
* the value is the wrong shape, deeper checks would be noise.
|
|
83
|
+
*/
|
|
84
|
+
export function validateAgainstSchema(value, schema, path = '') {
|
|
85
|
+
const errors = [];
|
|
86
|
+
if (!schema || typeof schema !== 'object')
|
|
87
|
+
return errors;
|
|
88
|
+
const s = schema;
|
|
89
|
+
const declaredType = typeof s.type === 'string' ? s.type : null;
|
|
90
|
+
if (declaredType && !typeMatches(value, declaredType)) {
|
|
91
|
+
errors.push({
|
|
92
|
+
path: path || '$',
|
|
93
|
+
message: `expected ${declaredType}, got ${getRuntimeType(value)}`,
|
|
94
|
+
});
|
|
95
|
+
return errors; // structural mismatch — deeper checks would be misleading
|
|
96
|
+
}
|
|
97
|
+
if (Array.isArray(s.enum)) {
|
|
98
|
+
const allowed = s.enum;
|
|
99
|
+
if (!allowed.some((v) => looseEqual(v, value))) {
|
|
100
|
+
const allowedShown = allowed.slice(0, 5).map((v) => JSON.stringify(v)).join(', ')
|
|
101
|
+
+ (allowed.length > 5 ? `, … (+${allowed.length - 5} more)` : '');
|
|
102
|
+
errors.push({
|
|
103
|
+
path: path || '$',
|
|
104
|
+
message: `must be one of [${allowedShown}], got ${JSON.stringify(value)}`,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const actualType = getRuntimeType(value);
|
|
109
|
+
if (actualType === 'object' && (declaredType === 'object' || declaredType === null)) {
|
|
110
|
+
const obj = value;
|
|
111
|
+
const required = Array.isArray(s.required) ? s.required : [];
|
|
112
|
+
for (const key of required) {
|
|
113
|
+
if (!Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
114
|
+
errors.push({ path: path ? `${path}.${key}` : key, message: 'required field missing' });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const props = (s.properties && typeof s.properties === 'object'
|
|
118
|
+
? s.properties
|
|
119
|
+
: {});
|
|
120
|
+
for (const [key, propVal] of Object.entries(obj)) {
|
|
121
|
+
const propSchema = props[key];
|
|
122
|
+
if (propSchema !== undefined) {
|
|
123
|
+
errors.push(...validateAgainstSchema(propVal, propSchema, path ? `${path}.${key}` : key));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (s.additionalProperties === false) {
|
|
127
|
+
const allowed = new Set(Object.keys(props));
|
|
128
|
+
for (const key of Object.keys(obj)) {
|
|
129
|
+
if (!allowed.has(key)) {
|
|
130
|
+
errors.push({
|
|
131
|
+
path: path ? `${path}.${key}` : key,
|
|
132
|
+
message: 'unexpected field (additionalProperties: false)',
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (actualType === 'array' && (declaredType === 'array' || declaredType === null)) {
|
|
139
|
+
const arr = value;
|
|
140
|
+
const itemSchema = s.items;
|
|
141
|
+
if (itemSchema) {
|
|
142
|
+
arr.forEach((item, i) => {
|
|
143
|
+
errors.push(...validateAgainstSchema(item, itemSchema, `${path}[${i}]`));
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return errors;
|
|
148
|
+
}
|
|
149
|
+
/** Format an error list as a single multi-line string suitable for
|
|
150
|
+
* injection into a `role:'tool'` message so the model sees a clear
|
|
151
|
+
* "your args were wrong because X, Y, Z — fix and retry" signal. */
|
|
152
|
+
export function formatValidationErrors(toolName, errors) {
|
|
153
|
+
if (errors.length === 0)
|
|
154
|
+
return '';
|
|
155
|
+
const lines = [`tool call validation failed for \`${toolName}\`:`];
|
|
156
|
+
for (const e of errors) {
|
|
157
|
+
lines.push(` - ${e.path || '$'}: ${e.message}`);
|
|
158
|
+
}
|
|
159
|
+
lines.push('Tool was NOT dispatched. Please retry with corrected arguments.');
|
|
160
|
+
return lines.join('\n');
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=schema-validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validate.js","sourceRoot":"","sources":["../../../src/core/llm/schema-validate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agim-cli",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.110",
|
|
4
4
|
"description": "Agim (阿吉姆) — universal messenger-to-agent bridge. Connect WeChat / Feishu / DingTalk / Email to Claude Code / Codex / OpenCode, or any custom agent via ACP. Installs the `agim` command.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|