后端核心实现: - 新增 wait_coordinator:释放/重获取 serial_lock 的 in-tool waiting 模式,替代旧的 break-exit 方案 - 新增 wait_for_subagents 工具:select! 等待子代理完成/用户消息/超时,支持 try_drain 批量消费 - task 工具异步 spawn 路径:CancellationToken 注册表 + RAII guard + Semaphore 并发限流 - process exit 安全检查:pending 子代理存在时抑制 ExecutionCompleted - 崩溃恢复:启动时标记 running->interrupted,history 加载时对账占位 /stop 取消流程修复: - wait_coordinator select! 添加 cancel 分支,完整清理状态 - ToolContext 注入 cancel_rx(watch::Receiver clone) - agent_loop 工具执行 select! 对 wait 工具跳过竞速,防止 drop coordinator 清理逻辑 - 子代理完成状态通过 execution_completed metadata 传播 存储层: - pending_subagents 表 + 条件 UPDATE - mark_all_running_as_interrupted 崩溃恢复
20 lines
580 B
Rust
20 lines
580 B
Rust
pub mod error;
|
|
pub mod prompt;
|
|
pub mod repository;
|
|
pub mod runtime;
|
|
pub mod tool;
|
|
pub mod types;
|
|
|
|
pub use error::TaskError;
|
|
pub use prompt::SubagentPromptBuilder;
|
|
pub use repository::{InMemoryTaskRepository, TaskRepository};
|
|
pub use runtime::{
|
|
DefaultSubAgentRuntime, StaticSystemPromptProvider, SubAgentRuntime, SubAgentRuntimeConfig,
|
|
SubagentCatalog,
|
|
};
|
|
pub use tool::TaskTool;
|
|
pub use types::{
|
|
SubagentDef, SubagentResult, SubagentSource, SubagentStatus, SubagentType, TaskDefinition,
|
|
TaskHandle, TaskSession, TaskSessionState, TaskToolArgs, TaskToolResult,
|
|
};
|