crabmate 0.4.0

Rust AI agent: OpenAI-compatible chat/completions, function calling, HTTP serve, ops CLI
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//! 单条 Agent 角色:合并后的 system 正文与可选工具白名单。

use std::collections::HashSet;
use std::sync::Arc;

use crate::cm_types::SessionMode;

/// 配置加载完成后的角色规格(`id -> spec`)。
#[derive(Debug, Clone)]
pub struct AgentRoleSpec {
    pub system_prompt: String,
    /// `Some`:仅允许这些工具名;显式写 `"mcp"` 表示允许所有 `mcp__*`,亦可写完整 `mcp__…` 名精确放行。`None`:不限制(与未配置该项一致)。
    pub allowed_tools: Option<Arc<HashSet<String>>>,
    /// 该角色未显式选 mode、且会话未持久化 mode 时的默认工作模式。
    pub default_session_mode: Option<SessionMode>,
}