4b6817381b
Benchmark image — build + push to ECR (any adapter) / build + push (push) Waiting to run
CI / quality (ubuntu-latest) (push) Waiting to run
CI / test (tools-runtime) (push) Waiting to run
CI / test (e2e-general) (push) Waiting to run
CI / test (cli-runtime) (push) Waiting to run
CI / test (e2e-provider-and-openclaw) (push) Waiting to run
CI / test (integrations-and-misc) (push) Waiting to run
CI / coverage-report (push) Blocked by required conditions
CI / test-kubernetes (push) Waiting to run
CI / should-run-thorough (push) Waiting to run
CI / test-thorough (cloudwatch-demo) (push) Blocked by required conditions
CI / test-thorough (flink-ecs) (push) Blocked by required conditions
CI / test-thorough (upstream-lambda) (push) Blocked by required conditions
CI / test-thorough (prefect-ecs-fargate) (push) Blocked by required conditions
CodeQL / Analyze (python) (push) Waiting to run
Release / build-binaries (zip, opensre.exe, onefile, windows-latest, windows-x64) (push) Blocked by required conditions
Release / publish-release (push) Blocked by required conditions
Release / publish-main-release (push) Blocked by required conditions
Release / prepare (push) Waiting to run
Release / verify (push) Blocked by required conditions
Release / build-python-dist (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, macos-15-intel, darwin-x64) (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, macos-latest, darwin-arm64) (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04, linux-x64) (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04-arm, linux-arm64) (push) Blocked by required conditions
Synthetic Deterministic Tests / Synthetic offline (deterministic) (push) Waiting to run
Interactive Shell Live (PR + post-merge) / turn-checks (no-LLM) (push) Waiting to run
Interactive Shell Live (PR + post-merge) / turn-live shard ${{ matrix.shard_index }} (push) Waiting to run
CI (OpenClaw E2E) / openclaw test (push) Has been cancelled
86 lines
3.0 KiB
Python
86 lines
3.0 KiB
Python
"""Shared LLM tool-calling runtime.
|
|
|
|
Provider-agnostic machinery for running a think → call tools → observe loop:
|
|
parallel tool execution, provider-specific message shaping, and context-window
|
|
budget enforcement.
|
|
|
|
The top-level primitive is :class:`~core.agent.Agent`. Surfaces that
|
|
previously called ``run_tool_calling_loop`` should instantiate ``Agent``
|
|
directly and call ``.run(initial_messages)``.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from importlib import import_module
|
|
from typing import Any
|
|
|
|
_EXPORT_MODULES = {
|
|
"Agent": "core.agent",
|
|
"AgentRunResult": "core.agent",
|
|
"context_budget_ceiling_for_model": "core.context_budget",
|
|
"enforce_context_budget": "core.context_budget",
|
|
"estimate_message_tokens": "core.context_budget",
|
|
"trim_lowest_value_tool_pair": "core.context_budget",
|
|
"truncate_content": "core.context_budget",
|
|
"AgentEndEvent": "core.events",
|
|
"AgentStartEvent": "core.events",
|
|
"MessageStartEvent": "core.events",
|
|
"MessageUpdateEvent": "core.events",
|
|
"ProviderRequestEndEvent": "core.events",
|
|
"ProviderRequestStartEvent": "core.events",
|
|
"RuntimeEvent": "core.events",
|
|
"RuntimeEventCallback": "core.events",
|
|
"RuntimeEventKind": "core.events",
|
|
"RuntimeEventType": "core.events",
|
|
"ToolExecutionEndEvent": "core.events",
|
|
"ToolExecutionStartEvent": "core.events",
|
|
"ToolExecutionUpdateEvent": "core.events",
|
|
"TupleEventCallback": "core.events",
|
|
"TurnEndEvent": "core.events",
|
|
"TurnStartEvent": "core.events",
|
|
"runtime_event_from_tuple": "core.events",
|
|
"tuple_payload_from_event": "core.events",
|
|
"BeforeToolCallResult": "core.execution",
|
|
"ToolExecutionHooks": "core.execution",
|
|
"ToolExecutionPatch": "core.execution",
|
|
"ToolExecutionRequest": "core.execution",
|
|
"ToolExecutionResult": "core.execution",
|
|
"execute_tool_calls": "core.execution",
|
|
"execute_tools": "core.execution",
|
|
"public_tool_input": "core.execution",
|
|
"summarise": "core.execution",
|
|
"tool_source": "core.execution",
|
|
"LLMInvokeFailure": "core.llm_invoke_errors",
|
|
"classify_llm_invoke_failure": "core.llm_invoke_errors",
|
|
"AppRuntimeMessage": "core.messages",
|
|
"AssistantRuntimeMessage": "core.messages",
|
|
"MessageMapper": "core.messages",
|
|
"RuntimeMessage": "core.messages",
|
|
"ToolResultRuntimeMessage": "core.messages",
|
|
"UserRuntimeMessage": "core.messages",
|
|
"ProviderHooks": "core.provider",
|
|
"ProviderRequest": "core.provider",
|
|
"resolve_llm_api_key": "core.provider",
|
|
"AgentTool": "core.types",
|
|
"AgentToolContext": "core.types",
|
|
"AgentToolExecutor": "core.types",
|
|
"RuntimeTool": "core.types",
|
|
"ToolExecutionMode": "core.types",
|
|
}
|
|
|
|
|
|
def __getattr__(name: str) -> Any:
|
|
module_name = _EXPORT_MODULES.get(name)
|
|
if module_name is None:
|
|
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
value = getattr(import_module(module_name), name)
|
|
globals()[name] = value
|
|
return value
|
|
|
|
|
|
def __dir__() -> list[str]:
|
|
return sorted(_EXPORT_MODULES)
|
|
|
|
|
|
__all__ = sorted(_EXPORT_MODULES)
|