# 1C Agent (отдельный подпроект) ## Быстрый запуск на test-docker ```powershell # 1) Подготовить переменные (без секретов) cd Z:\codex\LLM Copy-Item core\deploy\docker\1c-agent\1c-agent.env.example .\core\deploy\docker\1c-agent\\.env ``` Редактируйте `.env`: - `ONEC_ADAPTER_URL` → URL REST-адаптера; - `ONEC_ADAPTER_TOKEN` → токен (если настроен). - при необходимости `ONEC_AGENT_PROVIDERS` (JSON). ```powershell $env:DOCKER_HOST = "ssh://test-docker" docker compose -f core\deploy\docker\1c-agent\compose.yaml --env-file core\deploy\docker\1c-agent\.env up -d --build ``` Проверка: ```powershell docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" curl http://docker-test.cin.su:8090/v1/health ``` Если внешний хост не отвечает из вашей сети, проверьте локально в контейнере: ```powershell $env:DOCKER_HOST = "ssh://test-docker" docker exec onec-agent python -c "import urllib.request, json; print(json.loads(urllib.request.urlopen('http://127.0.0.1:8090/v1/health', timeout=5).read().decode()))" ``` ## Основные потоки - `project` — единица бизнеса/сценария: имя, описание, политики, базовая настройка. - `chat` — конкретная сессия: выбранная модель, провайдер, параметры генерации, локальные параметры RAG. - `message` — отдельные сообщения внутри чата, используемые для контекста. ## Что лучше держать где - Project-level: - название/описание; - долгоживущие политики доступа/ограничения; - общие настройки безопасности и базовые параметры. - Chat-level: - выбранный провайдер/модель; - `rag_profile`, `rag_limit`; - `temperature`, `max_tokens`; - системный prompt конкретной сессии. ## Взаимодействие с разными ИИ-провайдерами Сервис уже умеет работать через `ONEC_AGENT_PROVIDERS` как через карту: ```json { "default": { "type": "openai-compatible", "base_url": "http://docker-gpu.cin.su:8000", "model": "qwen3-4b-instruct-2507" } } ``` Если нужно подключить другой ИИ протокол, добавляем новый `type` в `plugins/1c/agent/agent_server.py` в диспетчер `call_model(...)`. ## Проверка turn ```powershell curl -X POST "http://docker-test.cin.su:8090/v1/projects" ` -H "Content-Type: application/json" ` -d '{ "name":"demo-1c", "description":"Проверка пайплайна" }' curl -X POST "http://docker-test.cin.su:8090/v1/projects//chats" ` -H "Content-Type: application/json" ` -d '{ "title":"Проверка" }' curl -X POST "http://docker-test.cin.su:8090/v1/projects//chats//turn" ` -H "Content-Type: application/json" ` -d '{ "message":"Какие реквизиты есть у справочника Номенклатура?", "use_rag": true }' ``` ## Статус/поддержка - Проверить, что сервис запущен: `GET /v1/health`. - Проверить модели/провайдеры: `GET /v1/models`, `GET /v1/providers`.