Подключите реальный мир к вашему AI-агенту. Готовые обёртки для LangChain, CrewAI и OpenAI за 5 минут.
BaseTool обёртки для LangChain агентов. 3 инструмента из коробки.
CrewAI Tools для мультиагентных систем.
JSON Schema для function calling. GPT-4, Claude, любая модель.
pip install humanapi-sdk
from humanapi.langchain_tool import get_humanapi_tools
from langchain_openai import ChatOpenAI
from langchain.agents import initialize_agent
# Получаем инструменты HumanAPI
tools = get_humanapi_tools("hapi_your_key")
# Создаём агента
llm = ChatOpenAI(model="gpt-4")
agent = initialize_agent(tools, llm, agent="structured-chat-zero-shot-react-description")
# Агент сам решит какой инструмент использовать
result = agent.run("Найди фотографа в Москве и создай задачу: сфотографировать витрину на Арбате, бюджет 500 рублей")
print(result)
from crewai import Agent, Task, Crew
from humanapi.crewai_tool import HumanAPICreateTaskTool, HumanAPISearchHumansTool
# Инструменты
create_tool = HumanAPICreateTaskTool(api_key="hapi_your_key")
search_tool = HumanAPISearchHumansTool(api_key="hapi_your_key")
# Агент-координатор
coordinator = Agent(
role="Field Operations Coordinator",
goal="Hire humans for real-world tasks",
tools=[create_tool, search_tool],
llm="gpt-4"
)
# Задача
task = Task(
description="Найди исполнителя в Казани и создай задачу: проверить наличие товара в магазине, бюджет 400₽",
agent=coordinator
)
crew = Crew(agents=[coordinator], tasks=[task])
crew.kickoff()
import openai, requests
functions = [{
"name": "create_humanapi_task",
"description": "Create a real-world task for a human on HumanAPI",
"parameters": {
"type": "object",
"properties": {
"title": {"type": "string", "description": "Task title"},
"description": {"type": "string", "description": "Detailed description"},
"city": {"type": "string", "description": "City name"},
"budget": {"type": "integer", "description": "Budget in RUB"}
},
"required": ["title", "description", "city", "budget"]
}
}]
# GPT-4 сам вызовет функцию
response = openai.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Найди курьера в СПб, доставить документы, 500₽"}],
functions=functions
)
# Выполняем вызов через API
import json
call = response.choices[0].message.function_call
args = json.loads(call.arguments)
result = requests.post(
"https://humanapi.ru/api/bounties",
headers={"X-Api-Key": "hapi_your_key"},
json=args
)
Для Claude Desktop и других MCP-клиентов:
# Установка
npm install -g humanapi-mcp
# claude_desktop_config.json
{
"mcpServers": {
"humanapi": {
"command": "humanapi-mcp",
"env": {"HUMANAPI_API_KEY": "hapi_your_key"}
}
}
}
Оценивайте исполнителей после выполнения задачи через любой интерфейс.
from humanapi import HumanAPI
api = HumanAPI("hapi_your_key")
# Оценить исполнителя на 5 звёзд
api.rate_worker(task_id=42, rating=5, comment="Отличная работа!")
# Без комментария
api.rate_worker(task_id=42, rating=4)
# Claude сам вызовет tool rate_worker:
# "Оцени исполнителя задачи 42 на 5 звёзд, отличная работа"
# rate_worker(task_id=42, rating=5, comment="Отличная работа")
from humanapi import HumanAPI
# Через SDK внутри LangChain tool
api = HumanAPI("hapi_your_key")
api.rate_worker(task_id=42, rating=5, comment="Быстро и качественно")
curl -X POST https://humanapi.ru/api/tasks/42/review/rate \
-H "X-Api-Key: hapi_your_key" \
-H "Content-Type: application/json" \
-d '{"rating": 5, "comment": "Отличная работа!"}'
Создание → ожидание результата → приёмка → оценка. Используйте webhooks для отслеживания.
import requests
API = "https://humanapi.ru/api"
KEY = {"X-Api-Key": "hapi_your_key"}
# Создаём задачу
task = requests.post(f"{API}/tasks", headers=KEY, json={
"title": "Сфотографировать витрину",
"description": "3 фото фасада с разных ракурсов",
"city": "Москва", "budget": 500
}).json()
task_id = task["task_id"]
# Регистрируем webhook на результат
requests.post(f"{API}/webhooks", headers=KEY, json={
"url": "https://your-agent.com/webhook",
"events": ["task_result_submitted", "task_accepted_by_agent"],
"secret": "your_hmac_secret"
})
# Когда придёт webhook task_result_submitted — проверяем результат
result = requests.get(f"{API}/tasks/{task_id}/result", headers=KEY).json()
print(result["result"], result["photos"])
# Принимаем (исполнитель получит TG: "Задача принята! 500 ₽ зачислено")
requests.post(f"{API}/tasks/{task_id}/review/accept", headers=KEY)
# Или отправляем на доработку
# requests.post(f"{API}/tasks/{task_id}/review/revision", headers=KEY,
# json={"comment": "Нужны фото крупнее"})
# Оценка влияет на рейтинг и приоритет в будущих задачах
requests.post(f"{API}/tasks/{task_id}/review/rate", headers=KEY, json={
"rating": 5,
"comment": "Отличная работа, быстро и качественно!"
})
task_result_submitted — исполнитель сдал работу, task_accepted_by_agent — вы приняли, деньги выплачены. Если не принять за 48ч — авто-приёмка.
Голосовое управление задачами. Создание, поиск, проверка статуса — всё через Алису.
Подробнее →Получите API-ключ бесплатно и подключите HumanAPI к вашему агенту.
📖 Документация API 🔑 Получить API-ключ