Tools not available when using custom BASE_URL with local API server
- 主要语言
- Shell
- 星标
- 11.2k
- 派生
- 1.9k
- 平均合并
- 14 小时 16 分钟
- 30 天内合并 PR
- 6
描述
### Describe the bug
## Description
When connecting GitHub Copilot CLI to a local API server via custom `BASE_URL`, the tools exposed by the server (bash, view, edit, curl, etc.) are not recognized or made available to the agent, even though the server
correctly exposes them in OpenAI-compatible format.
## Environment
- **Copilot CLI version:** 1.0.34
- **Model:** claude-sonnet-4.5
- **Configuration:**
- `BASE_URL=http://localhost:8642/v1`
- `COPILOT_OFFLINE=true`
- Local API server (Hermes) running on port 8642
- Server exposes tools in OpenAI format via `/v1/chat/completions`
## Expected Behavior
When the local API server exposes tools in the OpenAI-compatible format, Copilot CLI should recognize and make these tools available to the agent, similar to how it works with the default GitHub Copilot backend.
## Actual Behavior
Only a limited set of tools are available (`memory`, `session_search`). Standard tools like `bash`, `view`, `edit`, `curl`, `grep`, `glob` are not accessible, even though:
- The server correctly returns tool definitions in API responses
- The same server works with tools when accessed through other clients
- The tools are properly formatted according to OpenAI function calling spec
## Steps to Reproduce
1. Set up a local API server that implements OpenAI-compatible `/v1/chat/completions` endpoint with tools
2. Configure Copilot CLI with custom BASE_URL pointing to local server
3. Start a Copilot CLI session
4. Attempt to use standard tools (bash, view, edit, etc.)
5. Observe that tools are not available
## Workaround Attempted
Disabled all tools in the API server config (`platform_toolsets.api_server: []`) to run in pure text mode, but this defeats the purpose of having a local agent with full tooling capabilities.
## Request
Please add support for recognizing and utilizing tools exposed by custom BASE_URL endpoints, enabling full local/self-hosted agent deployments with complete tooling functionality.
## Additional Context
This limitation prevents using Copilot CLI as a frontend for self-hosted or local AI agent infrastructure, which would be valuable for:
- Privacy-sensitive environments
- Custom tool development
- Air-gapped deployments
- Local model experimentation
### Affected version
GitHub Copilot CLI 1.0.34.
### Steps to reproduce the behavior
_No response_
### Expected behavior
Connect to a remote Server like Hermes Agent:
export COPILOT_PROVIDER_BASE_URL=http://localhost:8642/v1
export COPILOT_PROVIDER_API_KEY=api-key-value
export COPILOT_MODEL=claude-sonnet-4.5
export COPILOT_OFFLINE=true
### Additional context
_No response_
贡献指南
调研方向
未指定源文件或测试。首先使用文档中说明的 BASE_URL、provider 变量和兼容 OpenAI 的 /v1/chat/completions 端点重现该会话,然后跟踪返回的工具定义在哪里被处理。当自定义端点公开的工具能够被 agent 识别并使用,同时现有行为保持不变时,即视为完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- shell
- 领域
- api, cli
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100