Skip to content

Conversation

@jdecker76
Copy link
Contributor

This is a proper AWS Bedrock provider for full support of all AWS Bedrock models

features:

  • streaming responses for all providers
  • tool use for all providers
  • streaming responses during tool use for models that support it; non-streaming response during tool use otherwise
  • uses the AWS SDK directly, eliminating the need for proxy gateways such as Bedrock Access Gateway, LiteLLM, TensorZero, etc.
  • Tool information is supplied to the various models in the proper format for that model

I tried using Bedrock with fast-agent via:
Bedrock Access Gateway - chat worked, but tool support was broken
LiteLLM proxy: chat worked, but tool support also broken
TensorZero gateway: chat worked, but tool support also broken. Additionally, there was a lot of complexity setting up the TOML file - literally every single model AND every single tool call had to be manually set up in the TOML config.

I spent a lot of time trying to get Bedrock models working in fast-agent via these types of proxies, but the problem was consistent - whether setting up a model as "custom" or "openai" - it would send the tool schema in the openai format always, which the models rejected. Since Bedrock aggregates many different models from different places, each model must receive the tool information in the schema that particular model understands, and the proxy layers (and fast-agent) were unable to provide this tool data in the correct format. These issues would cascade throughout fast-agent; for example, workflow agents (routers, etc) would not work due to the broken tool calls.

This pull request fixes all of the above by implementing a native Bedrock provider using the AWS SDK (boto3 library). This has been thoroughly tested and is perfectly stable.

jondecker76 and others added 5 commits July 10, 2025 13:33
No proxies needed!

refs #86b5n9pdx
Move model pattern matching logic from model_factory to augmented_llm_bedrock for better encapsulation of bedrock logic and separation of concerns.

refs #86b5n9pdx
example minimal config file for AWS Bedrock
Fix issue with message history

refs #86b5n9pdx
@evalstate
Copy link
Owner

hi @jdecker76 @jondecker76 --- i haven't looked at this in detail, and i don't have a bedrock setup. having said that-

  • would you be able to just confirm that the model passes the basic smoke tests ideally with a screenshot from vscode (test_e2e_smoke.py). just delete the models you don't have keys for, it's fine -- would be good to see the basic, image and structured tests passing.
  • are there any special config parameters/instructions that need to go the docs site? https://github.com/evalstate/fast-agent-docs.

thanks very much for this PR -- it looks great, and I'm keen to get it merged and released (ideally without being driven to tears by AWS setup).

Not all models support structured output.  In this first phase of implementation, we will assume no Bedrock models support structured output and emulate it with prompt engineering.

In the next phase we will try to figure out which models DO support true structured output, and handle those separately
@jdecker76
Copy link
Contributor Author

hi @jdecker76 @jondecker76 --- i haven't looked at this in detail, and i don't have a bedrock setup. having said that-

  • would you be able to just confirm that the model passes the basic smoke tests ideally with a screenshot from vscode (test_e2e_smoke.py). just delete the models you don't have keys for, it's fine -- would be good to see the basic, image and structured tests passing.
  • are there any special config parameters/instructions that need to go the docs site? https://github.com/evalstate/fast-agent-docs.

thanks very much for this PR -- it looks great, and I'm keen to get it merged and released (ideally without being driven to tears by AWS setup).

Sounds great!

I have a few more minor changes incoming for this yet, i'll wrap those up and do the tests.

upcoming addition: adding structured output support. Here is the basic idea:
Assume that none of the Bedrock models support structured output. A list of regex patterns will be used to note the models that DO support structured output directly
For the models that do support structured output, this will be implemented similarly to the other providers
For the models that do not natively support structured output, it will be implemented via prompt engineering (appending detailed instructions to the last message based on the structure of the Pydantic model) - my early tests have had 100% success rate with this!

I will be in touch soon - thanks

@evalstate
Copy link
Owner

Cool -- let me know if you need any help/have questions at all. the discord is probably the best place to get held of me.

