актуализация документации и manual теста

This commit is contained in:
Егор Кандрушин 2026-04-19 15:12:07 +03:00
parent 1b8efdb4a4
commit 8256453bbf
2 changed files with 14 additions and 36 deletions

View file

@ -4,6 +4,11 @@ from lambda_agent_api import AgentApi
WebSocket API SDK для взаимодействия с AI-агентом.
## Release Notes
# v1.1
- Добавлен параметр `chat_id` в конструктор `AgentAPI`. Нужен для разделения истории сообщений по чатам/веткам.
- `AgentAPI.connect()` вызывает `AgentBusyException`, если выбранный чат уже занят другим API клиентом.
## Установка
В `master` всегда будет актуальная рабочая версия.
```bash
@ -14,42 +19,10 @@ pip install git+https://git.lambda.coredump.ru/platform/agent_api.git
## Быстрый старт (с использованием AgentApi)
```python
import asyncio
from lambda_agent_api.agent_api import AgentApi
from lambda_agent_api.server import MsgEventTextChunk
**Рабочий REPL пример: [tests/manual.py](tests/manual.py).**
async def main():
api = AgentApi("agent-1", "ws://localhost:8000/ws")
await api.connect()
try:
response = await api.send_message("Привет, агент!")
async for chunk in response:
if isinstance(chunk, MsgEventTextChunk):
print(chunk.text, end="", flush=True)
elif isinstance(chunk, MsgEventToolCallChunk):
print(f"Tool call started: {chunk.tool_name}")
elif isinstance(chunk, MsgEventToolResult):
print(f"Tool result: {chunk.result}")
elif isinstance(chunk, MsgEventCustomUpdate):
print(f"Progress update: {chunk.payload}")
elif isinstance(chunk, MsgEventEnd):
print(f"Generation ended, tokens used: {chunk.tokens_used}")
finally:
await api.close()
asyncio.run(main())
```
> `AgentApi.send_message()` возвращает стриминг-итерируемый объект, который может выдавать не только текстовые чанки, но и события инструментов (`MsgEventToolCallChunk`, `MsgEventToolResult`, `MsgEventCustomUpdate`) и финальный `MsgEventEnd`.
## Предполагаемое использование
## Предполагаемое управление подключениями
```python
from lambda_agent_api.agent_api import AgentApi

View file

@ -1,7 +1,7 @@
import asyncio
import traceback
from lambda_agent_api.agent_api import AgentApi
from lambda_agent_api.agent_api import AgentApi, AgentBusyException
from lambda_agent_api.server import MsgEventTextChunk, MsgEventToolCallChunk, MsgEventToolResult
@ -10,7 +10,12 @@ async def main():
chat_id = input("Chat id: ") or 0
api = AgentApi("agent-1", "ws://localhost:8000/agent_ws/", chat_id=chat_id)
await api.connect()
try:
await api.connect()
except AgentBusyException:
print(f"Чат {chat_id} занят другим клиентом")
return
while True:
try:
prompt = await asyncio.get_event_loop().run_in_executor(None, input, ">>> ")