Please provide a detailed description of the error or issue you encountered. / 请详细描述您遇到的错误或问题。
运行 XAgentGen 示例任务,python run.py --task "find all the prime numbers <=100" --config-file "assets/xagentllama.yml"
报错 requests.exceptions.HTTPError: 502 Server Error: Bad Gateway for url: http://localhost:32080/download_workspace
Please provide the specific steps to reproduce the error. / 请提供复现错误的具体步骤。
Expected Behavior / 预期行为
Describe the behavior you expected to see. / 请描述您期望的正确行为。
Environment / 环境信息
Operating System / 操作系统:
Python Version / Python 版本:
Other Relevant Information / 其他相关信息:
Error Screenshots or Logs / 错误截图或日志
If possible, please provide relevant screenshots or logs of the error. / 如果可能,请提供相关的错误截图或日志文件。
Connected to pydev debugger (build 231.8109.197)
XAgentServer is running on cmd mode
XAgentServer log: XAgentServer/localstorage/interact_records/2023-12-29/66adedb552a34ee4b2e334e05e340187
init interaction: 66adedb552a34ee4b2e334e05e340187
Register logger into interaction of 66adedb552a34ee4b2e334e05e340187, done!
Register db into interaction of 66adedb552a34ee4b2e334e05e340187, done!
Register logger into XAgentServer of 66adedb552a34ee4b2e334e05e340187, done!
Start a new thread to run interaction of 66adedb552a34ee4b2e334e05e340187, done!
---config file---
assets/xagentllama.yml
---args---
{'task': 'find all the prime numbers <=100', 'mode': 'auto', 'quiet': False, 'enable_ask_human_for_help': False, 'config_file': 'assets/xagentllama.yml'}
server is running, the start query is find all the prime numbers <=100
-=-=-=-=-=-=-=Recorder Start-=-=-=-=-=-=-=
Current: None Node: query 0
-=-=-=-=-=-=-=Data -=-=-=-=-=-=-=
{
"task": "find all the prime numbers <=100",
"role_name": "Assistant",
"plan": []
}
-=-=-=-=-=-=-=Recorder End-=-=-=-=-=-=-=
-=-=-=-=-=-=-=Recorder Start-=-=-=-=-=-=-=
Current: None Node: config 0
-=-=-=-=-=-=-=Data -=-=-=-=-=-=-=
{
"api_keys": {
"xagentllm": [
{
"temperature": 0.2,
"top_p": 1.0,
"repetition_penalty": 1.2,
"frequency_penalty": 0.5,
"max_tokens": 16384,
"api_base": "http://127.0.0.1:32520/chat/completions"
}
]
},
"default_request_type": "xagent",
"default_completion_kwargs": {
"model": "xagentllm",
"temperature": 0.2,
"top_p": 1.0,
"request_timeout": 300,
"repetition_penalty": 1.2,
"frequency_penalty": 0.5,
"max_tokens": 16384
},
"enable_summary": true,
"summary": {
"single_action_max_length": 4096,
"max_return_length": 8192
},
"use_selfhost_toolserver": true,
"selfhost_toolserver_url": "http://localhost:32080",
"max_retry_times": 5,
"max_subtask_chain_length": 15,
"max_plan_refine_chain_length": 3,
"max_plan_tree_depth": 3,
"max_plan_tree_width": 5,
"max_plan_length": 4096,
"rapidapi_retrieve_tool_count": 0,
"enable_ask_human_for_help": false,
"tool_blacklist": [
"FileSystemEnv_print_filesys_struture"
],
"record_dir": null,
"experiment": {
"redo_action": false
},
"task": "find all the prime numbers <=100",
"mode": "auto",
"quiet": false,
"config_file": "assets/xagentllama.yml"
}
-=-=-=-=-=-=-=Recorder End-=-=-=-=-=-=-=
register tool server interface
lazy init tool server interface
ToolServer connected in http://localhost:32080
register function handler
register working memory function
register agent dispatcher
Constructing an AgentDispatcher: XAgentDispatcher
build all components, done!
Traceback (most recent call last):
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/urllib3/connectionpool.py", line 537, in _make_request
response = conn.getresponse()
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/urllib3/connection.py", line 461, in getresponse
httplib_response = super().getresponse()
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/http/client.py", line 1375, in getresponse
response.begin()
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/http/client.py", line 318, in begin
version, status, reason = self._read_status()
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/http/client.py", line 279, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/socket.py", line 705, in readinto
return self._sock.recv_into(b)
TimeoutError: timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/requests/adapters.py", line 486, in send
resp = conn.urlopen(
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/urllib3/connectionpool.py", line 845, in urlopen
retries = retries.increment(
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/urllib3/util/retry.py", line 470, in increment
raise reraise(type(error), error, _stacktrace)
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/urllib3/util/util.py", line 39, in reraise
raise value
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/urllib3/connectionpool.py", line 791, in urlopen
response = self._make_request(
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/urllib3/connectionpool.py", line 539, in _make_request
self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/urllib3/connectionpool.py", line 371, in _raise_timeout
raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='localhost', port=32080): Read timed out. (read timeout=10)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/mnt/nas3/users/guoyicheng/202312_Agent/XAgent/XAgent/toolserver_interface.py", line 192, in get_available_tools
response = requests.post(
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/requests/api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/requests/adapters.py", line 532, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='localhost', port=32080): Read timed out. (read timeout=10)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/mnt/nas3/users/guoyicheng/202312_Agent/XAgent/XAgentServer/server.py", line 53, in interact
xagent_core.build(xagent_param, interaction=interaction)
File "/mnt/nas3/users/guoyicheng/202312_Agent/XAgent/XAgent/core.py", line 209, in build
subtask_functions, self.tool_functions_description_list = self.function_handler.get_functions(
File "/mnt/nas3/users/guoyicheng/202312_Agent/XAgent/XAgent/function_handler.py", line 128, in get_functions
output = self.toolserver_interface.get_available_tools()
File "/mnt/nas3/users/guoyicheng/202312_Agent/XAgent/XAgent/toolserver_interface.py", line 206, in get_available_tools
raise Exception(f"Error when fetching available tools: {e}")
Exception: python-BaseException
Error when fetching available tools: HTTPConnectionPool(host='localhost', port=32080): Read timed out. (read timeout=10)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/mnt/nas3/users/guoyicheng/202312_Agent/XAgent/XAgentServer/server.py", line 106, in interact
raise XAgentRunningError(str(e)) from e
XAgentServer.exts.exception_ext.XAgentRunningError: Error when fetching available tools: HTTPConnectionPool(host='localhost', port=32080): Read timed out. (read timeout=10)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/mnt/nas3/users/guoyicheng/202312_Agent/XAgent/command.py", line 273, in task_handler
server.interact(interaction=interaction)
File "/mnt/nas3/users/guoyicheng/202312_Agent/XAgent/XAgentServer/server.py", line 109, in interact
xagent_core.close()
File "/mnt/nas3/users/guoyicheng/202312_Agent/XAgent/XAgent/core.py", line 223, in close
self.toolserver_interface.download_all_files()
File "/mnt/nas3/users/guoyicheng/202312_Agent/XAgent/XAgent/toolserver_interface.py", line 166, in download_all_files
response.raise_for_status()
File "/mnt/nas7/users/guoyicheng/packages/conda/miniconda3/envs/chatglm/lib/python3.10/site-packages/requests/models.py", line 1021, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 502 Server Error: Bad Gateway for url: http://localhost:32080/download_workspace
同时 服务端报错如下
xagent-ToolServerManager-1 | [2023-12-29 08:48:51 +0000] [7] [INFO] Node created: cc1e4eeb65ce2f590c98765f4c40b66d7ee6e56250168089d11a2f6512cb9f4d
xagent-ToolServerManager-1 | [2023-12-29 08:48:54 +0000] [7] [INFO] Node cc1e4eeb65ce health updated: starting -> healthy
xagent-ToolServerManager-1 | [2023-12-29 08:48:54 +0000] [8] [INFO] Node cc1e4eeb65ce health updated: starting -> healthy
xagent-ToolServerManager-1 | [2023-12-29 08:52:40 +0000] [7] [INFO] Request to node: http://192.168.64.10:31942/get_available_tools
xagent-ToolServerManager-1 | [2023-12-29 08:53:13 +0000] [7] [INFO] Request to node: http://192.168.64.10:31942/download_workspace
xagent-ToolServerManager-1 | Traceback (most recent call last):
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
xagent-ToolServerManager-1 | yield
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/anyio.py", line 34, in read
xagent-ToolServerManager-1 | return await self._stream.receive(max_bytes=max_bytes)
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 1132, in receive
xagent-ToolServerManager-1 | raise self._protocol.exception from None
xagent-ToolServerManager-1 | anyio.BrokenResourceError
xagent-ToolServerManager-1 |
xagent-ToolServerManager-1 | The above exception was the direct cause of the following exception:
xagent-ToolServerManager-1 |
xagent-ToolServerManager-1 | Traceback (most recent call last):
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 67, in map_httpcore_exceptions
xagent-ToolServerManager-1 | yield
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 252, in __aiter__
xagent-ToolServerManager-1 | async for part in self._httpcore_stream:
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 361, in __aiter__
xagent-ToolServerManager-1 | async for part in self._stream:
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 337, in __aiter__
xagent-ToolServerManager-1 | raise exc
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 329, in __aiter__
xagent-ToolServerManager-1 | async for chunk in self._connection._receive_response_body(**kwargs):
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 198, in _receive_response_body
xagent-ToolServerManager-1 | event = await self._receive_event(timeout=timeout)
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 212, in _receive_event
xagent-ToolServerManager-1 | data = await self._network_stream.read(
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpcore/_backends/anyio.py", line 31, in read
xagent-ToolServerManager-1 | with map_exceptions(exc_map):
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
xagent-ToolServerManager-1 | self.gen.throw(typ, value, traceback)
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
xagent-ToolServerManager-1 | raise to_exc(exc) from exc
xagent-ToolServerManager-1 | httpcore.ReadError
xagent-ToolServerManager-1 |
xagent-ToolServerManager-1 | The above exception was the direct cause of the following exception:
xagent-ToolServerManager-1 |
xagent-ToolServerManager-1 | Traceback (most recent call last):
xagent-ToolServerManager-1 | File "/app/main.py", line 263, in route_to_node
xagent-ToolServerManager-1 | response = await client.request(method,url,headers=headers,data=body)
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1559, in request
xagent-ToolServerManager-1 | return await self.send(request, auth=auth, follow_redirects=follow_redirects)
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1660, in send
xagent-ToolServerManager-1 | raise exc
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1654, in send
xagent-ToolServerManager-1 | await response.aread()
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpx/_models.py", line 915, in aread
xagent-ToolServerManager-1 | self._content = b"".join([part async for part in self.aiter_bytes()])
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpx/_models.py", line 915, in <listcomp>
xagent-ToolServerManager-1 | self._content = b"".join([part async for part in self.aiter_bytes()])
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpx/_models.py", line 933, in aiter_bytes
xagent-ToolServerManager-1 | async for raw_bytes in self.aiter_raw():
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpx/_models.py", line 991, in aiter_raw
xagent-ToolServerManager-1 | async for raw_stream_bytes in self.stream:
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 147, in __aiter__
xagent-ToolServerManager-1 | async for chunk in self._stream:
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 251, in __aiter__
xagent-ToolServerManager-1 | with map_httpcore_exceptions():
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
xagent-ToolServerManager-1 | self.gen.throw(typ, value, traceback)
xagent-ToolServerManager-1 | File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 84, in map_httpcore_exceptions
xagent-ToolServerManager-1 | raise mapped_exc(message) from exc
xagent-ToolServerManager-1 | httpx.ReadError
Additional Notes / 其他备注
If you have any additional information or notes, please add them here. / 如果有其他补充信息,请在此处添加。
Issue Description / 问题描述
Please provide a detailed description of the error or issue you encountered. / 请详细描述您遇到的错误或问题。
运行 XAgentGen 示例任务,python run.py --task "find all the prime numbers <=100" --config-file "assets/xagentllama.yml" 报错 requests.exceptions.HTTPError: 502 Server Error: Bad Gateway for url: http://localhost:32080/download_workspace
追踪发现是执行
xagent_core.build
过程中,output = self.toolserver_interface.get_available_tools()
报错,和后面close()
时,self.toolserver_interface.download_all_files()
报错。这两个命令都是请求ToolServerManager
并被转发给ToolServerNode
后报错 详细日志见后文Steps to Reproduce / 复现步骤
Please provide the specific steps to reproduce the error. / 请提供复现错误的具体步骤。
Expected Behavior / 预期行为
Describe the behavior you expected to see. / 请描述您期望的正确行为。
Environment / 环境信息
Error Screenshots or Logs / 错误截图或日志
If possible, please provide relevant screenshots or logs of the error. / 如果可能,请提供相关的错误截图或日志文件。
同时 服务端报错如下
Additional Notes / 其他备注
If you have any additional information or notes, please add them here. / 如果有其他补充信息,请在此处添加。