agentscope-ai / agentscope-ai/agentscope-java

k8s沙箱WorkspaceManager.listKnowledgeFiles报错

Đang mở
#2,758 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
area/harness bug
Ngôn ngữ chính
Java
Star
5.6k
Fork
1.3k
Merge trung bình
4 ngày 12 giờ
Pull request đã merge (30 ngày)
77

Mô tả

# 版本

2.0.1

# 环境

window10 , Docker desktop + k8s + Agent Sandbox v0.5.4

# 问题描述

智能体对话过程中报异常:
`
java.nio.file.InvalidPathException: Illegal char <:> at index 25: Failed to execute command: [Errno 2] No such file or directory: 'cd'
at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:232)
at java.base/java.nio.file.Path.resolve(Path.java:515)
at io.agentscope.harness.agent.workspace.WorkspaceManager.listKnowledgeFiles(WorkspaceManager.java:327)
`
用debug模式进入listKnowledgeFiles方法内部,调用堆栈如下:
`
CommandExecutor.run(String,Duration)
KubernetesSandbox.doExec(RuntimeContext,String,int)
AbstractBaseSandbox.exec(RuntimeContext,String,Integer)
SandboxBackedFilesystem.execute(RuntimeContext,String,Integer)
BaseSandboxFilesystem.glob(RuntimeContext,String,String)
WorkspaceManager.listKnowledgeFiles(RuntimeContext)
WorkspaceContextMiddleware.buildKnowledgeBlock(RuntimeContext,String,Path)
WorkspaceContextMiddleware.buildWorkspaceSection(RuntimeContext)
WorkspaceContextMiddleware.onSystemPrompt(Agent,RuntimeContext,String)
`
进入KubernetesSandbox.doExec()方法的的cmd串是:
`find 'knowledge' -type f -name '*' 2>/dev/null | sort | while IFS= read -r f; do size=$(stat -c '%s' "$f" 2>/dev/null || echo 0); mtime=$(stat -c '%Y' "$f" 2>/dev/null || echo 0); printf '%s\t%s\t%s\n' "$f" "$size" "$mtime"; done`
进入CommandExecutor.run()方法的cmd是:
`cd '/workspace' && (find 'knowledge' -type f -name '*' 2>/dev/null | sort | while IFS= read -r f; do size=$(stat -c '%s' "$f" 2>/dev/null || echo 0); mtime=$(stat -c '%Y' "$f" 2>/dev/null || echo 0); printf '%s\t%s\t%s\n' "$f" "$size" "$mtime"; done)`

CommandExecutor.run方法内部调用SandboxConnector.sendRequest()返回的resp.body值为:
`{"stdout":"","stderr":"Failed to execute command: [Errno 2] No such file or directory: 'cd'","exit_code":1}`
由此得到开头抛出的异常信息。

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.