|
22 | 22 | from amplifier_core.events import TOOL_ERROR |
23 | 23 | from amplifier_core.events import TOOL_POST |
24 | 24 | from amplifier_core.events import TOOL_PRE |
| 25 | +from amplifier_core.llm_errors import LLMError |
25 | 26 | from amplifier_core.message_models import ChatRequest |
26 | 27 | from amplifier_core.message_models import Message |
27 | 28 | from amplifier_core.message_models import ToolSpec |
@@ -218,7 +219,11 @@ async def execute( |
218 | 219 | for t in tools.values() |
219 | 220 | ] |
220 | 221 |
|
221 | | - chat_request = ChatRequest(messages=messages_objects, tools=tools_list) |
| 222 | + chat_request = ChatRequest( |
| 223 | + messages=messages_objects, |
| 224 | + tools=tools_list, |
| 225 | + reasoning_effort=self.config.get("reasoning_effort"), |
| 226 | + ) |
222 | 227 | logger.debug( |
223 | 228 | f"Created ChatRequest with {len(messages_objects)} messages" |
224 | 229 | ) |
@@ -592,6 +597,17 @@ async def execute_single_tool( |
592 | 597 | logger.warning("Provider returned neither content nor tool calls") |
593 | 598 | iteration += 1 |
594 | 599 |
|
| 600 | + except LLMError as e: |
| 601 | + await hooks.emit( |
| 602 | + PROVIDER_ERROR, |
| 603 | + { |
| 604 | + "provider": provider_name, |
| 605 | + "error": {"type": type(e).__name__, "msg": str(e)}, |
| 606 | + "retryable": e.retryable, |
| 607 | + "status_code": e.status_code, |
| 608 | + }, |
| 609 | + ) |
| 610 | + raise |
595 | 611 | except Exception as e: |
596 | 612 | await hooks.emit( |
597 | 613 | PROVIDER_ERROR, |
@@ -673,7 +689,11 @@ async def execute_single_tool( |
673 | 689 | for t in tools.values() |
674 | 690 | ] |
675 | 691 |
|
676 | | - chat_request = ChatRequest(messages=messages_objects, tools=tools_list) |
| 692 | + chat_request = ChatRequest( |
| 693 | + messages=messages_objects, |
| 694 | + tools=tools_list, |
| 695 | + reasoning_effort=self.config.get("reasoning_effort"), |
| 696 | + ) |
677 | 697 |
|
678 | 698 | kwargs = {} |
679 | 699 | if self.extended_thinking: |
@@ -705,7 +725,25 @@ async def execute_single_tool( |
705 | 725 | assistant_msg["metadata"] = response.metadata |
706 | 726 | await context.add_message(assistant_msg) |
707 | 727 |
|
| 728 | + except LLMError as e: |
| 729 | + await hooks.emit( |
| 730 | + PROVIDER_ERROR, |
| 731 | + { |
| 732 | + "provider": provider_name, |
| 733 | + "error": {"type": type(e).__name__, "msg": str(e)}, |
| 734 | + "retryable": e.retryable, |
| 735 | + "status_code": e.status_code, |
| 736 | + }, |
| 737 | + ) |
| 738 | + logger.error(f"Error getting final response after max iterations: {e}") |
708 | 739 | except Exception as e: |
| 740 | + await hooks.emit( |
| 741 | + PROVIDER_ERROR, |
| 742 | + { |
| 743 | + "provider": provider_name, |
| 744 | + "error": {"type": type(e).__name__, "msg": str(e)}, |
| 745 | + }, |
| 746 | + ) |
709 | 747 | logger.error(f"Error getting final response after max iterations: {e}") |
710 | 748 |
|
711 | 749 | await hooks.emit( |
|
0 commit comments