refactor(llm): 移除 ToolDefinition 别名与遗留 deprecation 抑制点

完成 ToolDef IR 切换的最后清理:移除 ToolDefinition 别名与
OpenaiToolDefinition 的公共 re-export;各调用点(cycle/registry/mcp/agent)
直接使用 ToolDef 并清理对应的 #[allow(deprecated)] 抑制点;新增
roundtrip 测试验证 ToolDef 序列化兼容性。
This commit is contained in:
徐涛
2026-07-05 10:32:35 +08:00
parent 9da9b83167
commit 4cf5918b9c
6 changed files with 57 additions and 27 deletions
+7 -7
View File
@@ -21,8 +21,8 @@ use crate::llm::stream::StreamEvent;
use crate::llm::types::message::{ContentBlock, Message};
use crate::llm::types::request_v2::MessageRequest;
use crate::llm::types::response_v2::{MessageResponse, StopReason};
#[allow(deprecated)]
use crate::llm::types::{ToolChoice, ToolDefinition};
use crate::llm::types::tool::ToolDef;
use crate::llm::types::ToolChoice;
/// LLM 调用周期配置。
pub struct CycleConfig {
@@ -179,7 +179,7 @@ impl LlmCycle {
pub async fn submit_messages(
&mut self,
messages: Vec<Message>,
tools: Vec<ToolDefinition>,
tools: Vec<ToolDef>,
) -> Result<MessageResponse, LlmError> {
let request = MessageRequest {
model: self.config.model.clone(),
@@ -237,7 +237,7 @@ impl LlmCycle {
pub async fn submit(
&mut self,
prompt: String,
tools: Vec<ToolDefinition>,
tools: Vec<ToolDef>,
) -> Result<MessageResponse, LlmError> {
self.messages.push(Message::user_text(prompt));
@@ -347,7 +347,7 @@ impl LlmCycle {
pub async fn submit_stream(
&mut self,
prompt: String,
tools: Vec<ToolDefinition>,
tools: Vec<ToolDef>,
) -> Result<Pin<Box<dyn Stream<Item = StreamEvent> + Send>>, LlmError> {
self.messages.push(Message::user_text(prompt));
@@ -429,7 +429,7 @@ impl LlmCycle {
}))
}
fn build_request(&self, tools: &[ToolDefinition]) -> MessageRequest {
fn build_request(&self, tools: &[ToolDef]) -> MessageRequest {
// ponytail: Phase 2 简化 —— 直接 clone self.messages,无任何转换 / system prompt 注入。
// 系统消息如需存在,由调用方通过 `with_messages()` 自行管理。
MessageRequest {
@@ -448,7 +448,7 @@ impl LlmCycle {
/// 用于 `submit_with_tools()` 的多轮 tool 循环。
async fn submit_request(
&mut self,
tools: &[ToolDefinition],
tools: &[ToolDef],
) -> Result<MessageResponse, LlmError> {
let mut attempts = 0;