mirror of
https://github.com/katanemo/plano.git
synced 2026-05-09 07:42:43 +02:00
Use mcp tools for filter chain (#621)
* agents framework demo * more changes * add more changes * pending changes * fix tests * fix more * rebase with main and better handle error from mcp * add trace for filters * add test for client error, server error and for mcp error * update schema validate code and rename kind => type in agent_filter * fix agent description and pre-commit * fix tests * add provider specific request parsing in agents chat * fix precommit and tests * cleanup demo * update readme * fix pre-commit * refactor tracing * fix fmt * fix: handle MessageContent enum in responses API conversion - Update request.rs to handle new MessageContent enum structure from main - MessageContent can now be Text(String) or Items(Vec<InputContent>) - Handle new InputItem variants (ItemReference, FunctionCallOutput) - Fixes compilation error after merging latest main (#632) * address pr feedback * fix span * fix build * update openai version
This commit is contained in:
parent
cb82a83c7b
commit
2f9121407b
40 changed files with 4886 additions and 190 deletions
|
|
@ -157,7 +157,7 @@ pub mod operation_component {
|
|||
pub const HANDOFF: &str = "plano(handoff)";
|
||||
|
||||
/// Agent filter execution
|
||||
pub const AGENT_FILTER: &str = "plano(agent filter)";
|
||||
pub const AGENT_FILTER: &str = "plano(filter)";
|
||||
|
||||
/// Agent execution
|
||||
pub const AGENT: &str = "plano(agent)";
|
||||
|
|
@ -203,6 +203,7 @@ pub mod operation_component {
|
|||
pub struct OperationNameBuilder {
|
||||
method: Option<String>,
|
||||
path: Option<String>,
|
||||
operation: Option<String>,
|
||||
target: Option<String>,
|
||||
}
|
||||
|
||||
|
|
@ -212,6 +213,7 @@ impl OperationNameBuilder {
|
|||
Self {
|
||||
method: None,
|
||||
path: None,
|
||||
operation: None,
|
||||
target: None,
|
||||
}
|
||||
}
|
||||
|
|
@ -234,6 +236,15 @@ impl OperationNameBuilder {
|
|||
self
|
||||
}
|
||||
|
||||
/// Set the operation type (optional, for MCP operations)
|
||||
///
|
||||
/// # Arguments
|
||||
/// * `operation` - Operation type (e.g., "tool_call", "session_init", "notification")
|
||||
pub fn with_operation(mut self, operation: impl Into<String>) -> Self {
|
||||
self.operation = Some(operation.into());
|
||||
self
|
||||
}
|
||||
|
||||
/// Set the target (model name, agent name, or filter name)
|
||||
///
|
||||
/// # Arguments
|
||||
|
|
@ -246,7 +257,8 @@ impl OperationNameBuilder {
|
|||
/// Build the operation name string
|
||||
///
|
||||
/// # Format
|
||||
/// - With all components: `{method} {path} {target}`
|
||||
/// - With all components: `{method} {path} ({operation}) {target}`
|
||||
/// - Without operation: `{method} {path} {target}`
|
||||
/// - Without target: `{method} {path}`
|
||||
/// - Without path: `{method}`
|
||||
/// - Empty: returns empty string
|
||||
|
|
@ -258,7 +270,11 @@ impl OperationNameBuilder {
|
|||
}
|
||||
|
||||
if let Some(path) = self.path {
|
||||
parts.push(path);
|
||||
if let Some(operation) = self.operation {
|
||||
parts.push(format!("{} ({})", path, operation));
|
||||
} else {
|
||||
parts.push(path);
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(target) = self.target {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue