1use abu_base::chat::ChatRequestBuilderError;
2use abu_mcp::McpError;
3use abu_skill::SkillError;
4use abu_tool::ToolError;
5
6#[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}