fix agent user-facing image edit preface
This commit is contained in:
parent
778fc1c0b8
commit
fef8947e73
@ -239,6 +239,8 @@ import {
|
||||
safePersistDirectAgentVideoFailedTurn,
|
||||
} from "@/lib/ai/runtime/direct-agent-working-state";
|
||||
import {
|
||||
getDirectAgentToolDisplayName,
|
||||
getDirectAgentToolPrefaceFallback,
|
||||
getDirectAgentToolErrorMessage,
|
||||
getDirectAgentToolLabel,
|
||||
getDirectAgentToolTargetMissingMessage,
|
||||
@ -8296,6 +8298,9 @@ export async function POST(request: Request) {
|
||||
|
||||
const assistantMessageId = generateUUID();
|
||||
const directToolLabel = getDirectAgentToolLabel(directAgentToolCapability);
|
||||
const directToolDisplayName = getDirectAgentToolDisplayName(
|
||||
directAgentToolCapability,
|
||||
);
|
||||
const directToolStream = createUIMessageStream({
|
||||
execute: async ({ writer }) => {
|
||||
await writeAgentExecutionPrefaceMessage({
|
||||
@ -8303,7 +8308,7 @@ export async function POST(request: Request) {
|
||||
chatId: id,
|
||||
label: `agent:${directAgentToolCapability}:preface`,
|
||||
friendlyMessage: smartAutoFriendlyMessage,
|
||||
fallback: `好的,我来帮你${directToolLabel},稍等我处理一下。`,
|
||||
fallback: getDirectAgentToolPrefaceFallback(directAgentToolCapability),
|
||||
});
|
||||
writeAgentProgressChunk(
|
||||
writer,
|
||||
@ -8318,7 +8323,7 @@ export async function POST(request: Request) {
|
||||
buildDirectAgentImageEditSelectProgress({
|
||||
toolName: directAgentExecution.toolName,
|
||||
capability: directAgentToolCapability,
|
||||
label: directToolLabel,
|
||||
label: directToolDisplayName,
|
||||
}),
|
||||
`agent:${directAgentToolCapability}:progress-select-tool`,
|
||||
);
|
||||
@ -8331,7 +8336,7 @@ export async function POST(request: Request) {
|
||||
buildDirectAgentImageEditExecutingProgress({
|
||||
toolName: directAgentExecution.toolName,
|
||||
capability: directAgentToolCapability,
|
||||
label: directToolLabel,
|
||||
label: directToolDisplayName,
|
||||
}),
|
||||
`agent:${directAgentToolCapability}:progress-executing`,
|
||||
);
|
||||
@ -8480,7 +8485,7 @@ export async function POST(request: Request) {
|
||||
buildDirectAgentImageEditCompletedProgress({
|
||||
toolName: directAgentExecution.toolName,
|
||||
capability: directAgentToolCapability,
|
||||
label: directToolLabel,
|
||||
label: directToolDisplayName,
|
||||
}),
|
||||
`agent:${directAgentToolCapability}:progress-completed`,
|
||||
);
|
||||
|
||||
@ -1178,6 +1178,10 @@ function buildStrategicFriendlyMessage(
|
||||
analysis.intent === "image_gen" ||
|
||||
analysis.intent === "video_gen"
|
||||
) {
|
||||
if (existingReply) {
|
||||
return Promise.resolve(existingReply);
|
||||
}
|
||||
|
||||
const imageParams = heuristicImageParams(state.text, analysis);
|
||||
const planningBrief = buildAgentPlanningBriefMarkdown({
|
||||
userText: state.text,
|
||||
|
||||
@ -503,6 +503,72 @@ export function getDirectAgentToolLabel(capability: DirectAgentToolCapability):
|
||||
}
|
||||
}
|
||||
|
||||
export function getDirectAgentToolDisplayName(
|
||||
capability: DirectAgentToolCapability,
|
||||
): string {
|
||||
switch (capability) {
|
||||
case "analyze":
|
||||
return "图片分析";
|
||||
case "generic_edit":
|
||||
return "图片编辑";
|
||||
case "remove_background":
|
||||
return "抠图";
|
||||
case "remove_watermark":
|
||||
return "去水印";
|
||||
case "enhance":
|
||||
return "图像增强";
|
||||
case "resize":
|
||||
return "尺寸调整";
|
||||
case "extend":
|
||||
return "图像拓展";
|
||||
case "angle_variant":
|
||||
return "多视角";
|
||||
case "local_edit":
|
||||
return "局部编辑";
|
||||
case "box_cutout":
|
||||
return "框选抠图";
|
||||
case "generate_image":
|
||||
return "图片生成";
|
||||
case "generate_video":
|
||||
return "视频生成";
|
||||
default:
|
||||
return "图像处理";
|
||||
}
|
||||
}
|
||||
|
||||
export function getDirectAgentToolPrefaceFallback(
|
||||
capability: DirectAgentToolCapability,
|
||||
): string {
|
||||
switch (capability) {
|
||||
case "analyze":
|
||||
return "好的,我先帮你看看这张图,稍等我一下。";
|
||||
case "generic_edit":
|
||||
return "好的,我来帮你修改这张图,稍等我一下。";
|
||||
case "remove_background":
|
||||
return "好的,我来帮你抠出主体,稍等我一下。";
|
||||
case "remove_watermark":
|
||||
return "好的,我来帮你去掉水印,稍等我一下。";
|
||||
case "enhance":
|
||||
return "好的,我来帮你增强这张图,稍等我一下。";
|
||||
case "resize":
|
||||
return "好的,我来帮你调整图片尺寸,稍等我一下。";
|
||||
case "extend":
|
||||
return "好的,我来帮你扩展这张图,稍等我一下。";
|
||||
case "angle_variant":
|
||||
return "好的,我来帮你生成新的视角,稍等我一下。";
|
||||
case "local_edit":
|
||||
return "好的,我来帮你修改这个局部区域,稍等我一下。";
|
||||
case "box_cutout":
|
||||
return "好的,我来帮你把框选区域抠出来,稍等我一下。";
|
||||
case "generate_image":
|
||||
return "好的,我按你的描述来做一版画面,稍等我处理一下。";
|
||||
case "generate_video":
|
||||
return "好的,我按你的需求来做这段视频,稍等我处理一下。";
|
||||
default:
|
||||
return "好的,我来继续处理,稍等我一下。";
|
||||
}
|
||||
}
|
||||
|
||||
export function findAgentToolCallArgs(
|
||||
toolName: AgentPlannedToolCall["name"],
|
||||
execution?: AgentPreparedExecution,
|
||||
|
||||
@ -5,7 +5,7 @@ import {
|
||||
prependImageModelBadge,
|
||||
} from "@/lib/ai/runtime/agent-media-markdown";
|
||||
import {
|
||||
getDirectAgentToolLabel,
|
||||
getDirectAgentToolDisplayName,
|
||||
getDirectAgentToolSuccessMessage,
|
||||
type DirectAgentToolCapability,
|
||||
} from "@/lib/ai/runtime/direct-agent-execution";
|
||||
@ -73,7 +73,7 @@ export function buildDirectAgentAnalysisAssistantText(params: {
|
||||
]
|
||||
.filter(Boolean)
|
||||
.join("\n\n"),
|
||||
getDirectAgentToolLabel("analyze"),
|
||||
getDirectAgentToolDisplayName("analyze"),
|
||||
);
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ export function buildDirectAgentImageEditAssistantText(params: {
|
||||
}),
|
||||
followUp: getDirectAgentFollowUpMessage(params.capability),
|
||||
}),
|
||||
getDirectAgentToolLabel(params.capability),
|
||||
getDirectAgentToolDisplayName(params.capability),
|
||||
);
|
||||
}
|
||||
|
||||
@ -139,6 +139,6 @@ export function buildDirectAgentBatchImageEditAssistantText(params: {
|
||||
mediaMarkdown: buildAgentToolImagesMarkdown(params.results),
|
||||
followUp: getDirectAgentFollowUpMessage(params.capability),
|
||||
}),
|
||||
getDirectAgentToolLabel(params.capability),
|
||||
getDirectAgentToolDisplayName(params.capability),
|
||||
);
|
||||
}
|
||||
|
||||
@ -142,7 +142,9 @@ import {
|
||||
shouldBypassCanvasImagePointsPrecheckForAgentControl,
|
||||
} from "@/lib/canvas/agent-client-intent";
|
||||
import {
|
||||
getDirectAgentToolDisplayName,
|
||||
getDirectAgentToolLabel,
|
||||
getDirectAgentToolPrefaceFallback,
|
||||
getDirectAgentToolSuccessMessage,
|
||||
hasExplicitDirectAgentBatchImageEditIntent,
|
||||
isDirectAgentBatchImageEditCapability,
|
||||
@ -1313,9 +1315,20 @@ test.describe("canvas chat pure helpers", () => {
|
||||
expect(editText).toContain("### 执行结果");
|
||||
expect(editText).toContain("- 已完成抠图处理,结果如下。");
|
||||
expect(editText).toContain("https://cdn.example.com/cutout.png");
|
||||
expect(editText).toContain("◈ 抠图");
|
||||
expect(editText).not.toContain("Agent工具:");
|
||||
expect(editText).toContain("替换背景");
|
||||
});
|
||||
|
||||
test("uses user-facing direct agent tool labels in fallbacks", () => {
|
||||
expect(getDirectAgentToolDisplayName("generic_edit")).toBe("图片编辑");
|
||||
expect(getDirectAgentToolDisplayName("local_edit")).toBe("局部编辑");
|
||||
expect(getDirectAgentToolPrefaceFallback("generic_edit")).toBe(
|
||||
"好的,我来帮你修改这张图,稍等我一下。"
|
||||
);
|
||||
expect(getDirectAgentToolPrefaceFallback("generic_edit")).not.toContain("Agent工具:");
|
||||
});
|
||||
|
||||
test("builds capability-aware agent progress node labels", () => {
|
||||
const selectingSteps = buildAgentProgressNodeSteps({
|
||||
stage: "planning",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user