- apply structured output similar to Anthropic, using prompt engineering to get the model to output the desired schema
- disable the boto3 and botocore logging, as it's enabled by default and flooding the logs
Adds support for the Titan and Cohere conversation models.  Some support system messages and others do not.   For those that do not support system messages, inject the system message at the beginning of the first user prompt.

Update the fast-agent history - deficiency found from running the smoke_test
Finished testing all of the models for tool use as well as streaming mode with tools
jdecker76 pushed a commit to jdecker76/fast-agent-docs that referenced this pull request Jul 13, 2025
goes along with fast-agent pull request 274: evalstate/fast-agent#274
@jdecker76
Copy link
Contributor Author

evalstate/fast-agent-docs#18

Pull request for the docs site is done

@jdecker76
Copy link
Contributor Author

Will start running the e2e smoke test today and will report back with findings

Add cased-versions of the bedrock type
Due to the number of various models available in Bedrock, some of the less capable models struggle with structured output without additional instruction.  Updated the instructions with a more straight-forward schema and additional instruction.  With this change, 47 out of 51 tested models are able to repeatedly generate structured output. Unfortunately some of the models just aren't cut out for structured output
Add new tool use logic so that different models can use different tool use schemas.  This is mainly to add tool use support to LLAMA models, but may work for Titan models as well
- Implements Anthropic tool calling similar to the real Anthropic provider
- Cleaned up tool call responses.  Originally, it included the thinking step ("Hey I'm going to call this tool..."), then the response ("Toll responded with: blah blah blah"), then the summary.  Now it clears the responses and only returns the summary.  The output is much much cleaner now!
Fold the Anthropic changes into the mix so that all providers now use their associated tool schema type.  Testing is finally showing all capable models consistently making tool calls
@jdecker76
Copy link
Contributor Author

@evalstate
Test results for review:

Notes:
Warnings: All warnings are from the botocore library for using a depreciated utcnow() call

Failures:

  • Various failures on the basic_textual_prompting related to word count being outside of the 40-60 expectation. Most of these are from lower end models. In any case, all models are responding with the correct context, just some are not great at this particular test
  • Tool call failures: These are all models that do not support tool calling, so it is the expected result.

Models Tested:

bedrock_models = [
    # Nova Models
    "bedrock.us.amazon.nova-pro-v1:0",
    "bedrock.us.amazon.nova-lite-v1:0",
    "bedrock.us.amazon.nova-micro-v1:0",
    
    # AI21 Jamba Models
    "bedrock.ai21.jamba-instruct-v1:0",
    "bedrock.ai21.jamba-1-5-large-v1:0",
    "bedrock.ai21.jamba-1-5-mini-v1:0",
    
    # Anthropic Claude Models

    "bedrock.us.anthropic.claude-3-sonnet-20240229-v1:0",
    "bedrock.anthropic.claude-3-haiku-20240307-v1:0",
    "bedrock.us.anthropic.claude-3-haiku-20240307-v1:0",
    "bedrock.us.anthropic.claude-3-opus-20240229-v1:0",
    "bedrock.anthropic.claude-3-5-sonnet-20240620-v1:0",
    "bedrock.us.anthropic.claude-3-5-sonnet-20240620-v1:0",
    "bedrock.us.anthropic.claude-3-5-sonnet-20241022-v2:0",
    "bedrock.us.anthropic.claude-3-7-sonnet-20250219-v1:0",
    "bedrock.us.anthropic.claude-3-5-haiku-20241022-v1:0",
    "bedrock.us.anthropic.claude-opus-4-20250514-v1:0",
    "bedrock.us.anthropic.claude-sonnet-4-20250514-v1:0",
    
    # Cohere Models
    "bedrock.cohere.command-text-v14",
    "bedrock.cohere.command-r-v1:0",
    "bedrock.cohere.command-r-plus-v1:0",
    "bedrock.cohere.command-light-text-v14",
    
    # DeepSeek Models
    "bedrock.us.deepseek.r1-v1:0",
    
    # Meta Llama Models

    "bedrock.us.meta.llama3-1-70b-instruct-v1:0",
    "bedrock.us.meta.llama3-2-90b-instruct-v1:0",
    "bedrock.us.meta.llama3-3-70b-instruct-v1:0",
    "bedrock.us.meta.llama4-scout-17b-instruct-v1:0",
    "bedrock.us.meta.llama4-maverick-17b-instruct-v1:0",
    
    # Mistral Models
    "bedrock.mistral.mistral-7b-instruct-v0:2",
    "bedrock.mistral.mixtral-8x7b-instruct-v0:1",
    "bedrock.mistral.mistral-large-2402-v1:0",
    "bedrock.mistral.mistral-small-2402-v1:0",
]

