🤖 Jak funguje AI agent

Rozbor konverzace z cpman101.md — role zpráv, reasoning, volání LLM a nástrojů

↓ Přejít na rozebranou konverzaci
User (zadání) Assistant (odpověď) Reasoning / thinking Tool call (nástroj) Tool output (výstup) LLM inference
zadání User
uvnitř LLM Thinking / Reasoning
agent rozhodne Tool Call
(webfetch, bash, ...)
výsledek Tool Output
LLM zpracuje Další reasoning
(nebo odpověď)
výstup Assistant odpovídá

💬 Role: User vstup

Člověk zadá instrukci přirozeným jazykem. Konverzace začíná system promptem (není vidět) + první user zprávou.

🧠 Reasoning / Thinking uvnitř LLM

LLM interně uvažuje nahlas — analyzuje úkol, plánuje kroky, rozhoduje se, který nástroj zavolat a s jakými parametry.

🔨 Tool calls akce

Agent volá externí nástroje (webfetch, bash, read, grep). LLM vygeneruje JSON s názvem nástroje a parametry; runtime ho provede.

🌍 Tool output výsledek

Výstup nástroje se vloží zpět do kontextu LLM jako systémová zpráva. LLM ho zpracuje a rozhodne o dalším kroku.

🤖 LLM inference jádro

Každý cyklus (user → thinking → tool → output → thinking → ...) je jedna nebo více LLM inferencí.

🔗 Message roles kontext

Konverzace se skládá z messages s rolemi: system, user, assistant, tool. Každá má jinou váhu a chování.

📜 Rozebraná konverzace

👤 User role: user · vstup od člověka
💬 User messagePrvní zpráva obsahuje zadání úkolu. Systémový prompt (není v logu) definuje chování agenta — jaké má nástroje, jak má uvažovat, jak odpovídat.

toto je jazy check point management serveru ... nejprve se vyzkousej prihlasit

🤖 Assistant (Build · Big Pickle · 3.2s) role: assistant · generuje LLM
🧠 Reasoning / ThinkingLLM nejprve interně analyzuje úkol, aniž by cokoliv vypisovala uživateli. Tento blok není určen uživateli — je to "řetězec myšlenek" (chain-of-thought).
Thinking

The user wants me to: 1. Check the Check Point Management Server API ... 4. First, try to log in. Let me first fetch the Postman collection to understand the API structure, then try to log in.

🔨 Tool callLLM se rozhodne zavolat nástroj webfetch. Vygeneruje JSON s parametry (url, format). Runtime (opencode) provolá API a vrátí výsledek.
📡 Tool: webfetch
{
  "url": "https://sc1.checkpoint.com/documents/latest/APIs/data/postman_collection.json",
  "format": "text"
}
🌍 Tool outputVýstup nástroje (JSON response z API) se vloží do kontextu jako zpráva s rolí tool. LLM ho vidí a zpracovává.
📄 Output (truncated, ~5MB)
{
  "info": { "name": "Web API (version 2.1)..." },
  "item": [{ "name": "01 Session Management", "item": [{ "name": "login", ... }] }]
}
🤖 LLM inferencePo obdržení tool output LLM znovu zpracovává kontext — vyhodnotí, co výstup obsahuje (login endpoint: POST /v2.1/login), a rozhodne se pro další krok.
Thinking (2. kolo)

I got the Postman collection. I can see the login endpoint is: - URL: {{server}}/v2.1/login - Method: POST ... The server is cpman.duckdns.org and credentials are admin/demo123. Let me try to log in using curl.

📡 Tool: bash
curl -sk -X POST "https://cpman.duckdns.org/v2.1/login" \
  -H "Content-Type: application/json" \
  -d '{"user":"admin","password":"demo123"}'
