Checklist
🐞 Detailed Description of the Problem
src/main/java/com/openjiuwen/harness/prompts/tools 下部分 Tool Metadata 的中文字符串已经发生错误转码。
文件本身是 UTF-8,但源码内容已经是类似“鍚戠敤鎴”“鎵ц”的乱码,因此不是 IDE 或终端显示配置问题。
已确认受影响的文件:
AgentModePromptToolProviders.java
AskUserMetadataProvider.java
AudioPromptToolProviders.java
BashMetadataProvider.java
最小复现代码:
import com.openjiuwen.harness.prompts.tools.AskUserMetadataProvider;
import com.openjiuwen.harness.prompts.tools.BashMetadataProvider;
public class ToolMetadataEncodingRepro {
public static void main(String[] args) {
System.out.println(
new AskUserMetadataProvider().getDescription("cn"));
System.out.println(
new BashMetadataProvider().getDescription("cn"));
}
}
实际输出包含:
鍚戠敤鎴锋彁闂互鏀堕泦淇℃伅...
鎵ц Shell 鍛戒护骞惰繑鍥炶緭鍑...
AskUserMetadataProvider 的英文文本也存在:
options 鈥?system provides this automatically
这些 Provider 会被 HarnessPromptToolsPackage 注册并用于构建 Tool Card,因此乱码可能进入模型上下文,影响中文环境下的工具选择、参数生成和 ask_user 交互。
仓库中同时存在另一套内容正常的 Provider:
src/main/java/com/openjiuwen/harness/prompts/sections/tools
建议修复时确认 HarnessPromptToolsPackage 和 ToolMetadataRegistry 两套注册体系是否需要统一。
期望结果:
- 中文 Tool description 和参数说明为正常 UTF-8 中文。
- 英文文本不包含错误转码字符。
- 从原始 Python 实现或正确源码恢复文本,避免对含
? 的乱码直接自动反向转码。
- 增加中文 Metadata 单元测试或乱码特征扫描。
- 确认两套 Tool Metadata Provider 的定位,避免同名工具描述不一致。
Detailed Environment Information Description
- Repository:
openJiuwen/agent-core-java
- Branch:
develop
- Commit:
406188a1b4214a01a58ad5952e58293d57882d23
- Project version:
0.1.14
- OS: macOS 26.3.1, Apple Silicon/aarch64
- JDK: Eclipse Temurin OpenJDK 17.0.19
- Maven: 3.9.16
- Default locale:
zh_CN_#Hans
- Platform encoding: UTF-8
file -I result: affected Java source files are reported as charset=utf-8
Additional Information
Version Information
Thanks for your contribution 🎉!
Checklist
🐞 Detailed Description of the Problem
src/main/java/com/openjiuwen/harness/prompts/tools下部分 Tool Metadata 的中文字符串已经发生错误转码。文件本身是 UTF-8,但源码内容已经是类似“鍚戠敤鎴”“鎵ц”的乱码,因此不是 IDE 或终端显示配置问题。
已确认受影响的文件:
AgentModePromptToolProviders.javaAskUserMetadataProvider.javaAudioPromptToolProviders.javaBashMetadataProvider.java最小复现代码:
实际输出包含:
AskUserMetadataProvider的英文文本也存在:这些 Provider 会被
HarnessPromptToolsPackage注册并用于构建 Tool Card,因此乱码可能进入模型上下文,影响中文环境下的工具选择、参数生成和ask_user交互。仓库中同时存在另一套内容正常的 Provider:
建议修复时确认
HarnessPromptToolsPackage和ToolMetadataRegistry两套注册体系是否需要统一。期望结果:
?的乱码直接自动反向转码。Detailed Environment Information Description
openJiuwen/agent-core-javadevelop406188a1b4214a01a58ad5952e58293d57882d230.1.14zh_CN_#Hansfile -Iresult: affected Java source files are reported ascharset=utf-8Additional Information
Version Information
Thanks for your contribution 🎉!