Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions src/constants/prompts.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@
TOOL_RULES: str = """<tool_rules>
<call_format>
工具调用格式:
<func_call>
<func_name>工具名称</func_name>
<func_call name="工具名称">
<param name="参数名称">参数值</param>
</func_call>
注意:完全按照所示使用 <func_call> 包装器,不多也不少
Expand All @@ -29,17 +28,15 @@
你可以在一个响应中多次调用工具. 完全按顺序生成所有所需的 <func_call> 块,
然后**停止**. 它们之间使用空行分隔:

<func_call>
<func_name>regex_search</func_name>
<func_call name="regex_search">
<param name="pattern">func_call</param>
<param name="path">src</param>
<param name="context">3</param>
<param name="file_pattern">*.py</param>
<param name="limit">256</param>
</func_call>

<func_call>
<func_name>stat</func_name>
<func_call name="stat">
<param name="path">README.md</param>
</func_call>

Expand Down
3 changes: 1 addition & 2 deletions src/core/input_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,9 @@ def parse_func_call(content: str, warns: list[str]) -> tuple[str, dict]:
inner = re.sub(r"^<func_call\b", "", content)
inner = re.sub(r"</func_call>$", "", inner).strip()

# 检查是否是非标准 func_call 格式(带 name 属性)
# 提取函数名 — 优先使用 name 属性格式 (标准格式)
func_call_attr_match = re.match(r'<func_call\s+name="([^"]*)"\s*>', content)
if func_call_attr_match:
warns.append("检测到非标准格式:func_call 标签包含 name 属性,尝试从属性中提取函数名")
func_name = func_call_attr_match.group(1).strip()
else:
# 尝试标准 func_name 标签
Expand Down
3 changes: 1 addition & 2 deletions src/utils/generate_help_text.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ def generate_help_text(cmds: list[Command]) -> str:
lines.append("[dim]使用 XML 标签调用工具,格式如下:[/dim]")
lines.append(
"""[yellow bold]
<func_call>
<func_name>工具名称</func_name>
<func_call name="工具名称">
<param name="参数名称">参数值</param>
</func_call>
[/yellow bold]
Expand Down
2 changes: 1 addition & 1 deletion src/workspace/tools/base_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ def to_doc(self) -> str:

def to_func_call(self) -> str:
"""将工具转换为标准格式"""
func_call: str = f"<func_call>\n <func_name>{self.name}</func_name>\n"
func_call: str = f'<func_call name="{self.name}">\n'
for name, params in self.params.items():
func_call += (
f' <param name="{name}">'
Expand Down