From 8c85b2f8be371776cb493eae9e20f07976c69a51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Wed, 22 Jul 2026 11:14:39 +0800 Subject: [PATCH] refactor: editor agent extract common tool prompt --- .../crates/platform-editor-agent/src/agent/tools/common.rs | 2 ++ .../platform-editor-agent/src/agent/tools/edit_image.rs | 2 +- .../src/agent/tools/generate_background_music.rs | 4 ++-- .../src/agent/tools/generate_character.rs | 4 ++-- .../src/agent/tools/generate_icon_spritesheet.rs | 4 ++-- .../platform-editor-agent/src/agent/tools/generate_image.rs | 4 ++-- .../src/agent/tools/generate_sound_effect.rs | 4 ++-- server-rs/crates/platform-editor-agent/src/agent/tools/mod.rs | 2 +- 8 files changed, 14 insertions(+), 12 deletions(-) create mode 100644 server-rs/crates/platform-editor-agent/src/agent/tools/common.rs diff --git a/server-rs/crates/platform-editor-agent/src/agent/tools/common.rs b/server-rs/crates/platform-editor-agent/src/agent/tools/common.rs new file mode 100644 index 000000000..31fd237ce --- /dev/null +++ b/server-rs/crates/platform-editor-agent/src/agent/tools/common.rs @@ -0,0 +1,2 @@ +pub const TOOL_CALL_PENDING_MESSAGE: &'static str = + "this tool call is pending user confirmation. if all is pending, just end this turn"; diff --git a/server-rs/crates/platform-editor-agent/src/agent/tools/edit_image.rs b/server-rs/crates/platform-editor-agent/src/agent/tools/edit_image.rs index e1aebda49..2d52be188 100644 --- a/server-rs/crates/platform-editor-agent/src/agent/tools/edit_image.rs +++ b/server-rs/crates/platform-editor-agent/src/agent/tools/edit_image.rs @@ -1,4 +1,5 @@ use crate::agent::asset::ImageId; +use crate::agent::tools::common::TOOL_CALL_PENDING_MESSAGE; use crate::agent::tools::context::EditorToolContext; use crate::framework::tool::{Tool, ToolFailure, ToolFailureKind}; use platform_image::GPT_IMAGE_2_MODEL; @@ -6,7 +7,6 @@ use serde::{Deserialize, Serialize}; use serde_json::{Value, json}; use std::error::Error; use std::fmt::Display; -use crate::agent::tools::common::TOOL_CALL_PENDING_MESSAGE; pub struct EditImageTool { pub context: EditorToolContext, diff --git a/server-rs/crates/platform-editor-agent/src/agent/tools/generate_background_music.rs b/server-rs/crates/platform-editor-agent/src/agent/tools/generate_background_music.rs index 8d659cf5f..8a1c12f47 100644 --- a/server-rs/crates/platform-editor-agent/src/agent/tools/generate_background_music.rs +++ b/server-rs/crates/platform-editor-agent/src/agent/tools/generate_background_music.rs @@ -1,11 +1,11 @@ +use crate::agent::tools::common::TOOL_CALL_PENDING_MESSAGE; use crate::framework::tool::{Tool, ToolFailure}; use platform_audio::SUNO_DEFAULT_MODEL; use serde::{Deserialize, Serialize}; -use serde_json::{json, Value}; +use serde_json::{Value, json}; use shared_contracts::assets::EditorAudioGenerateResponse; use std::error::Error; use std::fmt::Display; -use crate::agent::tools::common::TOOL_CALL_PENDING_MESSAGE; pub struct GenerateBackgroundMusicTool; diff --git a/server-rs/crates/platform-editor-agent/src/agent/tools/generate_character.rs b/server-rs/crates/platform-editor-agent/src/agent/tools/generate_character.rs index 47aa4d640..e3fa88810 100644 --- a/server-rs/crates/platform-editor-agent/src/agent/tools/generate_character.rs +++ b/server-rs/crates/platform-editor-agent/src/agent/tools/generate_character.rs @@ -1,4 +1,5 @@ use crate::agent::asset::ImageId; +use crate::agent::tools::common::TOOL_CALL_PENDING_MESSAGE; use crate::agent::tools::context::EditorToolContext; use crate::agent::tools::generate_image::{ EditorImageGenerationResult, GenerateImageError, GenerateImageToolOutput, @@ -12,7 +13,6 @@ use crate::framework::tool::ToolFailureKind; use crate::framework::tool::{Tool, ToolFailure}; use serde::{Deserialize, Serialize}; use serde_json::{Value, json}; -use crate::agent::tools::common::TOOL_CALL_PENDING_MESSAGE; pub struct GenerateCharacterTool { pub context: EditorToolContext, @@ -64,7 +64,7 @@ impl Tool for GenerateCharacterTool { async move { self.validate_args(&args)?; Ok(GenerateImageToolOutput { - message: TOOL_CALL_PENDING_MESSAGE.to_string(), + message: TOOL_CALL_PENDING_MESSAGE.to_string(), }) } } diff --git a/server-rs/crates/platform-editor-agent/src/agent/tools/generate_icon_spritesheet.rs b/server-rs/crates/platform-editor-agent/src/agent/tools/generate_icon_spritesheet.rs index ea0cab0ad..fde5ba420 100644 --- a/server-rs/crates/platform-editor-agent/src/agent/tools/generate_icon_spritesheet.rs +++ b/server-rs/crates/platform-editor-agent/src/agent/tools/generate_icon_spritesheet.rs @@ -1,4 +1,5 @@ use crate::agent::asset::ImageId; +use crate::agent::tools::common::TOOL_CALL_PENDING_MESSAGE; use crate::agent::tools::context::EditorToolContext; use crate::agent::tools::image_generation_options::{ ImageGenerationOptionsError, default_image_aspect_ratio, default_image_model, @@ -11,7 +12,6 @@ use serde::{Deserialize, Serialize}; use serde_json::{Value, json}; use std::error::Error; use std::fmt::Display; -use crate::agent::tools::common::TOOL_CALL_PENDING_MESSAGE; pub struct GenerateIconSpritesheetTool { pub context: EditorToolContext, @@ -144,7 +144,7 @@ impl Tool for GenerateIconSpritesheetTool { async move { self.validate_args(&args)?; Ok(GenerateIconSpritesheetToolOutput { - message: TOOL_CALL_PENDING_MESSAGE.to_string(), + message: TOOL_CALL_PENDING_MESSAGE.to_string(), }) } } diff --git a/server-rs/crates/platform-editor-agent/src/agent/tools/generate_image.rs b/server-rs/crates/platform-editor-agent/src/agent/tools/generate_image.rs index fd257612e..2e3e44386 100644 --- a/server-rs/crates/platform-editor-agent/src/agent/tools/generate_image.rs +++ b/server-rs/crates/platform-editor-agent/src/agent/tools/generate_image.rs @@ -1,4 +1,5 @@ use crate::agent::asset::ImageId; +use crate::agent::tools::common::TOOL_CALL_PENDING_MESSAGE; use crate::agent::tools::context::EditorToolContext; use crate::agent::tools::image_generation_options::{ ImageGenerationOptionsError, default_image_aspect_ratio, default_image_model, @@ -11,7 +12,6 @@ use serde::{Deserialize, Serialize}; use serde_json::{Value, json}; use std::error::Error; use std::fmt::Display; -use crate::agent::tools::common::TOOL_CALL_PENDING_MESSAGE; pub struct GenerateImageTool { pub context: EditorToolContext, @@ -124,7 +124,7 @@ impl Tool for GenerateImageTool { async move { self.validate_args(&args)?; Ok(GenerateImageToolOutput { - message: TOOL_CALL_PENDING_MESSAGE.to_string(), + message: TOOL_CALL_PENDING_MESSAGE.to_string(), }) } } diff --git a/server-rs/crates/platform-editor-agent/src/agent/tools/generate_sound_effect.rs b/server-rs/crates/platform-editor-agent/src/agent/tools/generate_sound_effect.rs index 479c71717..9496003bd 100644 --- a/server-rs/crates/platform-editor-agent/src/agent/tools/generate_sound_effect.rs +++ b/server-rs/crates/platform-editor-agent/src/agent/tools/generate_sound_effect.rs @@ -1,3 +1,4 @@ +use crate::agent::tools::common::TOOL_CALL_PENDING_MESSAGE; use crate::framework::tool::{Tool, ToolFailure}; use platform_audio::VIDU_AUDIO_MODEL; use serde::{Deserialize, Serialize}; @@ -5,7 +6,6 @@ use serde_json::{Value, json}; use shared_contracts::assets::EditorAudioGenerateResponse; use std::error::Error; use std::fmt::Display; -use crate::agent::tools::common::TOOL_CALL_PENDING_MESSAGE; pub struct GenerateSoundEffectTool; @@ -91,7 +91,7 @@ impl Tool for GenerateSoundEffectTool { async move { self.validate_args(&args)?; Ok(GenerateSoundEffectToolOutput { - message:TOOL_CALL_PENDING_MESSAGE.to_string(), + message: TOOL_CALL_PENDING_MESSAGE.to_string(), }) } } diff --git a/server-rs/crates/platform-editor-agent/src/agent/tools/mod.rs b/server-rs/crates/platform-editor-agent/src/agent/tools/mod.rs index a8ef88678..5aa5a3537 100644 --- a/server-rs/crates/platform-editor-agent/src/agent/tools/mod.rs +++ b/server-rs/crates/platform-editor-agent/src/agent/tools/mod.rs @@ -1,3 +1,4 @@ +mod common; pub mod context; pub mod edit_image; pub mod generate_background_music; @@ -8,7 +9,6 @@ pub mod generate_sound_effect; pub mod generate_ui_design; pub mod generate_video; pub mod image_generation_options; -mod common; #[cfg(test)] mod tests {