技能md文件对 LLM提问怎么解析文本并执行名命令:“生成命令- bash 块 “和“(function calling) 返回 JSON“ 两种方式

技能md文件对 LLM提问怎么解析文本并执行名命令:“生成命令- bash 块 “和“(function calling) 返回 JSON“ 两种方式

LLM提问:“生成命令"和"返回 JSON” 两种方式解析

目录

    • LLM提问:"生成命令"和"返回 JSON" 两种方式解析
    • 先厘清:这里其实有三种不同做法
    • A(命令) vs C(自己解析JSON)优劣
    • 更推荐的第四条路:B 结构化工具调用(function calling)
    • 还有哪些方式
    • 怎么选(场景化建议)
    • 先分清:这里的"命令"有两种形态
    • 路径一:SKILL.md 里的 bash 命令,怎么执行
    • 路径二:skill_tool.py 把技能包成结构化工具(更规范的执行方式)

先厘清:这里其实有三种不同做法

做法LLM 实际输出什么谁来解析/执行
A. 生成命令(本技能用的)一段 shell 命令文本download_source.py --filters '[...]'shell 执行 + 脚本内argparse/json.loads
B. 结构化工具调用(function calling)一个 JSON:{tool:"download", args:{scenario:"X2D",...}}Agent 框架按 schema 校验后调用函数
C. 返回自由 JSON/文本一段 JSON 或自然语言你自己写代码去json.loads+ 校验

你说的"要执行的命令"是 A,“解析 JSON"更像 C。而现代 agent 最主流的其实是B——注意 B 本质上 LLM 也是"返回