v1.0.7-preview.3
Pre-releaseFeature: tool search configuration
Tool search lets the model discover tools on demand instead of loading every tool definition up front. When the active tool count exceeds the deferral threshold, MCP and external tools are marked as deferred and surfaced through the built-in tool_search_tool. This release adds a toolSearch option to CreateSession/ResumeSession so applications can enable/disable the feature and tune the threshold. (#1933)
const session = await client.createSession({
toolSearch: { enabled: true, deferThreshold: 20 },
});var session = await client.CreateSessionAsync(new SessionConfig
{
ToolSearch = new ToolSearchConfig { Enabled = true, DeferThreshold = 20 },
});Tool results can now return toolReferences — a list of tool names chosen by a tool-search override — to narrow the active tool set before the next model turn.
Feature: in-process (FFI) transport for Python and Go
The Python and Go SDKs now support loading the Copilot runtime as a native shared library in-process, matching the existing .NET, TypeScript, and Rust implementations. This avoids spawning a child process and communicates over the runtime's C ABI instead of stdio or TCP. (#1975, #1976)
Python — experimental, no new dependencies (uses stdlib ctypes):
from copilot import CopilotClient, RuntimeConnection
client = CopilotClient(connection=RuntimeConnection.for_inprocess())Go — requires the copilot_inprocess build tag:
// build with: go build -tags copilot_inprocess
client, _ := sdk.NewClient(&sdk.ClientOptions{
Connection: &sdk.InProcessConnection{},
})The SDK selects and provisions the native runtime automatically. Per-client Env, WorkingDirectory, and Telemetry settings are not supported with in-process transport (they cannot be isolated in a shared host process). Set COPILOT_SDK_DEFAULT_CONNECTION=inprocess to use in-process transport by default across your application.
New contributors
@rinceyuanmade their first contribution in #1978
Generated by Release Changelog Generator · sonnet46 762.9K