Forge
markdowncf25d736
1# AcpSmoke — локальная проверка Agent Client Protocol (ACP)
2
3Зачем: убедиться, что **клиентская** сторона ACP (как будущий Cascade) может поднять subprocess-агента по stdio и пройти `initialize` → `new_session` → `prompt`. Это не интеграция с Cursor, а **эталонный echo-агент** из официального [python-sdk](https://github.com/agentclientprotocol/python-sdk) (`examples/echo_agent.py`).
4
5## Требования
6
7- Python 3.10+ (см. `echo_agent.py`, PEP 723 deps)
8- `pip` или `uv`
9
10## Запуск
11
12```bash
13cd samples/AcpSmoke
14pip install -r requirements.txt
15python smoke_client.py
16```
17
18Ожидается вывод вида `session_update: ...` и строка `ACP smoke OK`.
19
20## Файлы
21
22| Файл | Назначение |
23|------|------------|
24| `echo_agent.py` | Копия из upstream `examples/echo_agent.py` (обновляй при смене API). |
25| `smoke_client.py` | Минимальный клиент через `spawn_agent_process` из пакета `acp`. |
26| `requirements.txt` | Зависимость `agent-client-protocol`. |
27
28## Вариант на .NET
29
30Тот же сценарий с тем же `echo_agent.py`: [`samples/AcpSmokeDotnet`](../AcpSmokeDotnet/README.md) (`dotnet run`, пакет `AgentClientProtocol`).
31
32## Cursor и Cascade
33
34Подключение **Cursor как ACP-агента** к JetBrains описано у Cursor ([блог](https://cursor.com/blog/jetbrains-acp)); для Cascade см. заметку [`docs/ui-ux/note-acp-cascade-cursor-v1.md`](../../docs/ui-ux/note-acp-cascade-cursor-v1.md). Этот smoke **не** подставляет бинарник Cursor — только проверяет протокол на референс-агенте.
35
36## Лицензия `echo_agent.py`
37
38Исходный пример из репозитория Agent Client Protocol / python-sdk; при обновлении файла сохраняй соответствие лицензии upstream.
39
View only · write via MCP/CIDE