MCPcopy Create free account
hub / github.com/AI45Lab/Code / build_agent_session

Function build_agent_session

core/src/agent_api/session_builder.rs:88–274  ·  view source on GitHub ↗
(
    agent: &Agent,
    workspace: String,
    llm_client: Arc<dyn LlmClient>,
    opts: &SessionOptions,
)

Source from the content-addressed store, hash-verified

86}
87
88pub(super) fn build_agent_session(
89 agent: &Agent,
90 workspace: String,
91 llm_client: Arc<dyn LlmClient>,
92 opts: &SessionOptions,
93) -> Result<AgentSession> {
94 let canonical = safe_canonicalize(Path::new(&workspace));
95
96 let capabilities = build_session_capabilities(SessionCapabilityInput {
97 code_config: &agent.code_config,
98 base_config: &agent.config,
99 workspace: &canonical,
100 llm_client: Arc::clone(&llm_client),
101 opts,
102 global_mcp: agent.global_mcp.as_ref(),
103 cached_global_mcp_tools: agent
104 .global_mcp_tools
105 .lock()
106 .expect("global_mcp_tools lock poisoned")
107 .clone(),
108 });
109 let tool_executor = capabilities.tool_executor;
110 let trace_sink = capabilities.trace_sink;
111 let agent_registry = capabilities.agent_registry;
112 let tool_defs = capabilities.tool_defs;
113 let context_providers = capabilities.context_providers;
114 let effective_registry = capabilities.skill_registry;
115 let subagent_tasks = capabilities.subagent_tasks;
116
117 let prompt_slots = opts
118 .prompt_slots
119 .clone()
120 .unwrap_or_else(|| agent.config.prompt_slots.clone());
121
122 let session_id = opts
123 .session_id
124 .clone()
125 .unwrap_or_else(|| uuid::Uuid::new_v4().to_string());
126
127 let runtime = build_session_runtime(SessionRuntimeInput {
128 code_config: &agent.code_config,
129 workspace: &canonical,
130 session_id: &session_id,
131 opts,
132 tool_executor: Arc::clone(&tool_executor),
133 });
134
135 let resolved_memory = resolve_session_memory(opts);
136 let memory = resolved_memory.memory;
137 let init_warning = resolved_memory.init_warning;
138
139 let base = agent.config.clone();
140 let auto_delegation = resolve_auto_delegation_config(&agent.code_config, opts);
141 let config = AgentConfig {
142 prompt_slots,
143 tools: tool_defs,
144 security_provider: opts.security_provider.clone(),
145 permission_checker: opts.permission_checker.clone(),

Callers 3

build_sessionMethod · 0.85
create_sessionFunction · 0.85
resume_sessionFunction · 0.85

Calls 10

safe_canonicalizeFunction · 0.85
build_session_runtimeFunction · 0.85
resolve_session_memoryFunction · 0.85
resolve_session_storeFunction · 0.85
register_sessionFunction · 0.85
expectMethod · 0.80
cloneMethod · 0.45

Tested by

no test coverage detected