fix: isolate visual tool failures from agent runs

This commit is contained in:
john
2026-07-27 19:20:23 +08:00
parent 7002007128
commit 17c59fde71
10 changed files with 444 additions and 16 deletions
+33
View File
@@ -470,6 +470,39 @@ export function developerToolsFromPolicy(sessionPolicy) {
return (sandboxFs ?? developer)?.available_tools ?? [];
}
/**
* Visual inspection is optional for H5 Agent runs. When the active text model
* rejects image content, remove read_image for the recovery session without
* weakening any workspace or data capability boundary.
*/
export function withoutSessionImageRead(sessionPolicy) {
if (!sessionPolicy || !Array.isArray(sessionPolicy.extensionOverrides)) {
return sessionPolicy;
}
let changed = false;
const extensionOverrides = sessionPolicy.extensionOverrides
.map((extension) => {
if (String(extension?.name ?? '') !== 'developer') return extension;
const tools = Array.isArray(extension.available_tools)
? extension.available_tools
: [];
const availableTools = tools.filter((tool) => tool !== 'read_image');
if (availableTools.length === tools.length) return extension;
changed = true;
if (availableTools.length === 0) return null;
return {
...extension,
available_tools: availableTools,
};
})
.filter(Boolean);
if (!changed) return sessionPolicy;
return {
...sessionPolicy,
extensionOverrides,
};
}
function mergeDeveloperTools(capabilities) {
const tools = [];
if (capabilities.shell) tools.push('shell');