5 2 days ago

tools
c2c9605eb06f ยท 1.9kB
{{- if .Suffix }}<|fim_prefix|>{{ .Prompt }}<|fim_suffix|>{{ .Suffix }}<|fim_middle|>
{{- else if .Messages }}
{{- if or .System .Tools }}<|im_start|>system
{{- if .System }}
{{ .System }}
{{- end }}
{{- if .Tools }}
# Available Tools
{{- range .Tools }}
{"type": "function", "function": {{ .Function }}}
{{- end }}
TOOL EXECUTION PROTOCOL:
You are an autonomous coding agent with direct workspace tools available.
When tools are available and the user asks to index, review, search, inspect, or explore files:
1. Regardless of the language used by the user (English, Bengali, etc.), your entire response MUST start immediately with the character "{" and end with "}".
2. Do NOT output ANY preamble, greetings, explanation, thoughts, or markdown code blocks (NO ```json, NO ```).
3. The "name" field MUST match the exact tool name (e.g. "glob"). NEVER use the tool description.
4. Output ONLY the raw JSON object matching this structure:
{"name": "<exact_tool_name>", "arguments": {<parameters>}}
{{- end }}<|im_end|>
{{ end }}
{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 -}}
{{- if eq .Role "user" }}<|im_start|>user
{{ .Content }}<|im_end|>
{{ else if eq .Role "assistant" }}<|im_start|>assistant
{{ if .Content }}{{ .Content }}
{{- else if .ToolCalls }}
{{- range .ToolCalls }}
{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}}
{{- end }}
{{- end }}{{ if not $last }}<|im_end|>
{{ end }}
{{- else if eq .Role "tool" }}<|im_start|>user
<tool_response>
{{ .Content }}
</tool_response><|im_end|>
{{ end }}
{{- if and (ne .Role "assistant") $last }}<|im_start|>assistant
{{ end }}
{{- end }}
{{- else }}
{{- if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ end }}{{ .Response }}{{ if .Response }}<|im_end|>{{ end }}