feat(channel): add tool status display and configurable message timeout
Show real-time tool execution status in channels with draft support
(e.g. Telegram with stream_mode=partial). During processing, the draft
message shows "Thinking..." and progressively adds tool lines like
"🔧 shell(ls -la)" as tools execute. The final response replaces
all status lines cleanly via finalize_draft.
Also makes the channel message timeout configurable via
agent.channel_message_timeout_secs (default 300s), replacing the
previously hardcoded constant.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
61a998cae3
commit
7df2102d9d
2 changed files with 109 additions and 21 deletions
|
|
@ -253,6 +253,10 @@ pub struct AgentConfig {
|
|||
pub parallel_tools: bool,
|
||||
#[serde(default = "default_agent_tool_dispatcher")]
|
||||
pub tool_dispatcher: String,
|
||||
/// Timeout in seconds for processing a single channel message (LLM + tools).
|
||||
/// Default 300s accommodates on-device LLMs (Ollama) which are slower than cloud APIs.
|
||||
#[serde(default = "default_channel_message_timeout_secs")]
|
||||
pub channel_message_timeout_secs: u64,
|
||||
}
|
||||
|
||||
fn default_agent_max_tool_iterations() -> usize {
|
||||
|
|
@ -267,6 +271,10 @@ fn default_agent_tool_dispatcher() -> String {
|
|||
"auto".into()
|
||||
}
|
||||
|
||||
fn default_channel_message_timeout_secs() -> u64 {
|
||||
300
|
||||
}
|
||||
|
||||
impl Default for AgentConfig {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
|
|
@ -275,6 +283,7 @@ impl Default for AgentConfig {
|
|||
max_history_messages: default_agent_max_history_messages(),
|
||||
parallel_tools: false,
|
||||
tool_dispatcher: default_agent_tool_dispatcher(),
|
||||
channel_message_timeout_secs: default_channel_message_timeout_secs(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue