
【免费下载链接】rocketride-serverHigh-performance AI pipeline engine with a C core and 50 Python-extensible nodes. Build, debug, and scale LLM workflows with 13 model providers, 8 vector databases, and agent orchestration, all from your IDE. Includes VS Code extension, TypeScript/Python SDKs, and Docker deployment.项目地址https://gitcode.com/gh_mirrors/ro/rocketride-server点击查看免费下载本篇技术指南以 RocketRide 仓库中的agent_llamaindex节点为核心讲解如何用 LlamaIndex 的 ReAct 循环实现逐步推理 按需调用工具的 Agent 节点它接收questions通道的问题自主决定何时调用已连接的 LLM 与工具最终在answers通道输出答案并可作为子 Agent 被父级 Agent 通过run_agent工具编排调用。读完本文你将掌握该节点的连接方式、三种典型管线HTTP 问答、向量库检索、分层 Agent 编排、全部配置参数的作用边界以及 ReAct 推理循环与防幻觉守卫在源码层面的实现机制。节点定位基于 LlamaIndex ReAct 的通用 Agentagent_llamaindex是一个 RocketRide Agent 节点节点目录其职责非常聚焦接收一个问题通过 ReAct 循环逐步推理并调用已连接的工具直到得到最终答案再把答案写回answers通道。它在services.json中被声明为classType: [agent, tool]即既可以作为普通管线节点运行也可以被其他 Agent 当作工具调用。底层依赖是 LlamaIndex 生态中的检索与索引工具包尤其是其 ReAct 风格的 Agent——它把推理reasoning与工具调用tool use交错进行让模型在回答前先收集自己需要的信息。这是该节点的设计灵魂推理循环是纯文本格式模型输出Thought / Action / Action Input因此不要求 LLM 原生支持 function-calling任何能遵循该格式的模型包括本地小模型都可以驱动它。在 RocketRide 的 Agent 框架中该节点通过LlamaIndexDriver实现共享的ai.common.agent.AgentBase接口见 llamaindex.py框架标识FRAMEWORK llamaindex。它复用了AgentBase.run_agent统一入口agent.py来处理配置解析、指令合并、工具发现与答案输出。连接与通道两进一出的最小拓扑节点的连接与通道定义在 services.json 中控制平面control-plane有两个通道连接是否必需说明llm是Agent 推理所用的 LLMmin: 1tool否推理循环期间可用的工具集min: 0数据平面lane只有一个方向对输入通道输出通道说明questionsanswers送入问题产出 Agent 的最终答案值得强调的是不连工具节点也能运行——此时它退化为一次性问答器single-shot question answerer。工具才是 ReAct 循环真正发挥价值的地方模型可以按需决定是否调用、调用哪个工具、如何解读工具返回的观察observation而不是让每个问题都被强制走一遍检索流程。三个示例管线从 HTTP 问答到分层 Agent仓库中的 example.pipe 给出了一个可直接导入的完整画布配置拓扑为chat → agent_llamaindex → response_answers其中llm_anthropicprofile 为claude-sonnet-4-6API Key 取自${ROCKETRIDE_ANTHROPIC_KEY}环境变量接到节点的llm通道tool_http_request接到tool通道。问题从 chat 进入Agent 自主决定何时调用 API、读取响应最终给出有依据grounded的答案。场景一用 HTTP 工具回答实时问题将tool_http_request接到tool通道即可。适用于答案依赖外部 API 实时数据的管线例如查询天气、汇率、文档接口等。Agent 会先在推理中判断需要调用 API然后执行工具并基于返回内容组织答案。场景二基于自有文档的研究型 Agent把 HTTP 工具换成store_qdrant向量数据库节点Agent 按需搜索向量库而不是让每个问题都强制经过检索然后基于检索结果回答。这种按需检索模式在长文档、知识库问答中非常常见——模型先推理这个问题需要查资料吗再决定是否触发检索比固定 RAG 流程更省调用、也更灵活。场景三作为专业子 Agent 嵌入更大 Agent 层级将一个agent_rocketride节点作为父 Agent把本节点连到其tool通道并务必填写Agent description见下文配置节。父 Agent 通过nodeId.run_agent调用子 Agent 并取回答案实现总控 Agent 分工调度多个专业子 Agent的层级编排。配置详解三个字段塑造行为默认 profiledefault无需任何配置即可运行——连上 LLM 即可。Schema 中可配置字段如下services.json 与 README 中自动生成的 Schema 表一致字段类型默认值作用agent_descriptionstringAgent 描述供父 Agent 选择与调用时参考instructionsarray[]追加到内置 ReAct prompt 的额外指令require_tool_callbooleanfalse是否强制至少调用一次工具后才允许作答Agent description父 Agent 选人时的唯一依据仅在本节点作为工具被父 Agent 调用时才有意义。父 Agent 决定是否委派时只能读到这段文字——它看不到你的 Instructions、工具清单或 LLM 配置。所以它必须具体、行动导向像 Searches internal documentation and answers with citations 这样的描述会被采纳而 helper agent 这种泛泛描述永远不会被选中。在源码中它会被拼进run_agent工具函数的 description见 IInstance.py父 Agent 正是在所有子 Agent 的run_agent描述之间做选择的。如果没有任何 Agent 会以工具方式调用本节点留空即可。Instructions领域规则与语气而非工具用法每一行都会被追加到内置 ReAct prompt 之后基础类已在run_agent中完成指令合并见 llamaindex.py 的注释。内置 prompt 已经处理好了推理脚手架Thought/Action 格式所以这里适合写领域规则与语气例如 prefer primary sources优先使用一手来源、answer in the users language用用户的语言回答——不要去复述如何使用工具那是循环本身已经覆盖的部分。同时要注意对较小的模型指令加得过多反而有害因为其指令遵循能力会随 prompt 变长而退化。Require tool call防幻觉守卫默认关闭。开启后如果一次运行在没有调用任何工具的情况下就产出答案会以RocketRide.agent.guard.v1错误代替文本返回而不是把未经验证的内容交出去。这个守卫针对的是一个真实存在的失败模式较弱的规划模型有时会用散文叙述工具链——描述它搜索过但其实从未执行——并产出一个看似合理但无依据的答案。建议在确定性至关重要的管线不允许出现无依据答案中开启它。注意两点它只统计真实的工具调用内部本地读取不算数。对于可以合法地凭模型自身知识作答的 Agent保持关闭。在实现层面守卫由AgentBase统一执行parse_bool(config.get(require_tool_call), False)解析配置agent.py未调用工具即作答时抛出ToolCallRequiredError由run_agent捕获并转为RocketRide.agent.guard.v1错误答案。仓库测试 test_agent_base.py 与 test_require_tool_call_integration.py 分别从单元与端到端两个层面验证了该行为。作为工具被调用run_agent的输入输出契约当本节点连接到父 Agent 时它对外暴露一个函数函数说明nodeId.run_agent用查询运行该 Agent 并返回其答案输入为{query: string, context?: object}query必须是非空字符串源码中做了严格校验见 IInstance.py可选的context对象会以类型为RocketRide.agent.tool_context.v1的 context entry 传给子 Agent序列化逻辑见 IInstance.py。输出为{content, meta, stack}其中stack是本次运行经历的推理步骤列表。关键行为作为工具被调用时答案返回给调用方而不是写到answers通道——这正是run_agent中emit_answers_laneFalse的作用IInstance.py。推理循环的内部原理手驱 ReAct最多 10 步README 明确说明了实现细节llamaindex.py 可逐一印证节点使用llama-index-core提供 ReAct 脚手架ReActChatFormatter负责把工具与历史格式化进 promptReActOutputParser负责解析模型的输出但循环本身由节点驱动而非 LlamaIndex 的异步 Agent。原因是 RocketRide 的 LLM 调用通道是同步返回纯文本的所以每个回合的执行顺序是用ReActChatFormatter格式化 prompt工具描述 对话历史 当前推理步骤调用宿主 LLM以Observation:作为停止词stop_words[Observation:]见 llamaindex.py用ReActOutputParser解析模型输出的Thought / Action / Action Input或直接识别为最终Answer。工具执行走的是宿主的控制平面call_tool而不是 LlamaIndex——已连接的工具被包装成仅含元数据的FunctionTool_build_tools从工具描述符中提取名称、描述与输入 JSON schema把 schema 序列化进描述字符串后交给FunctionTool实际执行时再通过call_tool转发见 llamaindex.py。这样模型能在 prompt 里看到每个工具的输入 JSON schema从而正确构造Action Input。几个关键边界行为迭代预算循环最多运行10 次_MAX_ITERATIONS 10llamaindex.py。若耗尽预算仍无最终答案节点返回Agent stopped after reaching the maximum number of reasoning steps.。不可解析输出无法被解析为 ReAct 步骤的输出会被当作直接答案如果以Thought:开头会先剥离该前缀_clean_answer避免推理脚手架泄漏给读者。工具异常可恢复工具调用抛错并不会致命——错误会被作为观察observation反馈给模型格式为{tool, error, type}让模型有机会自我纠正后继续推理llamaindex.py。进度与可追踪性进度流运行过程中的关键事件通过thinkingSSE 通道实时流式推送例如Starting LlamaIndex agent...和Calling tool...llamaindex.py 与 #L121。推理栈每一步工具调用都被记录为{action, action_input, observation}三元组并追加进返回的stackllamaindex.py。这意味着无论答案最终走answers通道还是作为工具返回值你都能拿到完整的推理轨迹用于调试与审计。运行时依赖与快速上手依赖节点唯一的 Python 依赖是llama-index-core见 requirements.txt在IGlobal.beginGlobal中通过depends(requirements)按需解析IGlobal.pyCONFIG 模式下跳过加载以支持配置预览。快速验证导入 example.pipe 到画布按上文三个场景之一接线即可运行默认 profile 零配置连上 LLM 就能问答接上工具即获得完整 ReAct 能力。小结agent_llamaindex把 LlamaIndex 的 ReAct 循环以手驱 宿主控制平面执行的方式接入 RocketRide 管线换来的是对任意 LLM 的兼容性、按需工具调用的灵活性以及通过run_agent融入多层 Agent 编排的能力。三个配置字段描述、指令、强制工具调用守卫分别回答了父 Agent 怎么选我我按什么规则推理无依据答案是否被允许三个问题——理解它们的边界就能让这个节点在从简单问答到确定性严格管线的各类场景中都表现可靠。赞分享【免费下载链接】rocketride-serverHigh-performance AI pipeline engine with a C core and 50 Python-extensible nodes. Build, debug, and scale LLM workflows with 13 model providers, 8 vector databases, and agent orchestration, all from your IDE. Includes VS Code extension, TypeScript/Python SDKs, and Docker deployment.项目地址https://gitcode.com/gh_mirrors/ro/rocketride-server点击查看免费下载相关推荐RocketRide DeepAgent Subagent 节点深度解析构建由 Deep Agent 编排的分层子智能体流水线RocketRide DeepAgent Subagent 节点深度解析构建由 Deep Agent 编排的分层子智能体流水线 DeepAgent SubagRocketRide store_qdrant 节点解析用 Qdrant 构建可被 Agent 直接调用的向量检索存储RocketRide store_qdrant 节点解析用 Qdrant 构建可被 Agent 直接调用的向量检索存储 本文以 RocketRide 的 stPocketFlow TAO 模式实战用 Thought-Action-Observation 循环构建自主推理 AgentPocketFlow TAO 模式实战用 Thought Action Observation 循环构建自主推理 Agent PocketFlow TAOT人工智能大模型AI Agent工作流自动化RAG上一篇GSL终极配置指南快速上手科学计算神器下一篇TexText终极指南在Inkscape中轻松排版LaTeX公式的10个技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考