llmrix_rust_sdk/model/
agent.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Deserialize, Default)]
5pub struct Agent {
6 pub id: i64,
7 pub name: String,
8 #[serde(rename = "type", default)]
9 pub agent_type: String,
10 #[serde(default)]
11 pub system_prompt: String,
12 #[serde(default)]
13 pub model_id: String,
14 #[serde(default)]
15 pub mcps: Vec<String>,
16 #[serde(default)]
17 pub skills: Vec<String>,
18 #[serde(default)]
19 pub metadata: serde_json::Value,
20 #[serde(default)]
21 pub introduce: String,
22 #[serde(default)]
23 pub outlines: Vec<serde_json::Value>,
24}
25
26#[derive(Debug, Default, Serialize)]
28pub struct AgentCreateRequest {
29 pub name: String,
30 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
31 pub agent_type: Option<String>,
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub system_prompt: Option<String>,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub model_id: Option<String>,
36 #[serde(skip_serializing_if = "Option::is_none")]
37 pub mcps: Option<Vec<String>>,
38 #[serde(skip_serializing_if = "Option::is_none")]
39 pub skills: Option<Vec<String>>,
40 #[serde(skip_serializing_if = "Option::is_none")]
41 pub introduce: Option<String>,
42}
43
44#[derive(Debug, Default, Serialize)]
46pub struct AgentUpdateRequest {
47 #[serde(skip_serializing_if = "Option::is_none")]
48 pub name: Option<String>,
49 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
50 pub agent_type: Option<String>,
51 #[serde(skip_serializing_if = "Option::is_none")]
52 pub system_prompt: Option<String>,
53 #[serde(skip_serializing_if = "Option::is_none")]
54 pub model_id: Option<String>,
55 #[serde(skip_serializing_if = "Option::is_none")]
56 pub mcps: Option<Vec<String>>,
57 #[serde(skip_serializing_if = "Option::is_none")]
58 pub skills: Option<Vec<String>>,
59 #[serde(skip_serializing_if = "Option::is_none")]
60 pub introduce: Option<String>,
61}
62
63#[derive(Debug, Clone, Deserialize, Serialize, Default)]
65pub struct Mate {
66 pub name: String,
67 #[serde(default, skip_serializing_if = "String::is_empty")]
68 pub introduce: String,
69 #[serde(default, skip_serializing_if = "String::is_empty")]
70 pub system_prompt: String,
71 #[serde(default, skip_serializing_if = "Option::is_none")]
72 pub sort: Option<i32>,
73}
74
75#[derive(Debug, Serialize)]
77pub(crate) struct SaveMatesRequest {
78 pub mates: Vec<Mate>,
79}