Hey! Your Gopilot Assist looks really cool! ๐ฎ
Regarding tool calling formats - I actually use the standard OpenAI format that gets sent directly to the API server. Looking at my chat history structure, the overall format is:
{
"timestamp": "...",
"model": "...",
"temperature": 0.0,
"message_count": 5,
"messages": [
{
"role": "system",
"content": "..."
},
{
"role": "user",
"content": "..."
},
{
"role": "assistant",
"content": "",
"tool_calls": [
{
"id": "call_...",
"type": "function",
"function": {
"name": "...",
"arguments": "{\"command\":\"...\",\"description\":\"...\"}"
}
}
]
},
{
"role": "tool",
"content": "Command: ...\nDescription: ...\nExit Code: 0\nStdout: ...\nStderr: ...",
"tool_call_id": "call_..."
},
{
"role": "user",
"content": "..."
}
],
"tools_count": 10,
"tools": ["run_shell_command", "list_directory", "read_file", ...]
}
So yeah, I just send this JSON structure directly to the API server - no custom parsing needed on my end.
Your simplified format looks really clean for rapid development! Actually I've also encountered some problems with the tool usage formats when switching between deepseek, gemini, and anthropic APIs. The parentheses handling for multiline strings is definitely a challenge. Since my primary focus is on replicating the thinking and planning ability of Claude Code, I haven't devoted much time to the tool calling format yet. Thanks for your sharing and I'll keep an eye on this part!
My experience: I'm an NLP researcher working on LLM for Code (e.g. the SWE-bench task), so I've been exploring different approaches in LLM agent planning and tool calling. I hope the Terminal-Agent
project can serve as a starting point for the community to enable more advanced features in coding agents that work in the terminal, developing from the ground up.
BTW, if you're interested in joining our project development, we can share some API budget and GPU support (although the GPU part may not be useful, lol) to work together and make the agent more powerful! ๐