Feedback: MCP tools not called by DeepSeek V4, reasoning_content on tool calls, jj colocated

Open
#186 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
43/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
rust

Research direction

Start by reading the MCP wrapper and system prompt construction, then inspect the provider adapter’s handling of DeepSeek V4 tool-call history and retry behavior. The issue suggests exposing tool names and descriptions or documenting a steering hint, and preserving or guarding against missing reasoning_content. Done means MCP tools can be called reliably and thinking-mode tool calls do not cause repeated HTTP 400 retries.

Written by the indexing model from the issue text.

Description

Feedback from a week of using infinity with DeepSeek V4 and jj. One small website task, not a benchmark.

  1. MCP tools were not called by the model. Through the MCP wrapper the model only sees <server>_list_tools and <server>_invoke_tool. Without a hint in the system prompt, DeepSeek V4 did not call them. We worked around it by appending an addendum to the system prompt on each request. Exposing tool names and descriptions directly, or a documented steering hint, would avoid this.
  2. DeepSeek V4 in thinking mode. Once tool calls are in the history, the API expects all earlier reasoning_content back. Otherwise it returns HTTP 400 and the agent retries in a loop. We disabled thinking in our provider adapter, which costs quality on hard tasks. A note in the provider docs or a guard against the retry loop would help.
  3. jj colocated with Git worked well (jj git init --colocate, bookmarks for the sandbox result, jj workspace add to inspect it). git log and GitHub kept working.
Dominant language
Rust
Stars
716
Forks
81
Avg merge
1d 18h
Merged PRs (30d)
11

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from hydro-project/infinity

All issues in hydro-project/infinity

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.