📄 Output (empty — 404)
(no output)
🧠 ReasoningPrázdný výstup / 404. LLM analyzuje: "The command returned no output. Let me try with -v for verbose... maybe different port or path."
🤖 Assistant (Build · Big Pickle · 3.8s) další LLM inference · opakovaný cyklus
🤖 LLM inference #3Agent analyzuje selhání, upravuje strategii — přidá verbose flag a zkusí diagnostikovat.
📡 Tool: bash (s verbose)
host cpman.duckdns.org; curl -skv -X POST "https://cpman.duckdns.org/v2.1/login" ...
📄 Output
cpman.duckdns.org has address 3.70.187.217
...
> POST /v2.1/login HTTP/1.1
< HTTP/1.1 404 Not Found
Thinking

The server is reachable, TLS handshake succeeded, but 404 Not Found. Server: CPWS. Looking at Postman response — the url field was "https://192.0.2.1:443/web_api". Maybe the path needs /web_api prefix.

🧠 DedukceLLM si všimne detailu v dokumentaci (url: .../web_api) a odvodí správnou cestu. To je ukázka reasoning nad tool outputem.
📡 Tool: bash (opravená cesta)
curl -sk -X POST "https://cpman.duckdns.org/web_api/v2.1/login" -H "Content-Type: application/json" -d '{"user":"admin","password":"demo123"}'
📄 Output (success!)
{
  "uid" : "47b43ee5-8350-405d-8c08-297639249777",
  "sid" : "P46FJX6UuNAW7NMl92IiYIKo-nPMG6IrC5dNvm_tM4o",
  "url" : "https://cpman.duckdns.org:443/web_api",
  "session-timeout" : 600,
  "api-server-version" : "2.1",
  "user-name" : "admin"
}
🤖 Assistant responseTeď LLM vygeneruje odpověď pro uživatele — česky, shrnuje výsledek. Cyklus končí: tool call → tool output → reasoning → odpověď uživateli.

Přihlášení proběhlo úspěšně. ... { "sid": "P46FJX6UuNAW7NMl92IiYIKo-nPMG6IrC5dNvm_tM4o", ... }

👤 User další user message

ukaz objekty typu network a odhlas se

🤖 Assistant (Build · Big Pickle · 3.2s) nový cyklus · user → thinking → tool → output → tool → output → odpověď
Thinking

The user wants me to: 1. Show objects of type "network" 2. Log out. Let me first show network objects using the session ID we got, then log out.

🔨 Tool call #1LLM použije dříve získané session ID (P46FJX6U...) v headeru X-chkp-sid.
📡 Tool: bash — show-networks
curl -sk -X POST "https://cpman.duckdns.org/web_api/v2.1/show-networks" \
  -H "Content-Type: application/json" \
  -H "X-chkp-sid: P46FJX6UuNAW7NMl92IiYIKo-nPMG6IrC5dNvm_tM4o" \
  -d '{"limit":50,"offset":0}'
📄 Output — 12 network objects
{ "objects": [ { "name": "Branch Office LAN", "subnet4": "145.80.110.0", ... }, ... ], "total": 12 }
Thinking

Good, I got the network objects. Now let me log out.

🔨 Tool call #2Druhý tool call v rámci stejné LLM inference — agent sekvenčně plní podúkoly.
📡 Tool: bash — logout
curl -sk -X POST "https://cpman.duckdns.org/web_api/v2.1/logout" \
  -H "Content-Type: application/json" \
  -H "X-chkp-sid: P46FJX6UuNAW7NMl92IiYIKo-nPMG6IrC5dNvm_tM4o" \
  -d '{}'
📄 Output
{ "message": "OK" }
Thinking

Done. Both operations succeeded. Let me summarize the results.

🤖 Final responseLLM vygeneruje hezkou odpověď pro uživatele — tabulku network objektů + potvrzení odhlášení.

Hotovo. Na serveru je 12 network objektů:
Branch Office LAN — 145.80.110.0/24, ...
Odhlášení proběhlo v pořádku (message: OK).

💡 Shrnutí — cyklus AI agenta