2026-07-15 13:51:11 +08:00
|
|
|
# Example plyngent configuration (no real secrets).
|
|
|
|
|
# Copy to the path shown by: plyngent config path
|
|
|
|
|
# Then set access_key_or_token and adjust models.
|
|
|
|
|
|
|
|
|
|
# Optional. If omitted (or SQLite url is empty / ":memory:"), the CLI uses a
|
|
|
|
|
# durable file under the platform user data dir (e.g. ~/.local/share/plyngent/chat.db).
|
|
|
|
|
# [database]
|
|
|
|
|
# implementation = "sqlite"
|
|
|
|
|
# url = "/path/to/chat.db"
|
|
|
|
|
|
|
|
|
|
[agent]
|
|
|
|
|
system_prompt = "You are a careful coding assistant. Prefer small, verified edits."
|
|
|
|
|
max_tool_result_chars = 32000
|
|
|
|
|
parallel_tools = true
|
|
|
|
|
confirm_destructive = true
|
|
|
|
|
path_denylist = ["/secrets/", ".ssh/", ".gnupg/"]
|
|
|
|
|
# Soft context budget in estimated tokens (~4 chars/token when API usage missing).
|
|
|
|
|
max_context_tokens = 200000
|
|
|
|
|
|
2026-07-15 14:45:12 +08:00
|
|
|
# Optional: custom compact/summarisation prompts (empty = built-in defaults).
|
|
|
|
|
# compact_system_prompt = ""
|
|
|
|
|
# compact_user_prefix = "Summarize the following conversation:\n\n{transcript}"
|
|
|
|
|
# compact_seed_text = "Compacted from {src}:\n\n{summary}\n\nCarry on."
|
|
|
|
|
|
2026-07-15 13:51:11 +08:00
|
|
|
# --- OpenAI-compatible (vLLM, LiteLLM, OpenAI, …) ---
|
|
|
|
|
[providers.openai_compat]
|
|
|
|
|
preset = "openai-compatible"
|
|
|
|
|
url = "https://api.openai.com/v1"
|
|
|
|
|
access_key_or_token = "sk-replace-me"
|
|
|
|
|
|
|
|
|
|
[providers.openai_compat.models]
|
|
|
|
|
"gpt-4o-mini" = { text = true, cost_factor = 1.0 }
|
|
|
|
|
|
2026-07-15 21:16:05 +08:00
|
|
|
# --- OpenAI platform (Responses API; tag is "openai") ---
|
2026-07-15 13:51:11 +08:00
|
|
|
# [providers.openai]
|
|
|
|
|
# preset = "openai"
|
|
|
|
|
# access_key_or_token = "sk-replace-me"
|
|
|
|
|
# url = "https://api.openai.com/v1"
|
2026-07-15 21:16:05 +08:00
|
|
|
# # Hosted/provider-side tools (OpenAI runs them; not local ToolRegistry).
|
|
|
|
|
# # Examples: web_search, file_search (+ vector_store_ids), code_interpreter, mcp.
|
|
|
|
|
# provider_tools = [
|
|
|
|
|
# { type = "web_search" },
|
|
|
|
|
# # { type = "file_search", vector_store_ids = ["vs_xxx"] },
|
|
|
|
|
# # { type = "code_interpreter", container = { type = "auto" } },
|
|
|
|
|
# ]
|
2026-07-15 13:51:11 +08:00
|
|
|
#
|
|
|
|
|
# [providers.openai.models]
|
|
|
|
|
# "gpt-4o-mini" = { text = true }
|
|
|
|
|
|
|
|
|
|
# --- DeepSeek (OpenAI-compatible convention) ---
|
2026-07-15 13:57:29 +08:00
|
|
|
# Default models if [providers.*.models] is omitted: deepseek-v4-flash, deepseek-v4-pro.
|
2026-07-15 13:51:11 +08:00
|
|
|
# [providers.deepseek]
|
|
|
|
|
# preset = "deepseek"
|
|
|
|
|
# access_key_or_token = "sk-replace-me"
|
2026-07-15 13:58:17 +08:00
|
|
|
# # url defaults to https://api.deepseek.com when empty
|
2026-07-15 13:51:11 +08:00
|
|
|
# extras = { convention = "openai" }
|
|
|
|
|
#
|
|
|
|
|
# [providers.deepseek.models]
|
2026-07-15 13:57:29 +08:00
|
|
|
# "deepseek-v4-flash" = { text = true }
|
|
|
|
|
# "deepseek-v4-pro" = { text = true }
|