TaskForceAI Python SDK
Project description
TaskForceAI Python SDK
The official Python client for TaskForceAI's multi-agent orchestration platform.
- ✅ Sync + async clients powered by
httpx - ✅ Automatic authentication with your TaskForceAI API key
- ✅ Convenience helpers for polling task completion
- ✅ Rich error handling with status codes and retry-ready exceptions
- ✅ Mock mode for development without an API key
Installation
python -m pip install taskforceai
Quick Start
from taskforceai import TaskForceAIClient
client = TaskForceAIClient(api_key="your-api-key")
task_id = client.submit_task("Analyze the security posture of this repository.")
status = client.wait_for_completion(task_id)
print(status["result"])
# Bring your own Vercel AI Gateway key (unlocks premium models)
task_id = client.submit_task(
"Draft a quarterly strategy update.",
vercel_ai_key="sk-vercel-your-gateway-key",
)
# Forward arbitrary TaskForceAI orchestration options
task_id = client.submit_task(
"Do a full repository risk review",
options={"agents": 4, "budget": 12},
)
Mock Mode
Build and test your integration without an API key using mock mode:
from taskforceai import TaskForceAIClient
# No API key required in mock mode
client = TaskForceAIClient(mock_mode=True)
result = client.run_task("Test your integration")
print(result.result) # "This is a mock response. Configure your API key to get real results."
Mock mode simulates the full task lifecycle locally—no network requests are made. Tasks go through "processing" then "completed" states, making it easy to build UIs and test error handling before launch.
Async Variant
import asyncio
from taskforceai import AsyncTaskForceAIClient
async def main() -> None:
async with AsyncTaskForceAIClient(api_key="your-api-key") as client:
result = await client.run_task("Summarize the latest launch notes.")
print(result["result"])
asyncio.run(main())
### Streaming Task Updates
```python
from taskforceai import TaskForceAIClient
client = TaskForceAIClient(api_key="your-api-key")
stream = client.run_task_stream("Map open security issues", poll_interval=0.5)
for status in stream:
print(f"{status['status']}: {status.get('result')}")
# Cancel locally if needed
# stream.cancel()
Async projects can use AsyncTaskForceAIClient.stream_task_status() and iterate with
async for status in stream for non-blocking workflows.
## API Surface
Both clients expose the same methods:
- `submit_task(prompt, *, options=None, silent=None, mock=None, vercel_ai_key=None) -> str`
- `get_task_status(task_id) -> dict`
- `get_task_result(task_id) -> dict`
- `wait_for_completion(task_id, poll_interval=2.0, max_attempts=150, on_status=None) -> dict`
- `run_task(prompt, ..., on_status=None) -> dict`
- `stream_task_status(task_id, ..., on_status=None) -> Iterator`
- `run_task_stream(prompt, ..., on_status=None) -> Iterator`
### Response Hooks & Rate-Limit Telemetry
Both clients accept `response_hook=` in their constructors. The hook is invoked with the
raw `httpx.Response` (headers included) for every request, making it easy to track
rate-limit headers, request IDs, or emit custom metrics without wrapping the SDK.
All responses mirror the REST API payloads. Errors raise `TaskForceAIError`, which includes `status_code` for quick branching.
## Development
```bash
python -m pip install -e "packages/python-sdk[dev]"
pytest packages/python-sdk/tests
ruff format packages/python-sdk/src packages/python-sdk/tests -q
ruff check packages/python-sdk/src packages/python-sdk/tests
mypy --config-file packages/python-sdk/pyproject.toml packages/python-sdk/src
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file taskforceai-1.3.1.tar.gz.
File metadata
- Download URL: taskforceai-1.3.1.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6ffc455cb3bd961207db6c58e8a6b2f8af10820cba5a6a0520caa8f9fb3d4d3
|
|
| MD5 |
863ab9f9637a4d9ad3458daf0d997f47
|
|
| BLAKE2b-256 |
e60dbc7989b27c8368135d948e1bb4f26eb167452769b965637d6d18d632ba4b
|
File details
Details for the file taskforceai-1.3.1-py3-none-any.whl.
File metadata
- Download URL: taskforceai-1.3.1-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c76fbeccb479b857ff4dffa8a755504dafa54144ebbf5e9d2a573873b2a18a4
|
|
| MD5 |
6c450a216f51662f9b677bbee0b8a79d
|
|
| BLAKE2b-256 |
f92a0065f25a3f43271a90515c869cc1421761ba5e6942e94739707ed8a5ab9d
|