I skipped testing the Amazon Titan models - they are quite bad at anything beyond simple chat interaction, do not support tool calls and are soon to be depreciated.

============================= warnings summary =============================
tests/e2e/smoke/base/test_e2e_smoke.py: 336 warnings
/Users/jdecker/ACUServeProjects/fast-agent/.venv/lib/python3.12/site-packages/botocore/auth.py:422: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
datetime_now = datetime.datetime.utcnow()

tests/e2e/smoke/base/test_e2e_smoke.py: 12 warnings
/Users/jdecker/ACUServeProjects/fast-agent/.venv/lib/python3.12/site-packages/botocore/endpoint.py:169: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
response_received_timestamp = datetime.datetime.utcnow()

tests/e2e/smoke/base/test_e2e_smoke.py: 12 warnings
/Users/jdecker/ACUServeProjects/fast-agent/.venv/lib/python3.12/site-packages/botocore/endpoint.py:152: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
local_timestamp = datetime.datetime.utcnow()

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
========================= short test summary info ==========================
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_basic_textual_prompting[bedrock.us.amazon.nova-pro-v1:0] - AssertionError: Expected between 40-60 words, got 64
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_basic_textual_prompting[bedrock.cohere.command-text-v14] - AssertionError: Expected between 40-60 words, got 66
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_basic_textual_prompting[bedrock.cohere.command-r-v1:0] - AssertionError: Expected between 40-60 words, got 33
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_basic_textual_prompting[bedrock.cohere.command-r-plus-v1:0] - AssertionError: Expected between 40-60 words, got 39
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_basic_textual_prompting[bedrock.cohere.command-light-text-v14] - AssertionError: Expected between 40-60 words, got 37
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_multiple_text_blocks_prompting[bedrock.us.amazon.nova-pro-v1:0] - AssertionError: Expected between 40-60 words, got 64
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_multiple_text_blocks_prompting[bedrock.cohere.command-text-v14] - AssertionError: Expected between 40-60 words, got 28
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_multiple_text_blocks_prompting[bedrock.cohere.command-light-text-v14] - AssertionError: Expected between 40-60 words, got 22
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_multiple_text_blocks_prompting[bedrock.mistral.mistral-7b-instruct-v0:2] - AssertionError: Expected between 40-60 words, got 39
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_structured_weather_forecast_openai_structured_api[bedrock.cohere.command-text-v14] - AssertionError: Structured response should not be None
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_structured_weather_forecast_openai_structured_api[bedrock.cohere.command-r-plus-v1:0] - AssertionError: Structured response should not be None
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_structured_weather_forecast_openai_structured_api[bedrock.cohere.command-light-text-v14] - AssertionError: Structured response should not be None
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_structured_weather_forecast_openai_structured_api[bedrock.mistral.mixtral-8x7b-instruct-v0:1] - AssertionError: Structured response should not be None
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_generic_model_textual_prompting[bedrock.cohere.command-text-v14] - AssertionError: Expected between 40-60 words, got 90
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_generic_model_textual_prompting[bedrock.cohere.command-light-text-v14] - AssertionError: Expected between 40-60 words, got 27
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_tool_calls_no_args[bedrock.ai21.jamba-instruct-v1:0] - assert 'blue' in 'Please provide more details about what you mean by "g...
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_tool_calls_no_args[bedrock.cohere.command-text-v14] - AssertionError: assert 'blue' in 'Here are some colours of shirts:\n- B...
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_tool_calls_no_args[bedrock.cohere.command-light-text-v14] - AssertionError: assert 'blue' in 'Sure, what kind of shirt would you li...
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_tool_calls_no_args[bedrock.us.deepseek.r1-v1:0] - assert 'blue' in "I don't have access to images or previous context. Co...
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_tool_calls_no_args[bedrock.us.meta.llama4-scout-17b-instruct-v1:0] - AssertionError: assert 'blue' in 'Your input is incomplete. Please prov...
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_tool_calls_no_args[bedrock.us.meta.llama4-maverick-17b-instruct-v1:0] - AssertionError: assert 'blue' in ''
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_tool_calls_no_args[bedrock.mistral.mistral-7b-instruct-v0:2] - assert 'blue' in "I'd be happy to help you with that! However, I'll nee...
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_tool_calls_no_args[bedrock.mistral.mistral-small-2402-v1:0] - assert 'blue' in 'To get the shirt colour, I would use the function `te...
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_server_has_hyphen[bedrock.ai21.jamba-instruct-v1:0] - assert 'blue' in "Currently, I don't have a way of seeing or identifyin...
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_server_has_hyphen[bedrock.cohere.command-text-v14] - AssertionError: assert 'blue' in 'Sure, what colour would you like to k...
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_server_has_hyphen[bedrock.cohere.command-light-text-v14] - AssertionError: assert 'blue' in 'Sure! What type of shirt would you li...
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_server_has_hyphen[bedrock.us.deepseek.r1-v1:0] - AssertionError: assert 'blue' in 'I don’t have access to images, real-t...
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_server_has_hyphen[bedrock.mistral.mixtral-8x7b-instruct-v0:1] - assert 'blue' in "Of course, I'd be happy to help! However, I need a bi...
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_server_has_hyphen[bedrock.mistral.mistral-small-2402-v1:0] - assert 'blue' in 'I'm sorry, but I can't provide information on shirt...
======== 29 failed, 204 passed, 360 warnings in 1124.35s (0:18:44) ========

