haiku.rag/tests/cassettes/test_client/test_client_ask.yaml

886 lines
77 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

interactions:
- request:
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate, zstd
connection:
- keep-alive
content-length:
- '114'
content-type:
- application/json
host:
- localhost:11434
method: POST
parsed_body:
encoding_format: base64
input:
- Python is a high-level programming language.
model: qwen3-embedding:4b
uri: http://localhost:11434/v1/embeddings
response:
headers:
content-type:
- application/json
transfer-encoding:
- chunked
parsed_body:
data:
- embedding: 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
index: 0
object: embedding
model: qwen3-embedding:4b
object: list
usage:
prompt_tokens: 9
total_tokens: 9
status:
code: 200
message: OK
- request:
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate, zstd
connection:
- keep-alive
content-length:
- '5583'
content-type:
- application/json
host:
- localhost:11434
method: POST
parsed_body:
messages:
- content: |-
You are a focused execution agent. Complete the following task using the skills and instructions provided.
## Task
What is Python?
## Skill instructions
# RAG
You are a RAG assistant with access to a document knowledge base.
Use your tools to search and answer questions. Never make up information — always use tools to get facts from the knowledge base.
## Tools
### search
Search the knowledge base using hybrid search (vector + full-text). Returns ranked results with context-expanded content.
Each result includes:
- `chunk_id` in brackets and rank position (rank 1 = most relevant)
- Source: document title and section hierarchy
- Type: content type (paragraph, table, code, list_item, picture)
- Content: the actual text
When a result's Type is `picture`, the corresponding figure may also be attached to the tool response as an image alongside the text. Use the image directly to answer questions about figures, diagrams, charts, screenshots.
### list_documents
List available documents in the knowledge base. Use when the user wants to browse what's available.
### get_document
Retrieve a document by ID, title, or URI. Partial matches work. Use when the user wants the full content of a specific document.
### cite
Register the chunk IDs that ground your answer. Call this BEFORE writing your final answer, with the `chunk_id` values from search results that support each claim. Every answer that uses search results must be backed by `cite`.
Use chunk_ids exactly as they appear in the search response — copy the full UUID verbatim. Do not abbreviate, paraphrase, or reconstruct chunk_ids from memory; the tool matches them as opaque strings.
## How to answer questions
1. Call `search` with relevant keywords from the question
2. Review the results — they are ordered by relevance (rank 1 = best match)
3. If needed, search again with different keywords (you have a limited number of searches)
4. Identify the chunk IDs that support your answer and call `cite` with them
5. Then write a concise answer based strictly on the cited content
You MUST call `cite` with at least one chunk ID before producing your final answer, **unless** you are refusing for lack of information (see below). Answers without citations are considered ungrounded.
## Guidelines
- Base answers strictly on retrieved content — do not use external knowledge
- Use the Source and Type metadata to understand context
- If multiple results are relevant, synthesize them coherently
- Be concise and direct — avoid elaboration unless asked
- If the search tool tells you the search limit is reached, stop searching and answer with what you have
- If the retrieved documents do not directly address the question, say: "I cannot find enough information in the knowledge base to answer this question." Do not guess or infer from tangentially related content. In this refusal case do **not** call `cite` — there is nothing to cite.
- Do NOT include chunk IDs or UUIDs in your answer text — your answer should read naturally. Use the `cite` tool separately to register citations.
## When the user mentions a specific document
If the user says "search in [doc]", "find in [doc]", or "answer from [doc]":
- Use `get_document` or `list_documents` first to identify the document
- Then search for the topic
## When search returns irrelevant results
If your first search returns results that clearly don't match the question:
- Try one more search with different keywords
- If still irrelevant, report that the knowledge base doesn't contain relevant information
## Guidelines
- Follow the skill instructions carefully
- Stay focused on the specific task described above
- Provide a clear, complete result
role: system
- content: What is Python?
role: user
model: gpt-oss
reasoning_effort: high
stream: true
stream_options:
include_usage: true
temperature: 0.3
tool_choice: auto
tools:
- function:
description: |-
Search the knowledge base using hybrid search (vector + full-text).
Returns ranked results with content and metadata. When picture
content is in the result set and the driving skill model is
vision-capable, picture bytes are attached as ``BinaryContent``
parts so the model sees figures alongside text.
name: search
parameters:
additionalProperties: false
properties:
limit:
anyOf:
- type: integer
- type: 'null'
default: null
description: Maximum number of results.
query:
description: The search query.
type: string
required:
- query
type: object
type: function
- function:
description: List all documents in the knowledge base.
name: list_documents
parameters:
additionalProperties: false
properties: {}
type: object
type: function
- function:
description: Retrieve a document by ID, title, or URI.
name: get_document
parameters:
additionalProperties: false
properties:
query:
description: Document ID, title, or URI to look up.
type: string
required:
- query
type: object
type: function
- function:
description: |-
Register chunk IDs as citations for your answer.
Call this after searching, with the chunk_id values from search
results that support your answer.
name: cite
parameters:
additionalProperties: false
properties:
chunk_ids:
description: List of chunk_id values from search results.
items:
type: string
type: array
required:
- chunk_ids
type: object
type: function
uri: http://localhost:11434/v1/chat/completions
response:
body:
string: |+
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114310,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"We"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114310,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" need"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114310,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" to"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114310,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" answer"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":":"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" \""},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"What"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" is"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" Python"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"?\""},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" We"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" must"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" use"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" the"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" knowledge"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" base"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"."},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" We"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" need"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" to"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" search"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"."},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" Let's"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" search"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" for"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" \""},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"Python"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"\""},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" or"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" \""},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"Python"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" programming"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" language"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"\""},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" etc"},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"."},"finish_reason":null}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","tool_calls":[{"id":"call_c33pjm3l","index":0,"type":"function","function":{"name":"search","arguments":"{\"query\":\"Python programming language\",\"limit\":5}"}}]},"finish_reason":"tool_calls"}]}
data: {"id":"chatcmpl-381","object":"chat.completion.chunk","created":1779114311,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[],"usage":{"prompt_tokens":1077,"completion_tokens":65,"total_tokens":1142}}
data: [DONE]
headers:
content-type:
- text/event-stream
transfer-encoding:
- chunked
status:
code: 200
message: OK
- request:
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate, zstd
connection:
- keep-alive
content-length:
- '97'
content-type:
- application/json
host:
- localhost:11434
method: POST
parsed_body:
encoding_format: base64
input:
- Python programming language
model: qwen3-embedding:4b
uri: http://localhost:11434/v1/embeddings
response:
headers:
content-type:
- application/json
transfer-encoding:
- chunked
parsed_body:
data:
- embedding: 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
index: 0
object: embedding
model: qwen3-embedding:4b
object: list
usage:
prompt_tokens: 4
total_tokens: 4
status:
code: 200
message: OK
- request:
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate, zstd
connection:
- keep-alive
content-length:
- '6126'
content-type:
- application/json
host:
- localhost:11434
method: POST
parsed_body:
messages:
- content: |-
You are a focused execution agent. Complete the following task using the skills and instructions provided.
## Task
What is Python?
## Skill instructions
# RAG
You are a RAG assistant with access to a document knowledge base.
Use your tools to search and answer questions. Never make up information — always use tools to get facts from the knowledge base.
## Tools
### search
Search the knowledge base using hybrid search (vector + full-text). Returns ranked results with context-expanded content.
Each result includes:
- `chunk_id` in brackets and rank position (rank 1 = most relevant)
- Source: document title and section hierarchy
- Type: content type (paragraph, table, code, list_item, picture)
- Content: the actual text
When a result's Type is `picture`, the corresponding figure may also be attached to the tool response as an image alongside the text. Use the image directly to answer questions about figures, diagrams, charts, screenshots.
### list_documents
List available documents in the knowledge base. Use when the user wants to browse what's available.
### get_document
Retrieve a document by ID, title, or URI. Partial matches work. Use when the user wants the full content of a specific document.
### cite
Register the chunk IDs that ground your answer. Call this BEFORE writing your final answer, with the `chunk_id` values from search results that support each claim. Every answer that uses search results must be backed by `cite`.
Use chunk_ids exactly as they appear in the search response — copy the full UUID verbatim. Do not abbreviate, paraphrase, or reconstruct chunk_ids from memory; the tool matches them as opaque strings.
## How to answer questions
1. Call `search` with relevant keywords from the question
2. Review the results — they are ordered by relevance (rank 1 = best match)
3. If needed, search again with different keywords (you have a limited number of searches)
4. Identify the chunk IDs that support your answer and call `cite` with them
5. Then write a concise answer based strictly on the cited content
You MUST call `cite` with at least one chunk ID before producing your final answer, **unless** you are refusing for lack of information (see below). Answers without citations are considered ungrounded.
## Guidelines
- Base answers strictly on retrieved content — do not use external knowledge
- Use the Source and Type metadata to understand context
- If multiple results are relevant, synthesize them coherently
- Be concise and direct — avoid elaboration unless asked
- If the search tool tells you the search limit is reached, stop searching and answer with what you have
- If the retrieved documents do not directly address the question, say: "I cannot find enough information in the knowledge base to answer this question." Do not guess or infer from tangentially related content. In this refusal case do **not** call `cite` — there is nothing to cite.
- Do NOT include chunk IDs or UUIDs in your answer text — your answer should read naturally. Use the `cite` tool separately to register citations.
## When the user mentions a specific document
If the user says "search in [doc]", "find in [doc]", or "answer from [doc]":
- Use `get_document` or `list_documents` first to identify the document
- Then search for the topic
## When search returns irrelevant results
If your first search returns results that clearly don't match the question:
- Try one more search with different keywords
- If still irrelevant, report that the knowledge base doesn't contain relevant information
## Guidelines
- Follow the skill instructions carefully
- Stay focused on the specific task described above
- Provide a clear, complete result
role: system
- content: What is Python?
role: user
- content: null
reasoning: 'We need to answer: "What is Python?" We must use the knowledge base. We need to search. Let''s search
for "Python" or "Python programming language" etc.'
role: assistant
tool_calls:
- function:
arguments: '{"query":"Python programming language","limit":5}'
name: search
id: call_c33pjm3l
type: function
- content: |-
[ae8a228f-c5f8-43bd-9dbd-582b2e5e27a5] [rank 1 of 1]
Type: text
Content:
Python is a high-level programming language.
role: tool
tool_call_id: call_c33pjm3l
model: gpt-oss
reasoning_effort: high
stream: true
stream_options:
include_usage: true
temperature: 0.3
tool_choice: auto
tools:
- function:
description: |-
Search the knowledge base using hybrid search (vector + full-text).
Returns ranked results with content and metadata. When picture
content is in the result set and the driving skill model is
vision-capable, picture bytes are attached as ``BinaryContent``
parts so the model sees figures alongside text.
name: search
parameters:
additionalProperties: false
properties:
limit:
anyOf:
- type: integer
- type: 'null'
default: null
description: Maximum number of results.
query:
description: The search query.
type: string
required:
- query
type: object
type: function
- function:
description: List all documents in the knowledge base.
name: list_documents
parameters:
additionalProperties: false
properties: {}
type: object
type: function
- function:
description: Retrieve a document by ID, title, or URI.
name: get_document
parameters:
additionalProperties: false
properties:
query:
description: Document ID, title, or URI to look up.
type: string
required:
- query
type: object
type: function
- function:
description: |-
Register chunk IDs as citations for your answer.
Call this after searching, with the chunk_id values from search
results that support your answer.
name: cite
parameters:
additionalProperties: false
properties:
chunk_ids:
description: List of chunk_id values from search results.
items:
type: string
type: array
required:
- chunk_ids
type: object
type: function
uri: http://localhost:11434/v1/chat/completions
response:
body:
string: |+
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"We"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" have"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" a"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" result"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":":"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" chunk"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"_id"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" ae"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"8"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"a"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"228"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"f"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"-c"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"5"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"f"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"8"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"-"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"43"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"bd"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"-"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"9"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"db"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"d"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"-"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"582"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"b"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"2"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"e"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"5"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"e"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"27"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"a"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"5"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":","},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" content"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":":"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" \""},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"Python"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" is"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" a"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" high"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"-level"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" programming"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" language"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":".\""},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" That"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" is"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" enough"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"."},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" We"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" need"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" to"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114312,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":" cite"},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114313,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","reasoning":"."},"finish_reason":null}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114313,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"","tool_calls":[{"id":"call_xtrtxg84","index":0,"type":"function","function":{"name":"cite","arguments":"{\"chunk_ids\":[\"ae8a228f-c5f8-43bd-9dbd-582b2e5e27a5\"]}"}}]},"finish_reason":"tool_calls"}]}
data: {"id":"chatcmpl-713","object":"chat.completion.chunk","created":1779114313,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[],"usage":{"prompt_tokens":1202,"completion_tokens":105,"total_tokens":1307}}
data: [DONE]
headers:
content-type:
- text/event-stream
transfer-encoding:
- chunked
status:
code: 200
message: OK
- request:
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate, zstd
connection:
- keep-alive
content-length:
- '6573'
content-type:
- application/json
host:
- localhost:11434
method: POST
parsed_body:
messages:
- content: |-
You are a focused execution agent. Complete the following task using the skills and instructions provided.
## Task
What is Python?
## Skill instructions
# RAG
You are a RAG assistant with access to a document knowledge base.
Use your tools to search and answer questions. Never make up information — always use tools to get facts from the knowledge base.
## Tools
### search
Search the knowledge base using hybrid search (vector + full-text). Returns ranked results with context-expanded content.
Each result includes:
- `chunk_id` in brackets and rank position (rank 1 = most relevant)
- Source: document title and section hierarchy
- Type: content type (paragraph, table, code, list_item, picture)
- Content: the actual text
When a result's Type is `picture`, the corresponding figure may also be attached to the tool response as an image alongside the text. Use the image directly to answer questions about figures, diagrams, charts, screenshots.
### list_documents
List available documents in the knowledge base. Use when the user wants to browse what's available.
### get_document
Retrieve a document by ID, title, or URI. Partial matches work. Use when the user wants the full content of a specific document.
### cite
Register the chunk IDs that ground your answer. Call this BEFORE writing your final answer, with the `chunk_id` values from search results that support each claim. Every answer that uses search results must be backed by `cite`.
Use chunk_ids exactly as they appear in the search response — copy the full UUID verbatim. Do not abbreviate, paraphrase, or reconstruct chunk_ids from memory; the tool matches them as opaque strings.
## How to answer questions
1. Call `search` with relevant keywords from the question
2. Review the results — they are ordered by relevance (rank 1 = best match)
3. If needed, search again with different keywords (you have a limited number of searches)
4. Identify the chunk IDs that support your answer and call `cite` with them
5. Then write a concise answer based strictly on the cited content
You MUST call `cite` with at least one chunk ID before producing your final answer, **unless** you are refusing for lack of information (see below). Answers without citations are considered ungrounded.
## Guidelines
- Base answers strictly on retrieved content — do not use external knowledge
- Use the Source and Type metadata to understand context
- If multiple results are relevant, synthesize them coherently
- Be concise and direct — avoid elaboration unless asked
- If the search tool tells you the search limit is reached, stop searching and answer with what you have
- If the retrieved documents do not directly address the question, say: "I cannot find enough information in the knowledge base to answer this question." Do not guess or infer from tangentially related content. In this refusal case do **not** call `cite` — there is nothing to cite.
- Do NOT include chunk IDs or UUIDs in your answer text — your answer should read naturally. Use the `cite` tool separately to register citations.
## When the user mentions a specific document
If the user says "search in [doc]", "find in [doc]", or "answer from [doc]":
- Use `get_document` or `list_documents` first to identify the document
- Then search for the topic
## When search returns irrelevant results
If your first search returns results that clearly don't match the question:
- Try one more search with different keywords
- If still irrelevant, report that the knowledge base doesn't contain relevant information
## Guidelines
- Follow the skill instructions carefully
- Stay focused on the specific task described above
- Provide a clear, complete result
role: system
- content: What is Python?
role: user
- content: null
reasoning: 'We need to answer: "What is Python?" We must use the knowledge base. We need to search. Let''s search
for "Python" or "Python programming language" etc.'
role: assistant
tool_calls:
- function:
arguments: '{"query":"Python programming language","limit":5}'
name: search
id: call_c33pjm3l
type: function
- content: |-
[ae8a228f-c5f8-43bd-9dbd-582b2e5e27a5] [rank 1 of 1]
Type: text
Content:
Python is a high-level programming language.
role: tool
tool_call_id: call_c33pjm3l
- content: null
reasoning: 'We have a result: chunk_id ae8a228f-c5f8-43bd-9dbd-582b2e5e27a5, content: "Python is a high-level programming
language." That is enough. We need to cite.'
role: assistant
tool_calls:
- function:
arguments: '{"chunk_ids":["ae8a228f-c5f8-43bd-9dbd-582b2e5e27a5"]}'
name: cite
id: call_xtrtxg84
type: function
- content: Registered 1 citation(s).
role: tool
tool_call_id: call_xtrtxg84
model: gpt-oss
reasoning_effort: high
stream: true
stream_options:
include_usage: true
temperature: 0.3
tool_choice: auto
tools:
- function:
description: |-
Search the knowledge base using hybrid search (vector + full-text).
Returns ranked results with content and metadata. When picture
content is in the result set and the driving skill model is
vision-capable, picture bytes are attached as ``BinaryContent``
parts so the model sees figures alongside text.
name: search
parameters:
additionalProperties: false
properties:
limit:
anyOf:
- type: integer
- type: 'null'
default: null
description: Maximum number of results.
query:
description: The search query.
type: string
required:
- query
type: object
type: function
- function:
description: List all documents in the knowledge base.
name: list_documents
parameters:
additionalProperties: false
properties: {}
type: object
type: function
- function:
description: Retrieve a document by ID, title, or URI.
name: get_document
parameters:
additionalProperties: false
properties:
query:
description: Document ID, title, or URI to look up.
type: string
required:
- query
type: object
type: function
- function:
description: |-
Register chunk IDs as citations for your answer.
Call this after searching, with the chunk_id values from search
results that support your answer.
name: cite
parameters:
additionalProperties: false
properties:
chunk_ids:
description: List of chunk_id values from search results.
items:
type: string
type: array
required:
- chunk_ids
type: object
type: function
uri: http://localhost:11434/v1/chat/completions
response:
body:
string: |+
data: {"id":"chatcmpl-985","object":"chat.completion.chunk","created":1779114314,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"Python"},"finish_reason":null}]}
data: {"id":"chatcmpl-985","object":"chat.completion.chunk","created":1779114314,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":" is"},"finish_reason":null}]}
data: {"id":"chatcmpl-985","object":"chat.completion.chunk","created":1779114314,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":" a"},"finish_reason":null}]}
data: {"id":"chatcmpl-985","object":"chat.completion.chunk","created":1779114314,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":" high"},"finish_reason":null}]}
data: {"id":"chatcmpl-985","object":"chat.completion.chunk","created":1779114314,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null}]}
data: {"id":"chatcmpl-985","object":"chat.completion.chunk","created":1779114314,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"level"},"finish_reason":null}]}
data: {"id":"chatcmpl-985","object":"chat.completion.chunk","created":1779114314,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":" programming"},"finish_reason":null}]}
data: {"id":"chatcmpl-985","object":"chat.completion.chunk","created":1779114314,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":" language"},"finish_reason":null}]}
data: {"id":"chatcmpl-985","object":"chat.completion.chunk","created":1779114314,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":"."},"finish_reason":null}]}
data: {"id":"chatcmpl-985","object":"chat.completion.chunk","created":1779114314,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop"}]}
data: {"id":"chatcmpl-985","object":"chat.completion.chunk","created":1779114314,"model":"gpt-oss","system_fingerprint":"fp_ollama","choices":[],"usage":{"prompt_tokens":1324,"completion_tokens":13,"total_tokens":1337}}
data: [DONE]
headers:
content-type:
- text/event-stream
transfer-encoding:
- chunked
status:
code: 200
message: OK
version: 1
...