[提案] 标准化工具输出模式的发现 #12FactorTools
[!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.
我提议,指南应建议或纳入一个** 标准机制,用于发现工具的输出计划**,补充现有输入计划发现做法。
** 反思/价值建议:**
事先了解产出计划可带来重大好处:
- ** 加强LLM规划:** 一个LLM可以更好的计划 . . . . . . .
内容来源: humanlayer/12-factor-agents