fast-agent-mcp 0.0.7__py3-none-any.whl → 0.0.8__py3-none-any.whl
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.0.7.dist-info → fast_agent_mcp-0.0.8.dist-info}/METADATA +22 -57
- {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.8.dist-info}/RECORD +29 -23
- mcp_agent/agents/agent.py +8 -4
- mcp_agent/app.py +5 -1
- mcp_agent/cli/commands/bootstrap.py +180 -121
- mcp_agent/cli/commands/setup.py +20 -16
- mcp_agent/core/__init__.py +0 -0
- mcp_agent/core/exceptions.py +47 -0
- mcp_agent/core/fastagent.py +176 -85
- mcp_agent/core/server_validation.py +44 -0
- mcp_agent/event_progress.py +4 -1
- mcp_agent/logging/rich_progress.py +11 -0
- mcp_agent/mcp/mcp_connection_manager.py +11 -2
- mcp_agent/resources/examples/data-analysis/analysis.py +35 -0
- mcp_agent/resources/examples/data-analysis/fastagent.config.yaml +20 -0
- mcp_agent/resources/examples/data-analysis/mount-point/WA_Fn-UseC_-HR-Employee-Attrition.csv +1471 -0
- mcp_agent/resources/examples/workflows/chaining.py +31 -0
- mcp_agent/resources/examples/{decorator/optimizer.py → workflows/evaluator.py} +7 -10
- mcp_agent/resources/examples/workflows/human_input.py +26 -0
- mcp_agent/resources/examples/{decorator → workflows}/orchestrator.py +20 -11
- mcp_agent/resources/examples/{decorator → workflows}/parallel.py +14 -18
- mcp_agent/resources/examples/{decorator → workflows}/router.py +9 -10
- mcp_agent/workflows/llm/augmented_llm_anthropic.py +48 -12
- mcp_agent/workflows/llm/augmented_llm_openai.py +38 -9
- mcp_agent/resources/examples/decorator/main.py +0 -26
- mcp_agent/resources/examples/decorator/tiny.py +0 -22
- {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.8.dist-info}/WHEEL +0 -0
- {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.8.dist-info}/entry_points.txt +0 -0
- {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.8.dist-info}/licenses/LICENSE +0 -0
- /mcp_agent/resources/examples/mcp_researcher/{main-evalopt.py → researcher-eval.py} +0 -0
- /mcp_agent/resources/examples/mcp_researcher/{main.py → researcher.py} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fast-agent-mcp
|
|
3
|
-
Version: 0.0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.0.8
|
|
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
|
|
7
7
|
Version 2.0, January 2004
|
|
@@ -219,7 +219,6 @@ Requires-Dist: opentelemetry-distro>=0.50b0
|
|
|
219
219
|
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.29.0
|
|
220
220
|
Requires-Dist: pydantic-settings>=2.7.0
|
|
221
221
|
Requires-Dist: pydantic>=2.10.4
|
|
222
|
-
Requires-Dist: pyreadline3>=3.5.4
|
|
223
222
|
Requires-Dist: pyyaml>=6.0.2
|
|
224
223
|
Requires-Dist: rich>=13.9.4
|
|
225
224
|
Requires-Dist: scikit-learn>=1.6.0
|
|
@@ -238,35 +237,37 @@ Description-Content-Type: text/markdown
|
|
|
238
237
|
## FastAgent
|
|
239
238
|
|
|
240
239
|
<p align="center">
|
|
241
|
-
<a href="https://pypi.org/project/
|
|
242
|
-
<a href="https://github.com/
|
|
240
|
+
<a href="https://pypi.org/project/fast-agent-mcp/"><img src="https://img.shields.io/pypi/v/fast-agent-mcp?color=%2334D058&label=pypi" /></a>
|
|
241
|
+
<a href="https://github.com/evalstate/fast-agent/issues"><img src="https://img.shields.io/github/issues-raw/evalstate/fast-agent" /></a>
|
|
243
242
|
<a href="https://lmai.link/discord/mcp-agent"><img src="https://shields.io/discord/1089284610329952357" alt="discord" /></a>
|
|
244
|
-
<img alt="Pepy Total Downloads" src="https://img.shields.io/pepy/dt/
|
|
245
|
-
<a href="https://github.com/
|
|
243
|
+
<img alt="Pepy Total Downloads" src="https://img.shields.io/pepy/dt/fast-agent-mcp?label=pypi%20%7C%20downloads"/>
|
|
244
|
+
<a href="https://github.com/evalstate/fast-agent-mcp/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/fast-agent-mcp" /></a>
|
|
246
245
|
</p>
|
|
247
246
|
|
|
248
247
|
## Overview
|
|
249
248
|
|
|
250
|
-
**`
|
|
249
|
+
**`fast-agent`** lets you define, test and compose agents and tools in minutes.
|
|
251
250
|
|
|
252
|
-
|
|
251
|
+
### Get started:
|
|
253
252
|
|
|
254
|
-
|
|
255
|
-
2. [Building Effective Agents](https://www.anthropic.com/research/building-effective-agents) - a seminal writeup on simple, composable patterns for building production-ready AI agents.
|
|
253
|
+
Install the [uv package manager](https://docs.astral.sh/uv/).
|
|
256
254
|
|
|
257
|
-
`
|
|
255
|
+
`uv pip install fast-agent-mcp` - download fast-agent
|
|
258
256
|
|
|
259
|
-
|
|
260
|
-
2. It implements every pattern described in Building Effective Agents, and does so in a _composable_ way, allowing you to chain these patterns together.
|
|
261
|
-
3. **Bonus**: It implements [OpenAI's Swarm](https://github.com/openai/swarm) pattern for multi-agent orchestration, but in a model-agnostic way.
|
|
257
|
+
`fast-agent setup` - setup an agent and configuration files.
|
|
262
258
|
|
|
263
|
-
|
|
264
|
-
|
|
259
|
+
`uv run agent.py` - run and interact with your first agent.
|
|
260
|
+
|
|
261
|
+
`fast-agent bootstrap workflow` - generate example agents demonstrating each of the workflows from Anthropic's "[Building Effective Agents](https://www.anthropic.com/research/building-effective-agents)" paper.
|
|
262
|
+
|
|
263
|
+
It's built on top of [mcp-agent](todo).
|
|
265
264
|
|
|
266
265
|
### llmindset.co.uk fork:
|
|
267
266
|
|
|
268
|
-
- "FastAgent" style prototyping
|
|
269
|
-
-
|
|
267
|
+
- "FastAgent" style prototyping, with per-agent models
|
|
268
|
+
- Warm-up / Post-Workflow Agent Interactions
|
|
269
|
+
- Quick Setup
|
|
270
|
+
- Interactive Prompt Mode
|
|
270
271
|
- Simple Model Selection with aliases
|
|
271
272
|
- User/Assistant and Tool Call message display
|
|
272
273
|
- MCP Sever Environment Variable support
|
|
@@ -274,49 +275,13 @@ We welcome all kinds of [contributions](/CONTRIBUTING.md), feedback and your hel
|
|
|
274
275
|
- Comprehensive Progress display
|
|
275
276
|
- JSONL file logging with secret revokation
|
|
276
277
|
- OpenAI o1/o3-mini support with reasoning level
|
|
277
|
-
-
|
|
278
|
+
- Enhanced Human Input Messaging and Handling
|
|
279
|
+
- Declarative workflows
|
|
278
280
|
|
|
279
281
|
## Get Started
|
|
280
282
|
|
|
281
283
|
We recommend using [uv](https://docs.astral.sh/uv/) to manage your Python projects:
|
|
282
284
|
|
|
283
|
-
```bash
|
|
284
|
-
uv add "mcp-agent"
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
Alternatively:
|
|
288
|
-
|
|
289
|
-
```bash
|
|
290
|
-
pip install mcp-agent
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
### Quickstart
|
|
294
|
-
|
|
295
|
-
> [!TIP]
|
|
296
|
-
> The [`examples`](/examples) directory has several example applications to get started with.
|
|
297
|
-
> To run an example, clone this repo, then:
|
|
298
|
-
>
|
|
299
|
-
> ```bash
|
|
300
|
-
> cd examples/mcp_basic_agent # Or any other example
|
|
301
|
-
> cp mcp_agent.secrets.yaml.example mcp_agent.secrets.yaml # Update API keys
|
|
302
|
-
> uv run main.py
|
|
303
|
-
> ```
|
|
304
|
-
|
|
305
285
|
## Table of Contents
|
|
306
286
|
|
|
307
|
-
## Workflows
|
|
308
|
-
|
|
309
|
-
mcp-agent provides implementations for every pattern in Anthropic’s [Building Effective Agents](https://www.anthropic.com/research/building-effective-agents), as well as the OpenAI [Swarm](https://github.com/openai/swarm) pattern.
|
|
310
|
-
Each pattern is model-agnostic, and exposed as an `AugmentedLLM`, making everything very composable.
|
|
311
|
-
|
|
312
|
-
</details>
|
|
313
|
-
|
|
314
|
-
### Signaling and Human Input
|
|
315
|
-
|
|
316
|
-
**Signaling**: The framework can pause/resume tasks. The agent or LLM might “signal” that it needs user input, so the workflow awaits. A developer may signal during a workflow to seek approval or review before continuing with a workflow.
|
|
317
|
-
|
|
318
|
-
**Human Input**: If an Agent has a `human_input_callback`, the LLM can call a `__human_input__` tool to request user input mid-workflow.
|
|
319
|
-
|
|
320
|
-
## Contributing
|
|
321
|
-
|
|
322
287
|
We welcome any and all kinds of contributions. Please see the [CONTRIBUTING guidelines](./CONTRIBUTING.md) to get started.
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
mcp_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
mcp_agent/app.py,sha256=
|
|
2
|
+
mcp_agent/app.py,sha256=LJ8-9_hTnDOjX0KxRYRu9OPqDcj-fAQSSfS4Oo2m0D8,10550
|
|
3
3
|
mcp_agent/config.py,sha256=mShpoyIAGeyQKMH9gUCAXBZ2HNF3SM2KoMjSMpPQnmg,10210
|
|
4
4
|
mcp_agent/console.py,sha256=Gjf2QLFumwG1Lav__c07X_kZxxEUSkzV-1_-YbAwcwo,813
|
|
5
5
|
mcp_agent/context.py,sha256=qzwUrexZXVBzFiNkYI4xjztdGxuuiDWZbWrQgVhA-vE,8126
|
|
6
6
|
mcp_agent/context_dependent.py,sha256=TGqRLzYCOnsWGoaD1HtrliYtWo8MeaWCQk6ePUmyYCw,1446
|
|
7
|
-
mcp_agent/event_progress.py,sha256=
|
|
7
|
+
mcp_agent/event_progress.py,sha256=uolrsdEuXQ8_8iAspb_w3HHp_yY22QfVyysuQaAhnOg,2641
|
|
8
8
|
mcp_agent/mcp_server_registry.py,sha256=5x30L1IlmC18JASl7NQbZYHMqPWS3ay0f_3U3uleaMM,9884
|
|
9
9
|
mcp_agent/progress_display.py,sha256=GeJU9VUt6qKsFVymG688hCMVCsAygG9ifiiEb5IcbN4,361
|
|
10
10
|
mcp_agent/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
mcp_agent/agents/agent.py,sha256=
|
|
11
|
+
mcp_agent/agents/agent.py,sha256=utMR_QWKD1_MqWE_fYY-xqUMKtGlekW0laJfduU6Ckw,9831
|
|
12
12
|
mcp_agent/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
13
|
mcp_agent/cli/__main__.py,sha256=bhxe66GYqy0q78OQhi7dkuubY1Tn0bQL6hU5Nn47E34,73
|
|
14
14
|
mcp_agent/cli/main.py,sha256=wyOvUg0BihD1NpoiFcIaOruevgaHxs1-Xy_bnwb1Ik4,2449
|
|
15
15
|
mcp_agent/cli/terminal.py,sha256=5fqrKlJvIpKEuvpvZ653OueQSYFFktBEbosjr2ucMUc,1026
|
|
16
|
-
mcp_agent/cli/commands/bootstrap.py,sha256=
|
|
16
|
+
mcp_agent/cli/commands/bootstrap.py,sha256=mVng2bZPKfVEULrOPI7sQQaENAJwU-3SsGZb10mbu6Q,10614
|
|
17
17
|
mcp_agent/cli/commands/config.py,sha256=32YTS5jmsYAs9QzAhjkG70_daAHqOemf4XbZBBSMz6g,204
|
|
18
|
-
mcp_agent/cli/commands/setup.py,sha256=
|
|
19
|
-
mcp_agent/core/
|
|
18
|
+
mcp_agent/cli/commands/setup.py,sha256=Km4-EFJljjMU5XjsSa-srg_7lbPuH5e40sx4lQDkia4,6198
|
|
19
|
+
mcp_agent/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
+
mcp_agent/core/exceptions.py,sha256=xDdhYh83ni3t0NiXQTEL0_Yyx0qQxBPQL1gSwRToeaw,1469
|
|
21
|
+
mcp_agent/core/fastagent.py,sha256=WuT0B9XpGM7XowJivNkRcIm-0BthlObVtoNwcBaNKCA,40641
|
|
22
|
+
mcp_agent/core/server_validation.py,sha256=_59cn16nNT4HGPwg19HgxMtHK4MsdWYDUw_CuL-5xek,1696
|
|
20
23
|
mcp_agent/eval/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
24
|
mcp_agent/executor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
25
|
mcp_agent/executor/decorator_registry.py,sha256=eONv5WvIcjKd43jVqeP7iB2EkAK-ErhdmXt6ogN0K_w,3848
|
|
@@ -33,7 +36,7 @@ mcp_agent/logging/events.py,sha256=qfYJnrqgXdujV-nl-iOwBEBh6HMraowBI4zeAWPPU4A,3
|
|
|
33
36
|
mcp_agent/logging/json_serializer.py,sha256=pa_mf0i0YKpLsGq3THuITFUdAbmae-dv1OPOLbcS0to,5782
|
|
34
37
|
mcp_agent/logging/listeners.py,sha256=lx2Pq_SE0rsG3nF3TwDSxkmsWzdXxIUjuaWct-KOtJ8,6631
|
|
35
38
|
mcp_agent/logging/logger.py,sha256=Tr009BnfGUKuZcdinnSin0Z_zIsfDNGdcnamw2rDHRQ,10604
|
|
36
|
-
mcp_agent/logging/rich_progress.py,sha256
|
|
39
|
+
mcp_agent/logging/rich_progress.py,sha256=ExVCEPfk01BaspOy60o5rnsfnr1aT6UKO0OWGDXYT5s,4560
|
|
37
40
|
mcp_agent/logging/tracing.py,sha256=jQivxKYl870oXakmyUk7TXuTQSvsIzpHwZlSQfy4b0c,5203
|
|
38
41
|
mcp_agent/logging/transport.py,sha256=Oo7Rx5t7REZTnH-uVljK0JlehnBj-wInc_fx0zhd_zY,16139
|
|
39
42
|
mcp_agent/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -42,16 +45,19 @@ mcp_agent/mcp/mcp_activity.py,sha256=CajXCFWZ2cKEX9s4-HfNVAj471ePTVs4NOkvmIh65tE
|
|
|
42
45
|
mcp_agent/mcp/mcp_agent_client_session.py,sha256=NtWcQhjmnnaR3yYcYj2d2lh-m563NexZUa57K1tAjeM,9477
|
|
43
46
|
mcp_agent/mcp/mcp_agent_server.py,sha256=xP09HZTeguJi4Fq0p3fjLBP55uSYe5AdqM90xCgn9Ho,1639
|
|
44
47
|
mcp_agent/mcp/mcp_aggregator.py,sha256=SQNErk20jTT_5cHTQ9zQBYEsAedd6QEweQj-YSzkdOo,14602
|
|
45
|
-
mcp_agent/mcp/mcp_connection_manager.py,sha256=
|
|
48
|
+
mcp_agent/mcp/mcp_connection_manager.py,sha256=tdz2B2BxmO2gBDPe4r6eEnUp4QpwD0p0-ag5J_hle-w,11750
|
|
46
49
|
mcp_agent/mcp/stdio.py,sha256=tW075R5rQ-UlflXWFKIFDgCbWbuhKqxhiYolWvyEkFs,3985
|
|
47
|
-
mcp_agent/resources/examples/
|
|
48
|
-
mcp_agent/resources/examples/
|
|
49
|
-
mcp_agent/resources/examples/
|
|
50
|
-
mcp_agent/resources/examples/
|
|
51
|
-
mcp_agent/resources/examples/
|
|
52
|
-
mcp_agent/resources/examples/
|
|
53
|
-
mcp_agent/resources/examples/
|
|
54
|
-
mcp_agent/resources/examples/
|
|
50
|
+
mcp_agent/resources/examples/data-analysis/analysis.py,sha256=LrfbuK68JqcB9Y21NMedJ8RiEVU5Kr6jOIRLGmwz524,1379
|
|
51
|
+
mcp_agent/resources/examples/data-analysis/fastagent.config.yaml,sha256=VwoXyaxAuLNUm7dtRj5rTxeFDSM_wRhhX_HZunb8jUI,422
|
|
52
|
+
mcp_agent/resources/examples/data-analysis/mount-point/WA_Fn-UseC_-HR-Employee-Attrition.csv,sha256=pcMeOL1_r8m8MziE6xgbBrQbjl5Ijo98yycZn7O-dlk,227977
|
|
53
|
+
mcp_agent/resources/examples/mcp_researcher/researcher-eval.py,sha256=NI1vujVuLeTrcF8dM_ipZZ3Tg-1AL35CaltmuzxWrU4,1807
|
|
54
|
+
mcp_agent/resources/examples/mcp_researcher/researcher.py,sha256=jPRafm7jbpHKkX_dQiYGG3Sw-e1Dm86q-JZT-WZDhM0,1425
|
|
55
|
+
mcp_agent/resources/examples/workflows/chaining.py,sha256=o9vf45BtJP6PT7kCYfIyNTcJrVGnMeKCUD37vI0cepw,770
|
|
56
|
+
mcp_agent/resources/examples/workflows/evaluator.py,sha256=ByILFY7PsA8UXtmNa4YtLIGSsnVfZVjKlHGH9G0ie2I,3069
|
|
57
|
+
mcp_agent/resources/examples/workflows/human_input.py,sha256=RlUch5A8N9pb3REusiIAZKfAGTxWWE82s1Npmkfbg1Y,625
|
|
58
|
+
mcp_agent/resources/examples/workflows/orchestrator.py,sha256=pt6HTyJl5r5zR6FUICi05-Eaulyh_W-PAfh9XCbuuRc,2986
|
|
59
|
+
mcp_agent/resources/examples/workflows/parallel.py,sha256=cNYcIcsdo0-KK-S7KEPCc11aWELeVlQJdJ2LIC9xgDs,3090
|
|
60
|
+
mcp_agent/resources/examples/workflows/router.py,sha256=XT_ewCrxPxdUTMCYQGw34qZQ3GGu8TYY_v5Lige8By4,1707
|
|
55
61
|
mcp_agent/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
62
|
mcp_agent/telemetry/usage_tracking.py,sha256=ePujKMSjPxB7k6X34DGaVlnsV1728mcWZq38OqahiCU,501
|
|
57
63
|
mcp_agent/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -71,8 +77,8 @@ mcp_agent/workflows/intent_classifier/intent_classifier_llm_anthropic.py,sha256=
|
|
|
71
77
|
mcp_agent/workflows/intent_classifier/intent_classifier_llm_openai.py,sha256=zj76WlTYnSCYjBQ_IDi5vFBQGmNwYaoUq1rT730sY98,1940
|
|
72
78
|
mcp_agent/workflows/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
79
|
mcp_agent/workflows/llm/augmented_llm.py,sha256=o5Vdn1sAgVBhmetilbiYJuVz5BAtEhNcwGMEBGNzU_A,22960
|
|
74
|
-
mcp_agent/workflows/llm/augmented_llm_anthropic.py,sha256=
|
|
75
|
-
mcp_agent/workflows/llm/augmented_llm_openai.py,sha256=
|
|
80
|
+
mcp_agent/workflows/llm/augmented_llm_anthropic.py,sha256=jowYvWBdVspxQhcvZt14iL_1kEZK2t4f6Wzgn_8zLaY,21048
|
|
81
|
+
mcp_agent/workflows/llm/augmented_llm_openai.py,sha256=RqsbX0Fc5By1AvQ2N85hxzz0d84mVwuPggslxwqSJVM,24190
|
|
76
82
|
mcp_agent/workflows/llm/llm_selector.py,sha256=G7pIybuBDwtmyxUDov_QrNYH2FoI0qFRu2JfoxWUF5Y,11045
|
|
77
83
|
mcp_agent/workflows/llm/model_factory.py,sha256=cAjG8UxzUC_wcB6mPaMfEhwnGnVS4-IOmOXDabO1_0g,6119
|
|
78
84
|
mcp_agent/workflows/orchestrator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -93,8 +99,8 @@ mcp_agent/workflows/swarm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
|
93
99
|
mcp_agent/workflows/swarm/swarm.py,sha256=-lAIeSWDqbGHGRPTvjiP9nIKWvxxy9DAojl9yQzO1Pw,11050
|
|
94
100
|
mcp_agent/workflows/swarm/swarm_anthropic.py,sha256=pW8zFx5baUWGd5Vw3nIDF2oVOOGNorij4qvGJKdYPcs,1624
|
|
95
101
|
mcp_agent/workflows/swarm/swarm_openai.py,sha256=wfteywvAGkT5bLmIxX_StHJq8144whYmCRnJASAjOes,1596
|
|
96
|
-
fast_agent_mcp-0.0.
|
|
97
|
-
fast_agent_mcp-0.0.
|
|
98
|
-
fast_agent_mcp-0.0.
|
|
99
|
-
fast_agent_mcp-0.0.
|
|
100
|
-
fast_agent_mcp-0.0.
|
|
102
|
+
fast_agent_mcp-0.0.8.dist-info/METADATA,sha256=tPypBpbGkwNNIRHnJJF7Nn68O1bJHIdV3WFvVup3xyI,15914
|
|
103
|
+
fast_agent_mcp-0.0.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
104
|
+
fast_agent_mcp-0.0.8.dist-info/entry_points.txt,sha256=2IXtSmDK9XjWN__RWuRIJTgWyW17wJnJ_h-pb0pZAxo,174
|
|
105
|
+
fast_agent_mcp-0.0.8.dist-info/licenses/LICENSE,sha256=cN3FxDURL9XuzE5mhK9L2paZo82LTfjwCYVT7e3j0e4,10939
|
|
106
|
+
fast_agent_mcp-0.0.8.dist-info/RECORD,,
|
mcp_agent/agents/agent.py
CHANGED
|
@@ -43,6 +43,7 @@ class AgentConfig:
|
|
|
43
43
|
model: Optional[str] = None
|
|
44
44
|
use_history: bool = True
|
|
45
45
|
default_request_params: Optional[RequestParams] = None
|
|
46
|
+
human_input: bool = False
|
|
46
47
|
|
|
47
48
|
def __post_init__(self):
|
|
48
49
|
"""Ensure default_request_params exists with proper history setting"""
|
|
@@ -103,10 +104,13 @@ class Agent(MCPAggregator):
|
|
|
103
104
|
# Map function names to tools
|
|
104
105
|
self._function_tool_map: Dict[str, FastTool] = {}
|
|
105
106
|
|
|
106
|
-
self.
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
if not self.config.human_input:
|
|
108
|
+
self.human_input_callback = None
|
|
109
|
+
else:
|
|
110
|
+
self.human_input_callback: HumanInputCallback | None = human_input_callback
|
|
111
|
+
if not human_input_callback:
|
|
112
|
+
if self.context.human_input_handler:
|
|
113
|
+
self.human_input_callback = self.context.human_input_handler
|
|
110
114
|
|
|
111
115
|
async def initialize(self):
|
|
112
116
|
"""
|
mcp_agent/app.py
CHANGED
|
@@ -154,7 +154,11 @@ class MCPApp:
|
|
|
154
154
|
"agent_name": "mcp_application_loop",
|
|
155
155
|
},
|
|
156
156
|
)
|
|
157
|
-
|
|
157
|
+
try:
|
|
158
|
+
await cleanup_context()
|
|
159
|
+
except asyncio.CancelledError:
|
|
160
|
+
self.logger.debug("Cleanup cancelled error during shutdown")
|
|
161
|
+
|
|
158
162
|
self._context = None
|
|
159
163
|
self._initialized = False
|
|
160
164
|
|