@jdecker76
Copy link
Contributor Author

Thanks for the lint fixes - i was just starting that!

@evalstate
Copy link
Owner

No worries -- I saw the list of models at https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html -- do you know if they have a version of that list that includes context window size (and tool calling functionality)?

there's not much we can do if a model doesn't support tool calls :) think this is good to merge then? can you just run one final test on a big model on your side?

@jdecker76
Copy link
Contributor Author

Unfortunately, the AWS documentation is terrible and out of date. I haven't yet found a single bit of documentation that agrees with the others. For example, their pricing page: https://aws.amazon.com/bedrock/pricing/ mentions providers and models not listed anywhere else that I could find (TwelveLabs, Writer, LumaAI, etc). Also, some models that are available are really meant for fine-tuning, so they don't do well in general use.

We exclusively use Bedrock at the company I work for due to Bedrock having everything in place to comply with HIPPA regulations. Every Bedrock model that we have used is working great.

I think I'll run a test next that just uses one fully capable model from each family, then I'll post the results here.

@evalstate
Copy link
Owner

I think I'll run a test next that just uses one fully capable model from each family, then I'll post the results here.

yes, just make sure my update to the provider list didn't mess anything up :)

@jdecker76
Copy link
Contributor Author

I just did a test with one model from each provider - all is well !

