fast-agent-mcp 0.2.1__tar.gz → 0.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/PKG-INFO +1 -1
  2. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/pyproject.toml +1 -1
  3. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/config.py +15 -0
  4. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/model_factory.py +4 -0
  5. fast_agent_mcp-0.2.3/src/mcp_agent/llm/providers/augmented_llm_generic.py +47 -0
  6. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/providers/augmented_llm_openai.py +3 -11
  7. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/.gitignore +0 -0
  8. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/LICENSE +0 -0
  9. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/README.md +0 -0
  10. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/data-analysis/analysis-campaign.py +0 -0
  11. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/data-analysis/analysis.py +0 -0
  12. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/data-analysis/fastagent.config.yaml +0 -0
  13. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/data-analysis/mount-point/WA_Fn-UseC_-HR-Employee-Attrition.csv +0 -0
  14. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/researcher/fastagent.config.yaml +0 -0
  15. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/researcher/researcher-eval.py +0 -0
  16. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/researcher/researcher-imp.py +0 -0
  17. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/researcher/researcher.py +0 -0
  18. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/workflows/chaining.py +0 -0
  19. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/workflows/evaluator.py +0 -0
  20. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/workflows/fastagent.config.yaml +0 -0
  21. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/workflows/graded_report.md +0 -0
  22. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/workflows/human_input.py +0 -0
  23. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/workflows/orchestrator.py +0 -0
  24. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/workflows/parallel.py +0 -0
  25. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/workflows/router.py +0 -0
  26. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/workflows/short_story.md +0 -0
  27. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/examples/workflows/short_story.txt +0 -0
  28. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/__init__.py +0 -0
  29. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/agents/__init__.py +0 -0
  30. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/agents/agent.py +0 -0
  31. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/agents/base_agent.py +0 -0
  32. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/agents/workflow/__init__.py +0 -0
  33. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/agents/workflow/chain_agent.py +0 -0
  34. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/agents/workflow/evaluator_optimizer.py +0 -0
  35. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/agents/workflow/orchestrator_agent.py +0 -0
  36. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/agents/workflow/orchestrator_models.py +0 -0
  37. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/agents/workflow/orchestrator_prompts.py +0 -0
  38. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/agents/workflow/parallel_agent.py +0 -0
  39. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/agents/workflow/router_agent.py +0 -0
  40. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/app.py +0 -0
  41. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/cli/__init__.py +0 -0
  42. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/cli/__main__.py +0 -0
  43. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/cli/commands/bootstrap.py +0 -0
  44. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/cli/commands/config.py +0 -0
  45. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/cli/commands/setup.py +0 -0
  46. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/cli/main.py +0 -0
  47. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/cli/terminal.py +0 -0
  48. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/console.py +0 -0
  49. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/context.py +0 -0
  50. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/context_dependent.py +0 -0
  51. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/__init__.py +0 -0
  52. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/agent_types.py +0 -0
  53. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/direct_agent_app.py +0 -0
  54. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/direct_decorators.py +0 -0
  55. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/direct_factory.py +0 -0
  56. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/enhanced_prompt.py +0 -0
  57. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/error_handling.py +0 -0
  58. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/exceptions.py +0 -0
  59. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/fastagent.py +0 -0
  60. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/interactive_prompt.py +0 -0
  61. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/mcp_content.py +0 -0
  62. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/prompt.py +0 -0
  63. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/request_params.py +0 -0
  64. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/core/validation.py +0 -0
  65. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/event_progress.py +0 -0
  66. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/executor/__init__.py +0 -0
  67. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/executor/decorator_registry.py +0 -0
  68. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/executor/executor.py +0 -0
  69. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/executor/task_registry.py +0 -0
  70. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/executor/temporal.py +0 -0
  71. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/executor/workflow.py +0 -0
  72. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/executor/workflow_signal.py +0 -0
  73. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/human_input/__init__.py +0 -0
  74. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/human_input/handler.py +0 -0
  75. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/human_input/types.py +0 -0
  76. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/__init__.py +0 -0
  77. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/augmented_llm.py +0 -0
  78. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/augmented_llm_passthrough.py +0 -0
  79. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/augmented_llm_playback.py +0 -0
  80. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/memory.py +0 -0
  81. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/prompt_utils.py +0 -0
  82. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/providers/__init__.py +0 -0
  83. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/providers/anthropic_utils.py +0 -0
  84. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/providers/augmented_llm_anthropic.py +0 -0
  85. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/providers/augmented_llm_deepseek.py +0 -0
  86. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/providers/multipart_converter_anthropic.py +0 -0
  87. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/providers/multipart_converter_openai.py +0 -0
  88. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/providers/openai_multipart.py +0 -0
  89. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/providers/openai_utils.py +0 -0
  90. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/providers/sampling_converter_anthropic.py +0 -0
  91. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/providers/sampling_converter_openai.py +0 -0
  92. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/sampling_converter.py +0 -0
  93. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/llm/sampling_format_converter.py +0 -0
  94. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/logging/__init__.py +0 -0
  95. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/logging/events.py +0 -0
  96. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/logging/json_serializer.py +0 -0
  97. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/logging/listeners.py +0 -0
  98. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/logging/logger.py +0 -0
  99. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/logging/rich_progress.py +0 -0
  100. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/logging/tracing.py +0 -0
  101. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/logging/transport.py +0 -0
  102. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/__init__.py +0 -0
  103. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/gen_client.py +0 -0
  104. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/interfaces.py +0 -0
  105. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/logger_textio.py +0 -0
  106. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/mcp_activity.py +0 -0
  107. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/mcp_agent_client_session.py +0 -0
  108. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/mcp_agent_server.py +0 -0
  109. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/mcp_aggregator.py +0 -0
  110. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/mcp_connection_manager.py +0 -0
  111. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/mime_utils.py +0 -0
  112. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/prompt_message_multipart.py +0 -0
  113. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/prompt_render.py +0 -0
  114. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/prompt_serialization.py +0 -0
  115. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/prompts/__init__.py +0 -0
  116. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/prompts/__main__.py +0 -0
  117. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/prompts/prompt_constants.py +0 -0
  118. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/prompts/prompt_helpers.py +0 -0
  119. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/prompts/prompt_load.py +0 -0
  120. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/prompts/prompt_server.py +0 -0
  121. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/prompts/prompt_template.py +0 -0
  122. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/resource_utils.py +0 -0
  123. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp/sampling.py +0 -0
  124. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp_server/__init__.py +0 -0
  125. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp_server/agent_server.py +0 -0
  126. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/mcp_server_registry.py +0 -0
  127. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/progress_display.py +0 -0
  128. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/data-analysis/analysis-campaign.py +0 -0
  129. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/data-analysis/analysis.py +0 -0
  130. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/data-analysis/fastagent.config.yaml +0 -0
  131. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/data-analysis/mount-point/WA_Fn-UseC_-HR-Employee-Attrition.csv +0 -0
  132. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/in_dev/agent_build.py +0 -0
  133. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/in_dev/slides.py +0 -0
  134. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/internal/agent.py +0 -0
  135. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/internal/fastagent.config.yaml +0 -0
  136. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/internal/job.py +0 -0
  137. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/internal/prompt_category.py +0 -0
  138. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/internal/prompt_sizing.py +0 -0
  139. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/internal/sizer.py +0 -0
  140. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/internal/social.py +0 -0
  141. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/prompting/__init__.py +0 -0
  142. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/prompting/agent.py +0 -0
  143. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/prompting/fastagent.config.yaml +0 -0
  144. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/prompting/image_server.py +0 -0
  145. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/prompting/work_with_image.py +0 -0
  146. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/researcher/fastagent.config.yaml +0 -0
  147. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/researcher/researcher-eval.py +0 -0
  148. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/researcher/researcher-imp.py +0 -0
  149. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/researcher/researcher.py +0 -0
  150. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/workflows/chaining.py +0 -0
  151. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/workflows/evaluator.py +0 -0
  152. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/workflows/fastagent.config.yaml +0 -0
  153. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/workflows/human_input.py +0 -0
  154. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/workflows/orchestrator.py +0 -0
  155. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/workflows/parallel.py +0 -0
  156. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/resources/examples/workflows/router.py +0 -0
  157. {fast_agent_mcp-0.2.1 → fast_agent_mcp-0.2.3}/src/mcp_agent/ui/console_display.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fast-agent-mcp
3
- Version: 0.2.1
3
+ Version: 0.2.3
4
4
  Summary: Define, Prompt and Test MCP enabled Agents and Workflows
5
5
  Author-email: Shaun Smith <fastagent@llmindset.co.uk>, Sarmad Qadri <sarmad@lastmileai.dev>
6
6
  License: Apache License
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fast-agent-mcp"
3
- version = "0.2.1"
3
+ version = "0.2.3"
4
4
  description = "Define, Prompt and Test MCP enabled Agents and Workflows"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -136,6 +136,18 @@ class DeepSeekSettings(BaseModel):
136
136
  model_config = ConfigDict(extra="allow", arbitrary_types_allowed=True)
137
137
 
138
138
 
139
+ class GenericSettings(BaseModel):
140
+ """
141
+ Settings for using OpenAI models in the fast-agent application.
142
+ """
143
+
144
+ api_key: str | None = None
145
+
146
+ base_url: str | None = None
147
+
148
+ model_config = ConfigDict(extra="allow", arbitrary_types_allowed=True)
149
+
150
+
139
151
  class TemporalSettings(BaseModel):
140
152
  """
141
153
  Temporal settings for the fast-agent application.
@@ -250,6 +262,9 @@ class Settings(BaseSettings):
250
262
  deepseek: DeepSeekSettings | None = None
251
263
  """Settings for using DeepSeek models in the fast-agent application"""
252
264
 
265
+ generic: GenericSettings | None = None
266
+ """Settings for using Generic models in the fast-agent application"""
267
+
253
268
  logger: LoggerSettings | None = LoggerSettings()
254
269
  """Logger settings for the fast-agent application"""
255
270
 
@@ -9,6 +9,7 @@ from mcp_agent.llm.augmented_llm_passthrough import PassthroughLLM
9
9
  from mcp_agent.llm.augmented_llm_playback import PlaybackLLM
10
10
  from mcp_agent.llm.providers.augmented_llm_anthropic import AnthropicAugmentedLLM
11
11
  from mcp_agent.llm.providers.augmented_llm_deepseek import DeepSeekAugmentedLLM
12
+ from mcp_agent.llm.providers.augmented_llm_generic import GenericAugmentedLLM
12
13
  from mcp_agent.llm.providers.augmented_llm_openai import OpenAIAugmentedLLM
13
14
  from mcp_agent.mcp.interfaces import AugmentedLLMProtocol
14
15
 
@@ -32,6 +33,7 @@ class Provider(Enum):
32
33
  OPENAI = auto()
33
34
  FAST_AGENT = auto()
34
35
  DEEPSEEK = auto()
36
+ GENERIC = auto()
35
37
 
36
38
 
37
39
  class ReasoningEffort(Enum):
@@ -60,6 +62,7 @@ class ModelFactory:
60
62
  "openai": Provider.OPENAI,
61
63
  "fast-agent": Provider.FAST_AGENT,
62
64
  "deepseek": Provider.DEEPSEEK,
65
+ "generic": Provider.GENERIC,
63
66
  }
64
67
 
65
68
  # Mapping of effort strings to enum values
@@ -116,6 +119,7 @@ class ModelFactory:
116
119
  Provider.OPENAI: OpenAIAugmentedLLM,
117
120
  Provider.FAST_AGENT: PassthroughLLM,
118
121
  Provider.DEEPSEEK: DeepSeekAugmentedLLM,
122
+ Provider.GENERIC: GenericAugmentedLLM,
119
123
  }
120
124
 
121
125
  # Mapping of special model names to their specific LLM classes
@@ -0,0 +1,47 @@
1
+ import os
2
+
3
+ from mcp_agent.core.request_params import RequestParams
4
+ from mcp_agent.llm.providers.augmented_llm_openai import OpenAIAugmentedLLM
5
+
6
+ DEFAULT_OLLAMA_BASE_URL = "http://localhost:11434/v1"
7
+ DEFAULT_OLLAMA_MODEL = "llama3.2:latest"
8
+ DEFAULT_OLLAMA_API_KEY = "ollama"
9
+
10
+
11
+ class GenericAugmentedLLM(OpenAIAugmentedLLM):
12
+ def __init__(self, *args, **kwargs) -> None:
13
+ kwargs["provider_name"] = "GenericOpenAI"
14
+ super().__init__(*args, **kwargs) # Properly pass args and kwargs to parent
15
+
16
+ def _initialize_default_params(self, kwargs: dict) -> RequestParams:
17
+ """Initialize Generic parameters"""
18
+ chosen_model = kwargs.get("model", DEFAULT_OLLAMA_MODEL)
19
+
20
+ return RequestParams(
21
+ model=chosen_model,
22
+ systemPrompt=self.instruction,
23
+ parallel_tool_calls=True,
24
+ max_iterations=10,
25
+ use_history=True,
26
+ )
27
+
28
+ def _api_key(self) -> str:
29
+ config = self.context.config
30
+ api_key = None
31
+
32
+ if config and config.generic:
33
+ api_key = config.generic.api_key
34
+ if api_key == "<your-api-key-here>":
35
+ api_key = None
36
+
37
+ if api_key is None:
38
+ api_key = os.getenv("GENERIC_API_KEY")
39
+
40
+ return api_key or "ollama"
41
+
42
+ def _base_url(self) -> str:
43
+ base_url = None
44
+ if self.context.config and self.context.config.generic:
45
+ base_url = self.context.config.generic.base_url
46
+
47
+ return base_url if base_url else DEFAULT_OLLAMA_BASE_URL
@@ -115,7 +115,6 @@ class OpenAIAugmentedLLM(AugmentedLLM[ChatCompletionMessageParam, ChatCompletion
115
115
  self,
116
116
  message,
117
117
  request_params: RequestParams | None = None,
118
- response_model: Type[ModelT] | None = None,
119
118
  ) -> List[ChatCompletionMessage]:
120
119
  """
121
120
  Process a query using an LLM and available tools.
@@ -192,16 +191,9 @@ class OpenAIAugmentedLLM(AugmentedLLM[ChatCompletionMessageParam, ChatCompletion
192
191
  self.logger.debug(f"{arguments}")
193
192
  self._log_chat_progress(self.chat_turn(), model=model)
194
193
 
195
- if response_model is None:
196
- executor_result = await self.executor.execute(
197
- openai_client.chat.completions.create, **arguments
198
- )
199
- else:
200
- executor_result = await self.executor.execute(
201
- openai_client.beta.chat.completions.parse,
202
- **arguments,
203
- response_format=response_model,
204
- )
194
+ executor_result = await self.executor.execute(
195
+ openai_client.chat.completions.create, **arguments
196
+ )
205
197
 
206
198
  response = executor_result[0]
207
199
 
File without changes
File without changes