Skip to main content

abu_agent/
error.rs

1use abu_base::chat::ChatRequestBuilderError;
2use abu_mcp::McpError;
3use abu_skill::SkillError;
4use abu_tool::ToolError;
5
6// #[derive(Debug, thiserror::Error)]
7#[thiserrorctx::context_error]
8pub enum AgentError {
9    #[error(transparent)]
10    Io(#[from] std::io::Error),
11
12    #[error(transparent)]
13    Skill(#[from] SkillError),
14
15    #[error(transparent)]
16    Memory(Box<dyn std::error::Error>),
17
18    #[error(transparent)]
19    SerdeJson(#[from] serde_json::Error),
20
21    #[error(transparent)]
22    Mcp(#[from] McpError),
23    
24    #[error(transparent)]
25    Tool(#[from] ToolError),
26
27    #[error("Unsupport tool {0}")]
28    UnsupportTool(String),
29
30    #[error("chat provide error: {0}")]
31    ChatProvider(Box<dyn std::error::Error + Sync + Send + 'static>),
32
33    #[error(transparent)]
34    EnvVar(#[from] std::env::VarError),
35
36    #[error(transparent)]
37    Dotenv(#[from] dotenv::Error),
38    
39    #[error("Except messgae {0}")]
40    ExceptMessage(&'static str),
41
42    #[error(transparent)]
43    ChatRequest(#[from] ChatRequestBuilderError),
44
45    #[error("no choise in response")]
46    NoChoise,
47}