Skip to content

【pi 使用遇到的 bug】 #7

Description

@boyoi

问题: devin-2api 把"并行工具调用"的历史消息转换成 Devin 格式时搞错了——Devin 要求同一次发出的多个工具调用放在一条消息里,但适配器拆成了多条消息发过去,Devin 直接拒绝

具体过程:

  1. 模型一轮里要同时调 2 个工具(ToolSearch_1 + Bash_2)
  2. pi-desktop 走 OpenAI Responses 协议,协议里每个 function_call 是独立条目,客户端如实传回:

assistant: 调用 ToolSearch_1
assistant: 调用 Bash_2
tool: ToolSearch_1 的结果
tool: Bash_2 的结果

  1. devin-2api 原样转成两条 Devin 的 SYSTEM 消息,每条只带 1 个 toolCall
  2. Devin 看到"两条 assistant 消息各带一个调用,后面跟两个结果"这种序列,认为是非法格式 → invalid_argument

Devin 实际要求的格式:

assistant: 调用 [ToolSearch_1, Bash_2] ← 一条消息,toolCalls 数组放两个
tool: ToolSearch_1 的结果
tool: Bash_2 的结果

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions