fast-agent-mcp 0.2.58__tar.gz → 0.3.1__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.
Potentially problematic release.
This version of fast-agent-mcp might be problematic. Click here for more details.
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/.gitignore +1 -3
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/PKG-INFO +7 -7
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/README.md +1 -1
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/custom-agents/agent.py +3 -3
- {fast_agent_mcp-0.2.58/src/mcp_agent/resources → fast_agent_mcp-0.3.1}/examples/data-analysis/analysis-campaign.py +5 -4
- {fast_agent_mcp-0.2.58/src/mcp_agent/resources → fast_agent_mcp-0.3.1}/examples/data-analysis/analysis.py +1 -1
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/elicitations/forms_demo.py +3 -3
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/elicitations/game_character.py +2 -2
- {fast_agent_mcp-0.2.58/src/mcp_agent/resources → fast_agent_mcp-0.3.1}/examples/mcp/elicitations/game_character_handler.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent/resources → fast_agent_mcp-0.3.1}/examples/mcp/elicitations/tool_call.py +1 -1
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/mcp-filtering/test_mcp_filtering.py +27 -23
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/state-transfer/agent_one.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent/resources → fast_agent_mcp-0.3.1}/examples/mcp/state-transfer/agent_two.py +1 -1
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/vision-examples/example1.py +2 -2
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/vision-examples/example2.py +1 -1
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/vision-examples/example3.py +1 -1
- fast_agent_mcp-0.3.1/examples/new-api/display_check.py +25 -0
- fast_agent_mcp-0.3.1/examples/new-api/simple_llm.py +80 -0
- fast_agent_mcp-0.3.1/examples/new-api/simple_llm_advanced.py +110 -0
- fast_agent_mcp-0.3.1/examples/new-api/simple_mcp.py +27 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/otel/agent.py +3 -3
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/otel/agent2.py +3 -3
- {fast_agent_mcp-0.2.58/src/mcp_agent/resources → fast_agent_mcp-0.3.1}/examples/researcher/researcher-eval.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent/resources → fast_agent_mcp-0.3.1}/examples/researcher/researcher-imp.py +1 -1
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/researcher/researcher.py +1 -1
- fast_agent_mcp-0.3.1/examples/setup/.gitignore +24 -0
- fast_agent_mcp-0.3.1/examples/setup/agent.py +18 -0
- fast_agent_mcp-0.3.1/examples/setup/fastagent.config.yaml +44 -0
- fast_agent_mcp-0.3.1/examples/setup/fastagent.secrets.yaml.example +38 -0
- fast_agent_mcp-0.3.1/examples/setup/pyproject.toml.tmpl +17 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/agent.py +2 -2
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/image_demo.py +3 -3
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/simple_agent.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent/resources → fast_agent_mcp-0.3.1}/examples/workflows/chaining.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent/resources → fast_agent_mcp-0.3.1}/examples/workflows/evaluator.py +3 -3
- {fast_agent_mcp-0.2.58/src/mcp_agent/resources → fast_agent_mcp-0.3.1}/examples/workflows/human_input.py +5 -3
- {fast_agent_mcp-0.2.58/src/mcp_agent/resources → fast_agent_mcp-0.3.1}/examples/workflows/orchestrator.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent/resources → fast_agent_mcp-0.3.1}/examples/workflows/parallel.py +2 -2
- {fast_agent_mcp-0.2.58/src/mcp_agent/resources → fast_agent_mcp-0.3.1}/examples/workflows/router.py +5 -2
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/hatch_build.py +37 -12
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/pyproject.toml +17 -24
- fast_agent_mcp-0.3.1/src/fast_agent/__init__.py +127 -0
- fast_agent_mcp-0.3.1/src/fast_agent/agents/__init__.py +36 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent/core → fast_agent_mcp-0.3.1/src/fast_agent/agents}/agent_types.py +2 -1
- fast_agent_mcp-0.3.1/src/fast_agent/agents/llm_agent.py +217 -0
- fast_agent_mcp-0.3.1/src/fast_agent/agents/llm_decorator.py +486 -0
- fast_agent_mcp-0.2.58/src/mcp_agent/agents/base_agent.py → fast_agent_mcp-0.3.1/src/fast_agent/agents/mcp_agent.py +377 -385
- fast_agent_mcp-0.3.1/src/fast_agent/agents/tool_agent.py +168 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/agents/workflow/chain_agent.py +43 -33
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/agents/workflow/evaluator_optimizer.py +31 -35
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/agents/workflow/iterative_planner.py +56 -47
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/agents/workflow/orchestrator_models.py +4 -4
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/agents/workflow/parallel_agent.py +34 -41
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/agents/workflow/router_agent.py +54 -39
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/cli/__main__.py +5 -3
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/cli/commands/check_config.py +95 -66
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/cli/commands/go.py +20 -11
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/cli/commands/quickstart.py +4 -4
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/cli/commands/server_helpers.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/cli/commands/setup.py +75 -134
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/cli/commands/url_parser.py +9 -8
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/cli/main.py +36 -16
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/cli/terminal.py +2 -2
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/config.py +10 -2
- fast_agent_mcp-0.3.1/src/fast_agent/constants.py +8 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/context.py +24 -19
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/context_dependent.py +9 -5
- fast_agent_mcp-0.3.1/src/fast_agent/core/__init__.py +52 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/core/agent_app.py +39 -36
- fast_agent_mcp-0.3.1/src/fast_agent/core/core_app.py +135 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/core/direct_decorators.py +12 -26
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/core/direct_factory.py +95 -73
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent/core}/executor/executor.py +4 -5
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/core/fastagent.py +32 -32
- fast_agent_mcp-0.3.1/src/fast_agent/core/logging/__init__.py +5 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent/core}/logging/events.py +3 -3
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent/core}/logging/json_serializer.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent/core}/logging/listeners.py +85 -7
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent/core}/logging/logger.py +7 -7
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent/core}/logging/transport.py +10 -11
- fast_agent_mcp-0.3.1/src/fast_agent/core/prompt.py +9 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/core/validation.py +4 -4
- fast_agent_mcp-0.3.1/src/fast_agent/event_progress.py +61 -0
- fast_agent_mcp-0.3.1/src/fast_agent/history/history_exporter.py +44 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/human_input/__init__.py +9 -12
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/human_input/elicitation_handler.py +26 -8
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/human_input/elicitation_state.py +7 -7
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/human_input/simple_form.py +6 -4
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/human_input/types.py +1 -18
- fast_agent_mcp-0.3.1/src/fast_agent/interfaces.py +228 -0
- fast_agent_mcp-0.3.1/src/fast_agent/llm/__init__.py +9 -0
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/augmented_llm.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/fastagent_llm.py +127 -218
- fast_agent_mcp-0.3.1/src/fast_agent/llm/internal/passthrough.py +137 -0
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/augmented_llm_playback.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/internal/playback.py +29 -25
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/augmented_llm_silent.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/internal/silent.py +10 -17
- fast_agent_mcp-0.3.1/src/fast_agent/llm/internal/slow.py +38 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/llm/memory.py +40 -30
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/llm/model_database.py +35 -2
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/llm/model_factory.py +103 -77
- fast_agent_mcp-0.3.1/src/fast_agent/llm/model_info.py +126 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/anthropic}/anthropic_utils.py +7 -7
- fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/anthropic/llm_anthropic.py +603 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/anthropic}/multipart_converter_anthropic.py +79 -86
- {fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/bedrock}/bedrock_utils.py +3 -1
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/augmented_llm_bedrock.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/bedrock/llm_bedrock.py +833 -717
- {fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/google}/google_converter.py +66 -14
- fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/google/llm_google_native.py +431 -0
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/augmented_llm_aliyun.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/openai/llm_aliyun.py +6 -7
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/augmented_llm_azure.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/openai/llm_azure.py +4 -4
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/augmented_llm_deepseek.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/openai/llm_deepseek.py +10 -11
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/augmented_llm_generic.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/openai/llm_generic.py +4 -4
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/augmented_llm_google_oai.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/openai/llm_google_oai.py +4 -4
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/augmented_llm_groq.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/openai/llm_groq.py +14 -16
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/augmented_llm_openai.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/openai/llm_openai.py +133 -207
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/augmented_llm_openrouter.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/openai/llm_openrouter.py +6 -6
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/augmented_llm_tensorzero_openai.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/openai/llm_tensorzero_openai.py +17 -16
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/augmented_llm_xai.py → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/openai/llm_xai.py +6 -6
- {fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/openai}/multipart_converter_openai.py +125 -63
- {fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/openai}/openai_multipart.py +12 -12
- {fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers → fast_agent_mcp-0.3.1/src/fast_agent/llm/provider/openai}/openai_utils.py +18 -16
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/llm/provider_key_manager.py +2 -2
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/llm/provider_types.py +2 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/llm/sampling_converter.py +15 -12
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/llm/usage_tracking.py +23 -5
- fast_agent_mcp-0.3.1/src/fast_agent/mcp/__init__.py +54 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/elicitation_factory.py +3 -3
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/elicitation_handlers.py +19 -10
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/gen_client.py +3 -3
- fast_agent_mcp-0.3.1/src/fast_agent/mcp/helpers/__init__.py +36 -0
- fast_agent_mcp-0.3.1/src/fast_agent/mcp/helpers/content_helpers.py +183 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/helpers/server_config_helpers.py +8 -8
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/hf_auth.py +25 -23
- fast_agent_mcp-0.3.1/src/fast_agent/mcp/interfaces.py +93 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/logger_textio.py +4 -4
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/mcp_agent_client_session.py +49 -44
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/mcp_aggregator.py +66 -115
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/mcp_connection_manager.py +16 -23
- {fast_agent_mcp-0.2.58/src/mcp_agent/core → fast_agent_mcp-0.3.1/src/fast_agent/mcp}/mcp_content.py +23 -15
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/mime_utils.py +39 -0
- fast_agent_mcp-0.3.1/src/fast_agent/mcp/prompt.py +159 -0
- fast_agent_mcp-0.2.58/src/mcp_agent/mcp/prompt_message_multipart.py → fast_agent_mcp-0.3.1/src/fast_agent/mcp/prompt_message_extended.py +27 -20
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/prompt_render.py +21 -19
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/prompt_serialization.py +46 -46
- fast_agent_mcp-0.3.1/src/fast_agent/mcp/prompts/__main__.py +7 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/prompts/prompt_helpers.py +31 -30
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/prompts/prompt_load.py +8 -8
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/prompts/prompt_server.py +11 -19
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/prompts/prompt_template.py +18 -18
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/resource_utils.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/sampling.py +31 -26
- {fast_agent_mcp-0.2.58/src/mcp_agent/mcp_server → fast_agent_mcp-0.3.1/src/fast_agent/mcp/server}/__init__.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent/mcp_server → fast_agent_mcp-0.3.1/src/fast_agent/mcp/server}/agent_server.py +5 -6
- fast_agent_mcp-0.3.1/src/fast_agent/mcp/ui_agent.py +48 -0
- fast_agent_mcp-0.3.1/src/fast_agent/mcp/ui_mixin.py +209 -0
- fast_agent_mcp-0.3.1/src/fast_agent/mcp_server_registry.py +90 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1/src/fast_agent/resources}/examples/data-analysis/analysis-campaign.py +5 -4
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1/src/fast_agent/resources}/examples/data-analysis/analysis.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/mcp/elicitations/forms_demo.py +3 -3
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/mcp/elicitations/game_character.py +2 -2
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1/src/fast_agent/resources}/examples/mcp/elicitations/game_character_handler.py +1 -1
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1/src/fast_agent/resources}/examples/mcp/elicitations/tool_call.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/mcp/state-transfer/agent_one.py +1 -1
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1/src/fast_agent/resources}/examples/mcp/state-transfer/agent_two.py +1 -1
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1/src/fast_agent/resources}/examples/researcher/researcher-eval.py +1 -1
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1/src/fast_agent/resources}/examples/researcher/researcher-imp.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/researcher/researcher.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/agent.py +2 -2
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/image_demo.py +3 -3
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/simple_agent.py +1 -1
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1/src/fast_agent/resources}/examples/workflows/chaining.py +1 -1
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1/src/fast_agent/resources}/examples/workflows/evaluator.py +3 -3
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1/src/fast_agent/resources}/examples/workflows/human_input.py +5 -3
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1/src/fast_agent/resources}/examples/workflows/orchestrator.py +1 -1
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1/src/fast_agent/resources}/examples/workflows/parallel.py +2 -2
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1/src/fast_agent/resources}/examples/workflows/router.py +5 -2
- fast_agent_mcp-0.3.1/src/fast_agent/resources/setup/.gitignore +24 -0
- fast_agent_mcp-0.3.1/src/fast_agent/resources/setup/agent.py +18 -0
- fast_agent_mcp-0.3.1/src/fast_agent/resources/setup/fastagent.config.yaml +44 -0
- fast_agent_mcp-0.3.1/src/fast_agent/resources/setup/fastagent.secrets.yaml.example +38 -0
- fast_agent_mcp-0.3.1/src/fast_agent/resources/setup/pyproject.toml.tmpl +17 -0
- fast_agent_mcp-0.3.1/src/fast_agent/tools/elicitation.py +369 -0
- fast_agent_mcp-0.3.1/src/fast_agent/types/__init__.py +32 -0
- fast_agent_mcp-0.3.1/src/fast_agent/types/llm_stop_reason.py +77 -0
- fast_agent_mcp-0.3.1/src/fast_agent/ui/__init__.py +38 -0
- fast_agent_mcp-0.3.1/src/fast_agent/ui/console_display.py +1005 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent/human_input → fast_agent_mcp-0.3.1/src/fast_agent/ui}/elicitation_form.py +17 -12
- fast_agent_mcp-0.2.58/src/mcp_agent/human_input/elicitation_forms.py → fast_agent_mcp-0.3.1/src/fast_agent/ui/elicitation_style.py +1 -1
- {fast_agent_mcp-0.2.58/src/mcp_agent/core → fast_agent_mcp-0.3.1/src/fast_agent/ui}/enhanced_prompt.py +96 -25
- {fast_agent_mcp-0.2.58/src/mcp_agent/core → fast_agent_mcp-0.3.1/src/fast_agent/ui}/interactive_prompt.py +330 -125
- fast_agent_mcp-0.3.1/src/fast_agent/ui/mcp_ui_utils.py +224 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent/ui}/progress_display.py +2 -2
- {fast_agent_mcp-0.2.58/src/mcp_agent/logging → fast_agent_mcp-0.3.1/src/fast_agent/ui}/rich_progress.py +4 -4
- {fast_agent_mcp-0.2.58/src/mcp_agent/core → fast_agent_mcp-0.3.1/src/fast_agent/ui}/usage_display.py +3 -8
- fast_agent_mcp-0.2.58/src/mcp_agent/__init__.py +0 -114
- fast_agent_mcp-0.2.58/src/mcp_agent/agents/agent.py +0 -92
- fast_agent_mcp-0.2.58/src/mcp_agent/agents/workflow/__init__.py +0 -1
- fast_agent_mcp-0.2.58/src/mcp_agent/agents/workflow/orchestrator_agent.py +0 -597
- fast_agent_mcp-0.2.58/src/mcp_agent/app.py +0 -175
- fast_agent_mcp-0.2.58/src/mcp_agent/core/__init__.py +0 -26
- fast_agent_mcp-0.2.58/src/mcp_agent/core/prompt.py +0 -191
- fast_agent_mcp-0.2.58/src/mcp_agent/event_progress.py +0 -134
- fast_agent_mcp-0.2.58/src/mcp_agent/human_input/handler.py +0 -81
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/__init__.py +0 -2
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/augmented_llm_passthrough.py +0 -232
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/augmented_llm_slow.py +0 -53
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/__init__.py +0 -8
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/augmented_llm_anthropic.py +0 -718
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/augmented_llm_google_native.py +0 -496
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/sampling_converter_anthropic.py +0 -57
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/providers/sampling_converter_openai.py +0 -26
- fast_agent_mcp-0.2.58/src/mcp_agent/llm/sampling_format_converter.py +0 -37
- fast_agent_mcp-0.2.58/src/mcp_agent/logging/__init__.py +0 -0
- fast_agent_mcp-0.2.58/src/mcp_agent/mcp/__init__.py +0 -50
- fast_agent_mcp-0.2.58/src/mcp_agent/mcp/helpers/__init__.py +0 -25
- fast_agent_mcp-0.2.58/src/mcp_agent/mcp/helpers/content_helpers.py +0 -187
- fast_agent_mcp-0.2.58/src/mcp_agent/mcp/interfaces.py +0 -266
- fast_agent_mcp-0.2.58/src/mcp_agent/mcp/prompts/__init__.py +0 -0
- fast_agent_mcp-0.2.58/src/mcp_agent/mcp/prompts/__main__.py +0 -10
- fast_agent_mcp-0.2.58/src/mcp_agent/mcp_server_registry.py +0 -343
- fast_agent_mcp-0.2.58/src/mcp_agent/tools/tool_definition.py +0 -14
- fast_agent_mcp-0.2.58/src/mcp_agent/ui/console_display.py +0 -790
- fast_agent_mcp-0.2.58/src/mcp_agent/ui/console_display_legacy.py +0 -401
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/LICENSE +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/azure-openai/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/bedrock/fast-agent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/custom-agents/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/data-analysis/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/data-analysis/mount-point/WA_Fn-UseC_-HR-Employee-Attrition.csv +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/elicitations/elicitation_account_server.py +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/elicitations/elicitation_forms_server.py +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/elicitations/elicitation_game_server.py +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/elicitations/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/elicitations/fastagent.secrets.yaml.example +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/mcp-filtering/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/mcp-filtering/fastagent.secrets.yaml.example +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/mcp-filtering/mcp_server.py +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/state-transfer/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/state-transfer/fastagent.secrets.yaml.example +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/vision-examples/cat.png +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/vision-examples/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/otel/docker-compose.yaml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/otel/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/researcher/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/.env.sample +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/Makefile +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/README.md +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/demo_images/clam.jpg +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/demo_images/crab.png +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/demo_images/shrimp.png +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/docker-compose.yml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/mcp_server/Dockerfile +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/mcp_server/entrypoint.sh +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/mcp_server/mcp_server.py +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/mcp_server/pyproject.toml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/tensorzero_config/system_schema.json +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/tensorzero_config/system_template.minijinja +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/tensorzero/tensorzero_config/tensorzero.toml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/workflows/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/workflows/graded_report.md +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/workflows/short_story.md +0 -0
- {fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/workflows/short_story.txt +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/agents/workflow/orchestrator_prompts.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent/agents → fast_agent_mcp-0.3.1/src/fast_agent/cli}/__init__.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/cli/constants.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/core/error_handling.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/core/exceptions.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent/cli → fast_agent_mcp-0.3.1/src/fast_agent/core/executor}/__init__.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent/core}/executor/task_registry.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent/core}/executor/workflow_signal.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/human_input/form_fields.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/llm/prompt_utils.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent/core → fast_agent_mcp-0.3.1/src/fast_agent/llm}/request_params.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/common.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent/executor → fast_agent_mcp-0.3.1/src/fast_agent/mcp/prompts}/__init__.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/mcp/prompts/prompt_constants.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/py.typed +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/data-analysis/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/data-analysis/mount-point/WA_Fn-UseC_-HR-Employee-Attrition.csv +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/mcp/elicitations/elicitation_account_server.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/mcp/elicitations/elicitation_forms_server.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/mcp/elicitations/elicitation_game_server.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/mcp/elicitations/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/mcp/elicitations/fastagent.secrets.yaml.example +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/mcp/state-transfer/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/mcp/state-transfer/fastagent.secrets.yaml.example +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/researcher/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/.env.sample +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/Makefile +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/README.md +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/demo_images/clam.jpg +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/demo_images/crab.png +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/demo_images/shrimp.png +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/docker-compose.yml +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/mcp_server/.python-version +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/mcp_server/Dockerfile +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/mcp_server/entrypoint.sh +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/mcp_server/mcp_server.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/mcp_server/pyproject.toml +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/tensorzero_config/system_schema.json +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/tensorzero_config/system_template.minijinja +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/tensorzero/tensorzero_config/tensorzero.toml +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/workflows/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/workflows/graded_report.md +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/workflows/short_story.md +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent}/resources/examples/workflows/short_story.txt +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent → fast_agent_mcp-0.3.1/src/fast_agent/ui}/console.py +0 -0
- {fast_agent_mcp-0.2.58/src/mcp_agent/core → fast_agent_mcp-0.3.1/src/fast_agent/ui}/mermaid_utils.py +0 -0
|
@@ -161,7 +161,7 @@ examples/**/*.secrets.yaml
|
|
|
161
161
|
!examples/**/*.secrets.yaml.example
|
|
162
162
|
|
|
163
163
|
# Build-generated resources (copied from examples/ during build)
|
|
164
|
-
src/
|
|
164
|
+
src/fast_agent/resources/
|
|
165
165
|
|
|
166
166
|
# Test data files
|
|
167
167
|
examples/mcp_root_test/test_data/*.png
|
|
@@ -179,8 +179,6 @@ project_contents.md
|
|
|
179
179
|
|
|
180
180
|
# example logs
|
|
181
181
|
examples/**/*.jsonl
|
|
182
|
-
mcp_agent.config.yaml
|
|
183
|
-
mcp_agent.secrets.yaml
|
|
184
182
|
fastagent.secrets.yaml
|
|
185
183
|
CLAUDE.md
|
|
186
184
|
example-outputs/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fast-agent-mcp
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: Define, Prompt and Test MCP enabled Agents and Workflows
|
|
5
5
|
Author-email: Shaun Smith <fastagent@llmindset.co.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -208,18 +208,18 @@ License-File: LICENSE
|
|
|
208
208
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
209
209
|
Classifier: Operating System :: OS Independent
|
|
210
210
|
Classifier: Programming Language :: Python :: 3
|
|
211
|
-
Requires-Python: >=3.13
|
|
211
|
+
Requires-Python: >=3.13.7
|
|
212
212
|
Requires-Dist: a2a-sdk>=0.3.0
|
|
213
213
|
Requires-Dist: aiohttp>=3.11.13
|
|
214
|
-
Requires-Dist: anthropic>=0.
|
|
214
|
+
Requires-Dist: anthropic>=0.66.0
|
|
215
215
|
Requires-Dist: azure-identity>=1.14.0
|
|
216
216
|
Requires-Dist: boto3>=1.35.0
|
|
217
217
|
Requires-Dist: deprecated>=1.2.18
|
|
218
218
|
Requires-Dist: email-validator>=2.2.0
|
|
219
219
|
Requires-Dist: fastapi>=0.115.6
|
|
220
|
-
Requires-Dist: google-genai>=1.
|
|
221
|
-
Requires-Dist: mcp==1.
|
|
222
|
-
Requires-Dist: openai>=1.
|
|
220
|
+
Requires-Dist: google-genai>=1.33.0
|
|
221
|
+
Requires-Dist: mcp==1.14.0
|
|
222
|
+
Requires-Dist: openai>=1.106.1
|
|
223
223
|
Requires-Dist: opentelemetry-distro>=0.55b0
|
|
224
224
|
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.7.0
|
|
225
225
|
Requires-Dist: opentelemetry-instrumentation-anthropic>=0.43.1; python_version >= '3.10' and python_version < '4.0'
|
|
@@ -321,7 +321,7 @@ Here is the complete `sizer.py` Agent application, with boilerplate code:
|
|
|
321
321
|
|
|
322
322
|
```python
|
|
323
323
|
import asyncio
|
|
324
|
-
from
|
|
324
|
+
from fast_agent.core.fastagent import FastAgent
|
|
325
325
|
|
|
326
326
|
# Create the application
|
|
327
327
|
fast = FastAgent("Agent Example")
|
|
@@ -83,7 +83,7 @@ Here is the complete `sizer.py` Agent application, with boilerplate code:
|
|
|
83
83
|
|
|
84
84
|
```python
|
|
85
85
|
import asyncio
|
|
86
|
-
from
|
|
86
|
+
from fast_agent.core.fastagent import FastAgent
|
|
87
87
|
|
|
88
88
|
# Create the application
|
|
89
89
|
fast = FastAgent("Agent Example")
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
from
|
|
3
|
+
from fast_agent.agents.mcp_agent import McpAgent
|
|
4
|
+
from fast_agent.core.fastagent import FastAgent
|
|
5
5
|
|
|
6
6
|
# Create the application
|
|
7
7
|
fast = FastAgent("fast-agent example")
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
class MyAgent(
|
|
10
|
+
class MyAgent(McpAgent):
|
|
11
11
|
async def initialize(self):
|
|
12
12
|
await super().initialize()
|
|
13
13
|
print("it's a-me!...Mario!")
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
from
|
|
3
|
+
from fast_agent.core.fastagent import FastAgent
|
|
4
|
+
from fast_agent.llm.fastagent_llm import RequestParams
|
|
5
5
|
|
|
6
6
|
# Create the application
|
|
7
7
|
fast = FastAgent("Data Analysis & Campaign Generator")
|
|
@@ -179,8 +179,9 @@ async def main() -> None:
|
|
|
179
179
|
)
|
|
180
180
|
|
|
181
181
|
async with fast.run() as agent:
|
|
182
|
-
await agent.
|
|
183
|
-
|
|
182
|
+
await agent.interactive(
|
|
183
|
+
"research_campaign_creator",
|
|
184
|
+
default_prompt="Analyze the CSV file in the current directory and create a comprehensive multi-lingual social media campaign based on the findings. Save all campaign elements as separate files.",
|
|
184
185
|
)
|
|
185
186
|
|
|
186
187
|
|
|
@@ -13,8 +13,8 @@ import asyncio
|
|
|
13
13
|
from rich.console import Console
|
|
14
14
|
from rich.panel import Panel
|
|
15
15
|
|
|
16
|
-
from
|
|
17
|
-
from
|
|
16
|
+
from fast_agent.core.fastagent import FastAgent
|
|
17
|
+
from fast_agent.mcp.helpers.content_helpers import get_resource_text
|
|
18
18
|
|
|
19
19
|
fast = FastAgent("Elicitation Forms Demo", quiet=True)
|
|
20
20
|
console = Console()
|
|
@@ -38,7 +38,7 @@ async def main():
|
|
|
38
38
|
console.print(
|
|
39
39
|
"[dim]Demonstrates: string validation, email format, URL format, date format[/dim]"
|
|
40
40
|
)
|
|
41
|
-
result = await agent.get_resource("elicitation://event-registration")
|
|
41
|
+
result = await agent["forms-demo"].get_resource("elicitation://event-registration")
|
|
42
42
|
|
|
43
43
|
if result_text := get_resource_text(result):
|
|
44
44
|
panel = Panel(
|
|
@@ -14,8 +14,8 @@ from game_character_handler import game_character_elicitation_handler
|
|
|
14
14
|
from rich.console import Console
|
|
15
15
|
from rich.panel import Panel
|
|
16
16
|
|
|
17
|
-
from
|
|
18
|
-
from
|
|
17
|
+
from fast_agent.core.fastagent import FastAgent
|
|
18
|
+
from fast_agent.mcp.helpers.content_helpers import get_resource_text
|
|
19
19
|
|
|
20
20
|
fast = FastAgent("Game Character Creator", quiet=True)
|
|
21
21
|
console = Console()
|
|
@@ -17,7 +17,7 @@ from rich.progress import BarColumn, Progress, TextColumn
|
|
|
17
17
|
from rich.prompt import Confirm
|
|
18
18
|
from rich.table import Table
|
|
19
19
|
|
|
20
|
-
from
|
|
20
|
+
from fast_agent.core.logging.logger import get_logger
|
|
21
21
|
|
|
22
22
|
if TYPE_CHECKING:
|
|
23
23
|
from mcp import ClientSession
|
{fast_agent_mcp-0.2.58 → fast_agent_mcp-0.3.1}/examples/mcp/mcp-filtering/test_mcp_filtering.py
RENAMED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import sys
|
|
3
3
|
|
|
4
|
-
from
|
|
4
|
+
from fast_agent.core.fastagent import FastAgent, PromptExitError
|
|
5
|
+
|
|
6
|
+
fast_agent = FastAgent(name="MCP Filtering Demo", parse_cli_args=False, quiet=False)
|
|
5
7
|
|
|
6
|
-
fast_agent = FastAgent(
|
|
7
|
-
name="MCP Filtering Demo",
|
|
8
|
-
parse_cli_args=False,
|
|
9
|
-
quiet=False
|
|
10
|
-
)
|
|
11
8
|
|
|
12
9
|
@fast_agent.agent(
|
|
13
|
-
name="filtered_agent",
|
|
10
|
+
name="filtered_agent",
|
|
14
11
|
model="gpt-4o-mini",
|
|
15
12
|
instruction="You are a creative writer with filtered access to tools, resources, and prompts.",
|
|
16
13
|
servers=["creativity"],
|
|
@@ -19,75 +16,82 @@ fast_agent = FastAgent(
|
|
|
19
16
|
# Resource filtering: only writing resources (not coding resources)
|
|
20
17
|
resources={"creativity": ["resource://writing/*"]},
|
|
21
18
|
# Prompt filtering: only writing prompts (not coding prompts)
|
|
22
|
-
prompts={"creativity": ["writing_*"]}
|
|
19
|
+
prompts={"creativity": ["writing_*"]},
|
|
23
20
|
)
|
|
24
21
|
async def filtered_agent():
|
|
25
22
|
return "Filtered agent ready"
|
|
26
23
|
|
|
24
|
+
|
|
27
25
|
@fast_agent.agent(
|
|
28
26
|
name="unfiltered_agent",
|
|
29
|
-
model="gpt-4o-mini",
|
|
27
|
+
model="gpt-4o-mini",
|
|
30
28
|
instruction="You are a creative writer with access to all tools, resources, and prompts.",
|
|
31
|
-
servers=["creativity"]
|
|
29
|
+
servers=["creativity"],
|
|
32
30
|
# No filtering - gets everything
|
|
33
31
|
)
|
|
34
32
|
async def unfiltered_agent():
|
|
35
33
|
return "Unfiltered agent ready"
|
|
36
34
|
|
|
35
|
+
|
|
37
36
|
async def main():
|
|
38
37
|
try:
|
|
39
38
|
async with fast_agent.run() as agent:
|
|
40
39
|
try:
|
|
41
40
|
print("🎯 MCP Filtering Demo")
|
|
42
41
|
print("=" * 50)
|
|
43
|
-
|
|
42
|
+
|
|
44
43
|
# Show filtered agent capabilities
|
|
45
44
|
print("\n📦 FILTERED AGENT:")
|
|
46
45
|
filtered = agent._agent("filtered_agent")
|
|
47
|
-
|
|
46
|
+
|
|
48
47
|
tools = await filtered.list_tools()
|
|
49
|
-
print(
|
|
50
|
-
|
|
48
|
+
print(
|
|
49
|
+
f"✅ Available tools ({len(tools.tools)}): {[tool.name for tool in tools.tools]}"
|
|
50
|
+
)
|
|
51
|
+
|
|
51
52
|
resources = await filtered.list_resources()
|
|
52
53
|
resource_list = resources.get("creativity", [])
|
|
53
54
|
print(f"📚 Available resources ({len(resource_list)}): {resource_list}")
|
|
54
|
-
|
|
55
|
+
|
|
55
56
|
prompts = await filtered.list_prompts()
|
|
56
57
|
prompt_list = prompts.get("creativity", [])
|
|
57
58
|
prompt_names = [p.name for p in prompt_list]
|
|
58
59
|
print(f"💬 Available prompts ({len(prompt_names)}): {prompt_names}")
|
|
59
|
-
|
|
60
|
+
|
|
60
61
|
# Show unfiltered agent capabilities
|
|
61
62
|
print("\n🌐 UNFILTERED AGENT:")
|
|
62
63
|
unfiltered = agent._agent("unfiltered_agent")
|
|
63
|
-
|
|
64
|
+
|
|
64
65
|
tools = await unfiltered.list_tools()
|
|
65
|
-
print(
|
|
66
|
-
|
|
66
|
+
print(
|
|
67
|
+
f"✅ Available tools ({len(tools.tools)}): {[tool.name for tool in tools.tools]}"
|
|
68
|
+
)
|
|
69
|
+
|
|
67
70
|
resources = await unfiltered.list_resources()
|
|
68
71
|
resource_list = resources.get("creativity", [])
|
|
69
72
|
print(f"📚 Available resources ({len(resource_list)}): {resource_list}")
|
|
70
|
-
|
|
73
|
+
|
|
71
74
|
prompts = await unfiltered.list_prompts()
|
|
72
75
|
prompt_list = prompts.get("creativity", [])
|
|
73
76
|
prompt_names = [p.name for p in prompt_list]
|
|
74
77
|
print(f"💬 Available prompts ({len(prompt_names)}): {prompt_names}")
|
|
75
|
-
|
|
78
|
+
|
|
76
79
|
print("\n" + "=" * 50)
|
|
77
80
|
print("🚀 Starting interactive session with filtered agent...")
|
|
78
81
|
print("Type 'exit' to quit")
|
|
79
|
-
|
|
82
|
+
|
|
80
83
|
await agent.interactive(agent_name="filtered_agent")
|
|
81
84
|
|
|
82
85
|
except PromptExitError:
|
|
83
86
|
print("👋 Goodbye!")
|
|
84
|
-
|
|
87
|
+
|
|
85
88
|
except KeyboardInterrupt:
|
|
86
89
|
print("\nExiting...")
|
|
87
90
|
sys.exit(0)
|
|
88
91
|
except Exception as e:
|
|
89
92
|
print(f"Error: {e}")
|
|
90
93
|
import traceback
|
|
94
|
+
|
|
91
95
|
traceback.print_exc()
|
|
92
96
|
sys.exit(1)
|
|
93
97
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
|
|
4
|
-
from
|
|
5
|
-
from
|
|
4
|
+
from fast_agent.core.fastagent import FastAgent
|
|
5
|
+
from fast_agent.core.prompt import Prompt
|
|
6
6
|
|
|
7
7
|
# Create the application
|
|
8
8
|
fast = FastAgent("fast-agent example")
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
|
|
3
|
+
from fast_agent.agents.agent_types import AgentConfig
|
|
4
|
+
from fast_agent.agents.llm_agent import LlmAgent
|
|
5
|
+
from fast_agent.core import Core
|
|
6
|
+
from fast_agent.llm.model_factory import ModelFactory
|
|
7
|
+
from fast_agent.llm.request_params import RequestParams
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
async def main():
|
|
11
|
+
core: Core = Core()
|
|
12
|
+
await core.initialize()
|
|
13
|
+
test: AgentConfig = AgentConfig("hello", model="kimi")
|
|
14
|
+
agent: LlmAgent = LlmAgent(test, context=core.context)
|
|
15
|
+
await agent.attach_llm(ModelFactory.create_factory("haiku"))
|
|
16
|
+
await agent.send("hello world, render some xml tags both inside and outside of code fences")
|
|
17
|
+
await agent.generate("write a 200 word story", RequestParams(maxTokens=50))
|
|
18
|
+
await agent.generate(
|
|
19
|
+
"repeat after me: `one, two, three, four`",
|
|
20
|
+
RequestParams(stopSequences=[" two,"]),
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
if __name__ == "__main__":
|
|
25
|
+
asyncio.run(main())
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
|
|
3
|
+
from mcp.server.fastmcp import FastMCP
|
|
4
|
+
|
|
5
|
+
from fast_agent.agents.agent_types import AgentConfig
|
|
6
|
+
from fast_agent.agents.tool_agent import ToolAgent
|
|
7
|
+
from fast_agent.core import Core
|
|
8
|
+
from fast_agent.llm.model_factory import ModelFactory
|
|
9
|
+
|
|
10
|
+
# Initialize FastMCP instance for decorator-based tools
|
|
11
|
+
# Set log_level to WARNING or ERROR to avoid httpx INFO logs
|
|
12
|
+
mcp = FastMCP("Weather Bot", log_level="WARNING")
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# Option 1: Using @mcp.tool decorator
|
|
16
|
+
@mcp.tool()
|
|
17
|
+
async def check_weather(city: str) -> str:
|
|
18
|
+
"""Check the weather in a given city.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
city: The city to check the weather for
|
|
22
|
+
|
|
23
|
+
Returns:
|
|
24
|
+
Weather information for the city
|
|
25
|
+
"""
|
|
26
|
+
return f"The weather in {city} is sunny."
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# Option 2: Simple function-based tool (without decorator)
|
|
30
|
+
async def check_weather_function(city: str) -> str:
|
|
31
|
+
"""Check the weather in a given city (function version).
|
|
32
|
+
|
|
33
|
+
Args:
|
|
34
|
+
city: The city to check the weather for
|
|
35
|
+
|
|
36
|
+
Returns:
|
|
37
|
+
Weather information for the city
|
|
38
|
+
"""
|
|
39
|
+
return f"The weather in {city} is sunny."
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
# Alternative: Regular (non-async) function also works
|
|
43
|
+
def get_temperature(city: str) -> int:
|
|
44
|
+
"""Get the temperature in a city.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
city: The city to get temperature for
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
Temperature in degrees Celsius
|
|
51
|
+
"""
|
|
52
|
+
return 22
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
async def main():
|
|
56
|
+
core: Core = Core()
|
|
57
|
+
await core.initialize()
|
|
58
|
+
|
|
59
|
+
# Create agent configuration
|
|
60
|
+
config = AgentConfig(name="weather_bot", model="haiku")
|
|
61
|
+
|
|
62
|
+
tool_agent = ToolAgent(
|
|
63
|
+
config,
|
|
64
|
+
tools=[
|
|
65
|
+
check_weather,
|
|
66
|
+
get_temperature,
|
|
67
|
+
],
|
|
68
|
+
context=core.context,
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
# Attach the LLM
|
|
72
|
+
await tool_agent.attach_llm(ModelFactory.create_factory("haiku"))
|
|
73
|
+
|
|
74
|
+
# Test the agent
|
|
75
|
+
await tool_agent.send("What's the weather like in San Francisco and what's the temperature?")
|
|
76
|
+
await core.cleanup()
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
if __name__ == "__main__":
|
|
80
|
+
asyncio.run(main())
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
from typing import Any, Dict
|
|
3
|
+
|
|
4
|
+
from mcp.server.fastmcp.tools.base import Tool as FastMCPTool
|
|
5
|
+
|
|
6
|
+
from fast_agent.agents.agent_types import AgentConfig
|
|
7
|
+
from fast_agent.agents.tool_agent import ToolAgent
|
|
8
|
+
from fast_agent.core import Core
|
|
9
|
+
from fast_agent.llm.model_factory import ModelFactory
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
# Example 1: Simple function that will be wrapped
|
|
13
|
+
async def search_web(query: str, max_results: int = 5) -> str:
|
|
14
|
+
"""Search the web for information.
|
|
15
|
+
|
|
16
|
+
Args:
|
|
17
|
+
query: The search query
|
|
18
|
+
max_results: Maximum number of results to return
|
|
19
|
+
|
|
20
|
+
Returns:
|
|
21
|
+
Search results as a formatted string
|
|
22
|
+
"""
|
|
23
|
+
# Mock implementation
|
|
24
|
+
return f"Found {max_results} results for '{query}': [Result 1, Result 2, ...]"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# Example 2: Create a FastMCP Tool directly for more control
|
|
28
|
+
def create_calculator_tool() -> FastMCPTool:
|
|
29
|
+
"""Create a calculator tool with explicit schema."""
|
|
30
|
+
|
|
31
|
+
def calculate(operation: str, a: float, b: float) -> float:
|
|
32
|
+
"""Perform a calculation."""
|
|
33
|
+
operations = {
|
|
34
|
+
"add": lambda x, y: x + y,
|
|
35
|
+
"subtract": lambda x, y: x - y,
|
|
36
|
+
"multiply": lambda x, y: x * y,
|
|
37
|
+
"divide": lambda x, y: x / y if y != 0 else float("inf"),
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if operation not in operations:
|
|
41
|
+
raise ValueError(f"Unknown operation: {operation}")
|
|
42
|
+
|
|
43
|
+
return operations[operation](a, b)
|
|
44
|
+
|
|
45
|
+
# Create the tool with explicit configuration
|
|
46
|
+
return FastMCPTool.from_function(
|
|
47
|
+
fn=calculate,
|
|
48
|
+
name="calculator",
|
|
49
|
+
description="Perform basic arithmetic operations",
|
|
50
|
+
# FastMCP will still generate the schema, but we could override if needed
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
# Example 3: Complex async tool with side effects
|
|
55
|
+
async def send_email(to: str, subject: str, body: str) -> Dict[str, Any]:
|
|
56
|
+
"""Send an email (mock implementation).
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
to: Recipient email address
|
|
60
|
+
subject: Email subject
|
|
61
|
+
body: Email body content
|
|
62
|
+
|
|
63
|
+
Returns:
|
|
64
|
+
Dictionary with send status and message ID
|
|
65
|
+
"""
|
|
66
|
+
# Mock async operation
|
|
67
|
+
await asyncio.sleep(0.1)
|
|
68
|
+
|
|
69
|
+
return {
|
|
70
|
+
"status": "sent",
|
|
71
|
+
"message_id": f"msg_{hash((to, subject))}",
|
|
72
|
+
"timestamp": "2024-01-01T12:00:00Z",
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
async def main():
|
|
77
|
+
core: Core = Core()
|
|
78
|
+
await core.initialize()
|
|
79
|
+
|
|
80
|
+
# Create agent configuration
|
|
81
|
+
config = AgentConfig(name="assistant", model="haiku")
|
|
82
|
+
|
|
83
|
+
# Mix different tool types
|
|
84
|
+
tools = [
|
|
85
|
+
search_web, # Async function
|
|
86
|
+
create_calculator_tool(), # Pre-configured FastMCP Tool
|
|
87
|
+
send_email, # Complex async function
|
|
88
|
+
]
|
|
89
|
+
|
|
90
|
+
# Create tool agent
|
|
91
|
+
tool_agent = ToolAgent(config, tools=tools, context=core.context)
|
|
92
|
+
|
|
93
|
+
# Attach the LLM
|
|
94
|
+
await tool_agent.attach_llm(ModelFactory.create_factory("haiku"))
|
|
95
|
+
|
|
96
|
+
# Test various tools
|
|
97
|
+
print("Testing search:")
|
|
98
|
+
await tool_agent.send("Search for information about Python FastMCP")
|
|
99
|
+
|
|
100
|
+
print("\nTesting calculator:")
|
|
101
|
+
await tool_agent.send("What is 42 multiplied by 17?")
|
|
102
|
+
|
|
103
|
+
print("\nTesting email:")
|
|
104
|
+
await tool_agent.send(
|
|
105
|
+
"Send an email to test@example.com with subject 'Hello' and body 'Test message'"
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
if __name__ == "__main__":
|
|
110
|
+
asyncio.run(main())
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
|
|
3
|
+
from fast_agent.core import Core
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
async def main():
|
|
7
|
+
core: Core = Core()
|
|
8
|
+
await core.initialize()
|
|
9
|
+
|
|
10
|
+
# # Create agent configuration
|
|
11
|
+
# config = AgentConfig(name="weather_bot", model="haiku")
|
|
12
|
+
|
|
13
|
+
# tool_agent = McpAgent(
|
|
14
|
+
# config,
|
|
15
|
+
# context=core.context,
|
|
16
|
+
# )
|
|
17
|
+
|
|
18
|
+
# # Attach the LLM
|
|
19
|
+
# await tool_agent.attach_llm(ModelFactory.create_factory("haiku"))
|
|
20
|
+
|
|
21
|
+
# # Test the agent
|
|
22
|
+
# await tool_agent.send("What's the weather like in San Francisco and what's the temperature?")
|
|
23
|
+
# await core.cleanup()
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
if __name__ == "__main__":
|
|
27
|
+
asyncio.run(main())
|
|
@@ -3,9 +3,9 @@ from typing import Annotated
|
|
|
3
3
|
|
|
4
4
|
from pydantic import BaseModel, Field
|
|
5
5
|
|
|
6
|
-
from
|
|
7
|
-
from
|
|
8
|
-
from
|
|
6
|
+
from fast_agent.core.fastagent import FastAgent
|
|
7
|
+
from fast_agent.core.prompt import Prompt
|
|
8
|
+
from fast_agent.llm.request_params import RequestParams
|
|
9
9
|
|
|
10
10
|
# Create the application
|
|
11
11
|
fast = FastAgent("fast-agent example")
|
|
@@ -3,9 +3,9 @@ from typing import Annotated
|
|
|
3
3
|
|
|
4
4
|
from pydantic import BaseModel, Field
|
|
5
5
|
|
|
6
|
-
from
|
|
7
|
-
from
|
|
8
|
-
from
|
|
6
|
+
from fast_agent.core.fastagent import FastAgent
|
|
7
|
+
from fast_agent.core.prompt import Prompt
|
|
8
|
+
from fast_agent.llm.request_params import RequestParams
|
|
9
9
|
|
|
10
10
|
# Create the application
|
|
11
11
|
fast = FastAgent("fast-agent example")
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Secrets
|
|
2
|
+
fastagent.secrets.yaml
|
|
3
|
+
|
|
4
|
+
# Python cache/bytecode
|
|
5
|
+
__pycache__/
|
|
6
|
+
*.py[cod]
|
|
7
|
+
|
|
8
|
+
# Local env and virtualenvs
|
|
9
|
+
.env
|
|
10
|
+
.venv/
|
|
11
|
+
venv/
|
|
12
|
+
env/
|
|
13
|
+
|
|
14
|
+
# OS cruft
|
|
15
|
+
.DS_Store
|
|
16
|
+
Thumbs.db
|
|
17
|
+
|
|
18
|
+
# Logs/artifacts
|
|
19
|
+
fastagent.jsonl
|
|
20
|
+
*.jsonl
|
|
21
|
+
|
|
22
|
+
# Editors (optional)
|
|
23
|
+
.idea/
|
|
24
|
+
.vscode/
|