/Users/jdecker/ACUServeProjects/fast-agent/tests/e2e/smoke/base/test_e2e_smoke.py:323: AssertionError
================= warnings summary ==================
tests/e2e/smoke/base/test_e2e_smoke.py: 57 warnings
/Users/jdecker/ACUServeProjects/fast-agent/.venv/lib/python3.12/site-packages/botocore/auth.py:422: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
datetime_now = datetime.datetime.utcnow()

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============== short test summary info ==============
FAILED tests/e2e/smoke/base/test_e2e_smoke.py::test_generic_model_textual_prompting[bedrock.cohere.command-r-v1:0] - AssertionError: Expected between 40-60 words, go...
= 1 failed, 40 passed, 57 warnings in 195.17s (0:03:15) =

@evalstate
Copy link
Owner

very nice finally getting bedrock in fast-agent here! 👍

@evalstate evalstate merged commit e0f451e into evalstate:main Jul 16, 2025
6 checks passed
evalstate added a commit that referenced this pull request Jul 16, 2025
* Mcp filtering (#282)

* Initial commit: MCP tool/resource/prompt filtering

Initial implementation.  Still some testing to do

* Add filtering example

Simple filtering example showing how to only pull in the tools needed for the agent

* MCP Filtering additions

- improved example
- wrote e2e test
- updated enhanced_prompt to show loaded MCP tools, prompts and resources at the beginning of a chat

* Fix linter errors

* Fix missing api_key from agent

* update decorators for custom/router agent

---------

Co-authored-by: jondecker76 <jondecker76@gmail.com>
Co-authored-by: evalstate <1936278+evalstate@users.noreply.github.com>

* Aws Bedrock provider native support (#274)

* Initial commit of adding AWS Bedrock support

No proxies needed!

refs #86b5n9pdx

* Bedrock improvement

Move model pattern matching logic from model_factory to augmented_llm_bedrock for better encapsulation of bedrock logic and separation of concerns.

refs #86b5n9pdx

* Minimal example config file

example minimal config file for AWS Bedrock

* Update augmented_llm_bedrock.py

Fix issue with message history

refs #86b5n9pdx

* linter

* Bedrock: Add support for structured output

Not all models support structured output.  In this first phase of implementation, we will assume no Bedrock models support structured output and emulate it with prompt engineering.

In the next phase we will try to figure out which models DO support true structured output, and handle those separately

* Bedrock improvements

- apply structured output similar to Anthropic, using prompt engineering to get the model to output the desired schema
- disable the boto3 and botocore logging, as it's enabled by default and flooding the logs

* Add support for Titan and Cohere conversation models

Adds support for the Titan and Cohere conversation models.  Some support system messages and others do not.   For those that do not support system messages, inject the system message at the beginning of the first user prompt.

Update the fast-agent history - deficiency found from running the smoke_test

* Update augmented_llm_bedrock.py

Finished testing all of the models for tool use as well as streaming mode with tools

* Update provider_types.py

Add cased-versions of the bedrock type

* Improve structured responses

Due to the number of various models available in Bedrock, some of the less capable models struggle with structured output without additional instruction.  Updated the instructions with a more straight-forward schema and additional instruction.  With this change, 47 out of 51 tested models are able to repeatedly generate structured output. Unfortunately some of the models just aren't cut out for structured output

* Update augmented_llm_bedrock.py

Add new tool use logic so that different models can use different tool use schemas.  This is mainly to add tool use support to LLAMA models, but may work for Titan models as well

* Improve Anthropic tool calling.  Clean up response

- Implements Anthropic tool calling similar to the real Anthropic provider
- Cleaned up tool call responses.  Originally, it included the thinking step ("Hey I'm going to call this tool..."), then the response ("Toll responded with: blah blah blah"), then the summary.  Now it clears the responses and only returns the summary.  The output is much much cleaner now!

* Update augmented_llm_bedrock.py

Fold the Anthropic changes into the mix so that all providers now use their associated tool schema type.  Testing is finally showing all capable models consistently making tool calls

* new provider types with friendly names

* lint

---------

Co-authored-by: jondecker76 <jondecker76@gmail.com>
Co-authored-by: evalstate <1936278+evalstate@users.noreply.github.com>

---------

Co-authored-by: jdecker76 <161130550+jdecker76@users.noreply.github.com>
Co-authored-by: jondecker76 <jondecker76@gmail.com>
evalstate added a commit that referenced this pull request Jul 16, 2025
* include o4 as a reasoning model

* hugging face spaces uses X-HF-Authorization header

* o4 in tool tests

* o4 and hf_token handling (#292)

* Mcp filtering (#282)

* Initial commit: MCP tool/resource/prompt filtering

Initial implementation.  Still some testing to do

* Add filtering example

Simple filtering example showing how to only pull in the tools needed for the agent

* MCP Filtering additions

- improved example
- wrote e2e test
- updated enhanced_prompt to show loaded MCP tools, prompts and resources at the beginning of a chat

* Fix linter errors

* Fix missing api_key from agent

* update decorators for custom/router agent

---------

Co-authored-by: jondecker76 <jondecker76@gmail.com>
Co-authored-by: evalstate <1936278+evalstate@users.noreply.github.com>

* Aws Bedrock provider native support (#274)

* Initial commit of adding AWS Bedrock support

No proxies needed!

refs #86b5n9pdx

* Bedrock improvement

Move model pattern matching logic from model_factory to augmented_llm_bedrock for better encapsulation of bedrock logic and separation of concerns.

refs #86b5n9pdx

* Minimal example config file

example minimal config file for AWS Bedrock

* Update augmented_llm_bedrock.py

Fix issue with message history

refs #86b5n9pdx

* linter

* Bedrock: Add support for structured output

Not all models support structured output.  In this first phase of implementation, we will assume no Bedrock models support structured output and emulate it with prompt engineering.

In the next phase we will try to figure out which models DO support true structured output, and handle those separately

* Bedrock improvements

- apply structured output similar to Anthropic, using prompt engineering to get the model to output the desired schema
- disable the boto3 and botocore logging, as it's enabled by default and flooding the logs

* Add support for Titan and Cohere conversation models

Adds support for the Titan and Cohere conversation models.  Some support system messages and others do not.   For those that do not support system messages, inject the system message at the beginning of the first user prompt.

Update the fast-agent history - deficiency found from running the smoke_test

* Update augmented_llm_bedrock.py

Finished testing all of the models for tool use as well as streaming mode with tools

* Update provider_types.py

Add cased-versions of the bedrock type

* Improve structured responses

Due to the number of various models available in Bedrock, some of the less capable models struggle with structured output without additional instruction.  Updated the instructions with a more straight-forward schema and additional instruction.  With this change, 47 out of 51 tested models are able to repeatedly generate structured output. Unfortunately some of the models just aren't cut out for structured output

* Update augmented_llm_bedrock.py

Add new tool use logic so that different models can use different tool use schemas.  This is mainly to add tool use support to LLAMA models, but may work for Titan models as well

* Improve Anthropic tool calling.  Clean up response

- Implements Anthropic tool calling similar to the real Anthropic provider
- Cleaned up tool call responses.  Originally, it included the thinking step ("Hey I'm going to call this tool..."), then the response ("Toll responded with: blah blah blah"), then the summary.  Now it clears the responses and only returns the summary.  The output is much much cleaner now!

* Update augmented_llm_bedrock.py

Fold the Anthropic changes into the mix so that all providers now use their associated tool schema type.  Testing is finally showing all capable models consistently making tool calls

* new provider types with friendly names

* lint

---------

Co-authored-by: jondecker76 <jondecker76@gmail.com>
Co-authored-by: evalstate <1936278+evalstate@users.noreply.github.com>

---------

Co-authored-by: jdecker76 <161130550+jdecker76@users.noreply.github.com>
Co-authored-by: jondecker76 <jondecker76@gmail.com>

---------

Co-authored-by: jdecker76 <161130550+jdecker76@users.noreply.github.com>
Co-authored-by: jondecker76 <jondecker76@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants