开发与工程 function-callingbashjavascriptpythonmodel-context-protocolaichatargc

LLM Functions

用 Bash、JavaScript 或 Python 函数构建可供 AIChat 调用的工具与智能体。

FollowAgents 评估 · FARS-2.0
待评估
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

LLM Functions 是一个将普通 Bash、JavaScript 和 Python 函数包装为 LLM 工具的项目。它通过注释自动生成工具的 JSON 声明,并用 argc 构建 bin 与 functions.json。智能体以“提示词 + 工具 + 文档”的目录结构定义,核心配置文件为 agents/<agent>/index.yaml。当前明确支持该项目的 CLI 只有 AIChat,使用者可将仓库链接到 AIChat 的 functions_dir,或设置 AICHAT_FUNCTIONS_DIR。项目还包含 MCP server,用于向 Model Context Protocol 暴露其工具和智能体,以及 MCP bridge,用于让 LLM Functions 使用外部 MCP 工具。

开发者在 tools/ 中编写 .sh、.js 或 .py 函数;Bash 工具可用 # @describe 和 # @option 注释声明接口,JavaScript 与 Python 示例则从函数注释和签名提供描述。将工具文件名写入 tools.txt、将智能体名写入 agents.txt 后,运行 argc build 生成 bin 和 functions.json,再运行 argc check 检查环境变量、Node/Python 依赖及 mcp-bridge server。每个智能体可在 agents/<agent>/ 中通过 index.yaml 定义 name、description、instructions、conversation_starters、variables 与 documents,并配置共享或专属工具。完成链接后,AIChat 可用 aichat --role %functions% 调用工具,或用 aichat --agent <agent> 调用智能体。

  1. 熟悉 Shell 的开发者需要把执行命令的脚本封装成函数调用工具,并从 AIChat 对话中触发它。
  2. Node.js 开发者希望将 exports.run 函数作为工具执行一段 JavaScript 逻辑。
  3. Python 开发者需要把带类型标注和文档字符串的 run 函数转为工具声明。
  4. 团队要创建带 instructions、variables 和 documents 的专用智能体,并为其配置共享工具与本地工具。
  5. 已经使用 AIChat 的用户想把本地函数仓库链接到 functions_dir 后,通过 --role 或 --agent 使用。
  6. 需要在 MCP 客户端与函数工具之间互通的开发者,可评估项目提供的 mcp/server 和 mcp/bridge。

这个 Agent 有哪些优点和局限?

优点
  • 可直接复用 Bash、JavaScript 和 Python 函数,而非要求学习专用工具定义语言。
  • argc build 可从代码注释自动生成 functions.json 工具声明。
  • 智能体目录同时容纳提示词、工具清单和 documents,配置边界清楚。
  • 同时提供向 MCP 暴露工具/智能体的 server,以及接入外部 MCP 工具的 bridge。
局限
  • 文档明确表示目前只有 AIChat CLI 支持 LLM Functions,采用边界较窄。
  • 运行前依赖 argc 与 jq;argc check 还会检查 Node/Python 依赖和 mcp-bridge server。
  • 外部 API 工具的认证、密钥管理和失败处理方式未在所给材料中说明。
  • 示例包含执行 shell、JavaScript 与 Python 代码的工具,实际部署时需要自行评估所接入工具的执行权限。

如何安装或部署这个 Agent?

先安装 README 列出的 argc 与 jq;要实际调用函数,还需安装 AIChat。克隆并进入仓库:
git clone https://github.com/sigoden/llm-functions
cd llm-functions
创建 tools.txt,每行一个工具文件名;创建 agents.txt,每行一个智能体名称。随后运行:
argc build
argc check
将当前目录链接到 AIChat 的 functions_dir:
ln -s "$(pwd)" "$(aichat --info | sed -n 's/^functions_dir\s\+//p')"
也可运行 argc link-to-aichat,或设置:
export AICHAT_FUNCTIONS_DIR="$(pwd)"
仓库未说明需要任何账号凭据或 API 密钥;如所选工具本身访问外部 API,其凭据配置方式未在所给材料中说明。

如何使用这个 Agent?

在 tools.txt 中列出如 get_current_weather.sh 和 execute_command.sh 的工具文件,在 agents.txt 中列出如 coder 和 todo 的智能体名称,执行 argc build 与 argc check。确认仓库已链接到 AIChat 后,可运行:
aichat --role %functions% what is the weather in Paris?
或:
aichat --agent todo list all my todos
自定义 Bash 工具以 eval "$(argc --argc-eval \"$0\" \"$@\")" 初始化 argc,并把结果写入 $LLM_OUTPUT;JavaScript 工具导出 exports.run,Python 工具定义 run。

这个 Agent 与同类方案有什么区别?

AIChat 是唯一被明确说明支持 LLM Functions 的 CLI;材料没有提供与其他 CLI 或智能体框架的功能对比。

常见问题

它能脱离 AIChat 直接作为通用 CLI 使用吗?
所给材料只明确 AIChat 支持 LLM Functions,并将 AIChat 作为调用入口;没有记录其他 CLI 的直接支持。
是否需要 API 密钥?
材料没有列出项目级必需凭据。具体工具可以与 API 交互,但其认证配置未被说明。
如何让工具出现在可调用列表中?
将工具文件名写入 tools.txt,然后运行 argc build 生成 bin 和 functions.json。
智能体能携带哪些配置?
index.yaml 可定义名称、描述、版本、instructions、对话开场、variables 与 documents,并可结合共享和专属工具。

相关 Agents