这是一个极简 demo:从 chat.json 读消息 → 调 Azure OpenAI Chat Completions(带 tools)→ 解析 tool_calls → 执行本地工具 → 回填 role=tool 消息到 chat.json,循环直到模型不再请求工具调用并输出最终回答。
依赖:bash、curl、jq
用法(agent.sh 会从环境变量读取 OPENAI_LLM_URL / OPENAI_LLM_TOKEN):
export OPENAI_LLM_URL='https://your-endpoint/chat/completions'
export OPENAI_LLM_TOKEN='your-token'
./agent.sh chat.json附:
tools.json:按 OpenAI Chat Completionstools参数格式整理后的工具定义tools/:本仓库内置的工具二进制(skill/webfetch/websearch)