Fix/2026 6 24 tool name fix 1 - #41
Merged
Merged
Conversation
The global rename was too invasive (24 files, 160+ lines) for what is purely an OpenAI API boundary constraint. Restoring internal dot-notation naming (e.g. note.read, web.search) and will implement API-level mapping in provider_impl.rs instead.
OpenAI enforces ^[a-zA-Z0-9_-]+$ for function/tool names — dots are not allowed. Instead of renaming all internal tools globally, translate at the API boundary only: - convert_tools(): dot → hyphen when sending tool definitions - serialize_messages(): dot → hyphen in assistant tool_call names - chat_stream(): hyphen → dot when parsing response tool calls This is lossless because the internal naming regex forbids hyphens, making the mapping bijective. Also fixes content:null handling for assistant messages without tool_calls.
- Rewrite prompt with 4-phase workflow: decompose & search, deep read, knowledge base cross-reference, synthesize & save - Output format now includes comparison tables, detailed per-solution analysis, and actionable recommendations - Add web.read_pdf to allowed tools for papers and whitepapers - Increase max_tool_calls 15→25 and timeout 120s→180s for deeper coverage - Update name to '方案调研' and description to reflect solution comparison focus - Bump version to 0.2.0
…ll execution Instrument the three layers that can cause a skill to appear stuck: - agent_loop: log each iteration (msg count, est tokens, budget usage), tool execution results (duration, result size), budget exhaustion, and context pressure triggers - provider_impl: log HTTP request start (model, msg count, timeout), SSE stream progress (chunk count, idle time), stream errors with timing context - skill_tool: log skill start (timeout, limits) and completion/timeout with elapsed time All output goes to stderr via eprintln!, consistent with existing project convention. Prefixed with [agent_loop], [provider], [skill_tool] for easy grep filtering.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
摘要
变更类型
检查清单
npm run build(若改动前端)cd src-tauri && cargo test(若改动 Rust)备注