dsh-dashscope-tool-adapter
其他 活跃维护

dsh-dashscope-tool-adapter

Uersx/dsh-dashscope-tool-adapter

阿里云DashScope灵积平台的工具调用规范,自动完成格式转换,无需手动调整参数即可开箱即用,减少跨平台工具接入的适配工作量

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
TypeScript
主要语言
None
开源协议
17 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:Uersx/dsh-dashscope-tool-adapter
git clone https://github.com/Uersx/dsh-dashscope-tool-adapter.git
git clone git@github.com:Uersx/dsh-dashscope-tool-adapter.git
README.md master

dsh-dashscope-tool-adapter

DSH plugin: adapts DashScope / 阿里云百炼 DeepSeek endpoints that lack native tool calling.

Problem

DashScope's OpenAI-compatible endpoint (https://dashscope.aliyuncs.com/compatible-mode/v1) does not support native tool calling (function calling) for DeepSeek models. When DSH sends tool definitions, the API either ignores them or rejects the request.

Solution

This plugin converts tool definitions into prompt text and parses the model's text response for <|tool_call|> markers. It then constructs standard BlockAssembler-compatible tool-call chunks, which the DSH agent loop executes natively.

  • Non-DashScope providers: untouched, native tool calling works as usual.
  • DashScope providers: tools are described in the system prompt, and the model calls them via text markers.

Installation

dsh plugin add github:Uersx/dsh-dashscope-tool-adapter

Or manually:

dsh plugin --profile web add github:Uersx/dsh-dashscope-tool-adapter

How it works

  1. A systemPrompt.section() injects text-based tool descriptions into the system prompt.
  2. The llm/stream waterfall intercepts only DashScope calls.
  3. The model outputs <|tool_call|>{"name":"...","arguments":{...}}</|tool_call|> in its text.
  4. The plugin parses these markers and constructs standard tool-call-delta / block-end chunks.
  5. The DSH agent loop executes the tools natively.

License

MIT