diff --git a/server-rs/crates/api-server/src/editor_agent/api.rs b/server-rs/crates/api-server/src/editor_agent/api.rs index b9f967013..81d83d46b 100644 --- a/server-rs/crates/api-server/src/editor_agent/api.rs +++ b/server-rs/crates/api-server/src/editor_agent/api.rs @@ -161,6 +161,7 @@ pub async fn editor_agent_message( let mut agent = LlmChatAgentBuilder::new() .with_client(llm_client) + .system_prompt(editor_agent_system_prompt()) .tool(EditImageTool { context: tool_context.clone(), }) @@ -209,6 +210,12 @@ pub async fn editor_agent_message( } } } +fn editor_agent_system_prompt() -> &'static str { + r#" +你是 Genarrative 图片画布 Agent,只负责帮助用户理解、规划和触发画布生成工具。 +对话回复要简短,不能承诺免费生成;实际生成工具由后端按模型定价扣泥点。 +"# +} fn build_delta_messages( result: Result, PromptError>, diff --git a/server-rs/crates/api-server/src/editor_agent/editor_tools/edit_image.rs b/server-rs/crates/api-server/src/editor_agent/editor_tools/edit_image.rs index 561633108..2758665a6 100644 --- a/server-rs/crates/api-server/src/editor_agent/editor_tools/edit_image.rs +++ b/server-rs/crates/api-server/src/editor_agent/editor_tools/edit_image.rs @@ -64,7 +64,7 @@ impl Tool for EditImageTool { type Output = EditImageToolOutput; fn description(&self) -> String { - "根据用户提供的文本描述,对选定的图片进行编辑修改,例如调整颜色、替换元素、修改风格等。" + "仅用于修改已有图片:换衣服、改颜色、替换背景、局部重绘,或保持主体、构图、姿势不变的编辑。用户指代“这张”“刚才那个”“上一张”“改成”“换成”时优先使用本工具。必须使用已有图片上下文;没有参考图时不要调用,应提示用户先选择参考图。" .to_string() } diff --git a/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_character.rs b/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_character.rs index 28f065500..903a7c595 100644 --- a/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_character.rs +++ b/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_character.rs @@ -22,7 +22,7 @@ impl Tool for GenerateCharacterTool { type Output = GenerateImageToolOutput; fn description(&self) -> String { - "生成一个新的角色形象、人物立绘或角色设定图。修改已有角色图片时请使用 edit-image。" + "仅用于生成新的角色形象、人物立绘或普通角色设定图。已有角色图的服装、颜色、表情、姿势或背景修改必须选择 edit-image。角色规范图、角色美术视觉规范设定图或规范展板必须选择 generate-image。" .to_string() } diff --git a/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_icon_spritesheet.rs b/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_icon_spritesheet.rs index b92f46324..aad22b529 100644 --- a/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_icon_spritesheet.rs +++ b/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_icon_spritesheet.rs @@ -75,7 +75,7 @@ impl Tool for GenerateIconSpritesheetTool { type Output = GenerateIconSpritesheetToolOutput; fn description(&self) -> String { - "根据一张图标规范参考图生成一组图标素材图集。必须提供参考图和多个图标描述。".to_string() + "仅用于生成多个图标成品、图标素材图集或 spritesheet。必须提供图标规范或风格参考图,并填写多个 icon_descriptions;没有参考图时不要调用,应提示用户先选择参考图。图标规范图或图标视觉规范展板不是本工具,应使用 generate-image。".to_string() } fn parameters(&self) -> Value { diff --git a/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_image.rs b/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_image.rs index c6d581df8..03a383910 100644 --- a/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_image.rs +++ b/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_image.rs @@ -60,7 +60,7 @@ impl Tool for GenerateImageTool { type Output = GenerateImageToolOutput; fn description(&self) -> String { - "根据文字描述生成一张新图片;可选参考图仅用于借鉴画风、构图或元素,不会修改参考图本身。" + "用于从文字生成全新图片:新场景、新物体、新插画或新背景;也专用于规范图、视觉规范图、风格规范图、素材规范展板。不要用来修改已有图,已有图修改应选 edit-image。规范展板 prompt 必须写明统一视角、线条粗细、描边、填充风格、材质、阴影、圆角、状态层级、色卡或色号、尺寸标注和排版层级;角色规范展板还要含头身比例、标准立绘、动作帧样例、服饰配饰分层和专属色卡。完整 prompt 必须包含画面、主体、风格、构图和背景。" .to_string() } diff --git a/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_ui_design.rs b/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_ui_design.rs index 7b3900200..b2a36e55d 100644 --- a/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_ui_design.rs +++ b/server-rs/crates/api-server/src/editor_agent/editor_tools/generate_ui_design.rs @@ -23,7 +23,7 @@ impl Tool for GenerateUiDesignTool { type Output = GenerateImageToolOutput; fn description(&self) -> String { - "生成一张完整 UI 设计图或界面稿,适用于 HUD、弹窗、面板、按钮组合和整页界面。".to_string() + "仅用于生成完整可用的 UI 设计图或界面稿,包括 HUD、弹窗、面板、按钮组合和整页界面。不要用于提取图标、拆素材或修改已有图;UI 规范图、组件规范展板或视觉规范展板应使用 generate-image。".to_string() } fn parameters(&self) -> Value {