Refactor tool execution pipeline

This commit is contained in:
2026-06-21 14:30:40 +08:00
parent 3e5f0658b3
commit 99c1e9cd6c
81 changed files with 3587 additions and 5317 deletions
+22
View File
@@ -0,0 +1,22 @@
fn main() {
let input: serde_json::Value = serde_json::from_reader(std::io::stdin()).unwrap();
if input.get("response").is_none() && input.get("db_response").is_none() {
let q = input["params"]["query"].as_str().unwrap_or("");
if q.is_empty() { println!(r#"{{"type":"result","content":"缺少query"}}"#); return; }
let n = input["params"]["max_results"].as_u64().unwrap_or(5);
let body = serde_json::json!({"query":q,"max_results":n,"include_answer":true});
println!("{}", serde_json::json!({
"type":"http","method":"POST","url":"https://api.tavily.com/search",
"body":body.to_string(),"desc":format!("搜索: {q}")
}));
} else {
let b = &input["response"]["body"];
let mut o = String::new();
if let Some(a) = b["answer"].as_str() { o.push_str(&format!("📝 {a}\n\n")); }
for (i,r) in b["results"].as_array().unwrap_or(&vec![]).iter().enumerate() {
o.push_str(&format!("{}. {} - {}\n", i+1, r["title"].as_str().unwrap_or(""), r["url"].as_str().unwrap_or("")));
}
if o.is_empty() { o = "未找到结果".into(); }
println!("{}", serde_json::json!({"type":"result","content":o}));
}
}