用途:帮助在 DSPy 中选择合适的推理模块,用于长上下文探索、代码辅助推理或并行执行。
主要能力与选择:dspy.RLM 用于以迭代 REPL 代码和递归子 LM 调用探索超大上下文,属实验性,默认需要 Deno;dspy.ProgramOfThought 通过生成并执行 Python 解题,默认需要 Deno;dspy.CodeAct 将生成的 Python 与预定义工具函数结合,仅支持函数且需要 Deno;dspy.Parallel 并发运行 (module, example) 对,可调线程与错误处理。
用法要点:RLM 把长输入当作沙箱中的外部数据,而非放入每次 LM 提示,可用 max_iterations、max_llm_calls、max_output_chars 显式限制成本与输出。默认 dspy.PythonInterpreter 使用 Deno 与 Pyodide,除非显式开启,否则拒绝主机文件系统、环境变量和网络访问;可通过 enable_read_paths、enable_network_access 等最小化授权。CodeAct 适合生成代码还需调用受信主机工具的场景。Parallel 可返回失败样例与异常。
适用场景:长文档问答与探索、数学或代码类任务、需要工具调用的智能体、批量并发推理。
限制与建议:优先使用 Predict 或 ChainOfThought,除非确有必要执行代码或探索长上下文;RLM 为实验性,生产前应做负载测试;限制循环与子 LM 调用次数;保持沙箱权限最小;并发使用自定义解释器时应各自创建独立实例。官方文档见 RLM、ProgramOfThought、CodeAct、Parallel 的 API 页面。