15|原理:可定制 API Agent 原理详解

ReAct 模板
- 深入了解
- 翻译
- 解释
- 总结

1. Dify Agent 的 ReAct 模板采用 JSON 格式,提高了输出格式的稳定性,同时包含提示词部分和历史对话,为大模型设置人设,规范其边界行为等。 2. API Agent 的工具全部使用 OpenAPI 的形式进行配置,包括 openapi、info、servers、paths、components 等几个模块,其中 components 模块定义了整个文档的可重用元素。 3. Dify 解析 OpenAPI 结构的代码通过调用 auto_parse_to_tool_bundle 方法进行文档解析,同时处理了 Swagger 转 OpenAPI 的逻辑,考虑到用户可能会混淆两种标准的规则。 4. Dify Agent 封装了一个方法用于处理流式响应中的每一个 chunk,代码定义了一个光标,从 reponse 的第 0 个字符开始,一个字符一个字符地向后读取并处理,处理的规则来自于 ReAct 模板中定义的大模型的返回格式。 5. Dify 在代码中会在每一次大模型返回后,抽取 usage 字段后的值,进行累加,从而得到真实的 token 消耗。 6. Dify 定义了一个 _invoke 方法,是通用 HTTP 工具,包含 assembling_request、do_http_request、validate_and_parse_response 和 create_text_message 方法,用于处理 API 工具的执行。 7. Dify 设定了轮次限制,避免 Agent 陷入死循环,白白浪费大量的 token。 8. Dify 支持多模态大模型,返回的消息有可能是文本、图片、链接等等,因此做了一个统一的消息结构,便于传递。 9. Dify 通过统计与大模型对话的每一轮 token 消耗,并作累加,得到一次调用 Agent 的真实 token 消耗,让用户了解使用 Agent 的真实情况。
《AI 重塑云原生应用开发实战》,新⼈⾸单¥59