[提案] 标准化工具输出模式的发现 #12FactorTools

作者: Elijas创建于 2025年4月19日更新于 2025年4月27日

[!TIP] (中文(简体) ). tldr2: (1) LLM应该能够确切地知道哪类数据会在用Api来绕来绕去之前返回,这种亲和计划. (2) 让工具返回较大的输出,并让llms根据输出计划预写"jq"(或类似)过滤/取出查询. 例如,LLM可以一步内在产出上进行List top users(counts=10)'jq'.[...].email',并且只有效检索它实际想要的数据。

[!TIP] (中文(简体) ). TL; DR: 依据** 第21期**(将结构化的结果如"Q":"约翰"取而代之"名字为"约翰"): -- ** 问题**:客户端(LLMs,框架)缺乏事先了解工具结果schema的标准方式(类似于无法发现的输入方案)。 -建议:引入一个标准机制来发现工具输出方案(如JSON Schema). -- -- 关键LLM效益:启用更好的规划托肯优化([Factor 3](https://GitHub.com/humanlayer/12-facters-agents/blob/main/content/factor-3-own- your-context-window.md.)). 了解这个计划可以让LLM请求特定的数据子集(例如取出仅仅是‘result.name'),而不是将大而动词的结果摄入上下文窗口. -** 其他效益**:框架验证,开发者工具(代码-gen,类型安全),完整的工具合同. 翻译: 本提议是系列建议的一部分。 检查其它 [这里] (https://GitHub.com/humanlayer/12-facters-agents/issues?q=作者%3 Aelijas%20%2312factortools%20sort%3Acreated-asc).

-- -- . . .

导 言

首先,感谢您为12Factor代理指南所做的出色工作! 它为建立强大和可维护的代理系统提供了一套真正宝贵的原则。

在以前讨论的基础上,我想就工具产出结构的可发现性提出一点意见。

{\fn方正粗倩简体\fs12\an8\1cHFFFF00\b0}背景

*** 第21期提议,工具必须** 将结构化数据作为其犬目结果(例如:"结构化的-结果":{"出品":15}}`"出出产"出产"出产"出产"出出产"出产"出产"出产"出出产"出产"出产"出产"出产"出产"出产"出产"出产"出产"出"出产"出"出产"出产"出"出产"出产"出"出产"出"出"出出出产"出"出产"出产"出"出产"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"

  • 现有原则/** 因素4**(通常通过MCP等协议执行)已经强调工具输入参数的标准化发现,典型的做法是通过`工具/清单'等方法使用JSON Schema。
  • 这造成不对称:我们可以在程序上发现如何将 * 称为 * 一种工具,但不能找到什么结构来* 期望回* 。

差距/建议

目前,对于客户端(无论是代理框架,LLM,还是开发者工具)在12Factor原则内没有推荐的标准机制,以在程序上确定一个工具返回的结构化数据的预期schema.

我提议,指南应建议或纳入一个** 标准机制,用于发现工具的输出计划**,补充现有输入计划发现做法。

** 反思/价值建议:**

事先了解产出计划可带来重大好处:

  1. ** 加强LLM规划:** 一个LLM可以更好的计划 . . . . . . .

内容来源: humanlayer/12-factor-agents