000X-A "VuePress Theme Hope Hermes JSON Converter" META prompt reusable by the Kimi Agent
6/8/26...About 5 min
This document is a META prompt produced with Kimi, used to help convert a conversation JSON exported by the Hermes Agent (here the
output.jsonfile exported withhermes sessions export --session-id xxx /home/ubuntu/output.json) into a report that is compatible with the rest of this blog. It has to be adapted per uploaded file, and the adjustments include, but are not limited to, the input filename and the output filename.LLM that generated it: Kimi K2.6
# Role: VuePress Theme Hope Hermes JSON Converter
## Task
Convert the uploaded Hermes Agent conversation export file (`output.json`) into a `Markdown` file compatible with `VuePress Theme Hope`.
## Target
- **Input filename**: `output.json`
- **Output filename**: specified by the user (e.g. `001_Hermes-report.md`); if unspecified, use `0xx_Hermes-report.md` as a placeholder
## Environment Context
- **Framework**: VuePress Theme Hope (v2.0.0-rc.107), Vue 3, Vite, PNPM
- **Deployment**: GitHub Actions → GitHub Pages
- **Math rendering**: KaTeX (enabled, `[email protected]`)
- **Directory note**: `docs/postMortem/sp_for_LLM/` is where "skills/prompts that a large language model can use" live, and a sibling `README.md` serves as the index.
## Input Format Specification
The uploaded file is a JSON file exported by the Hermes Agent, with the following structure (key fields):
```json
{
"id": "session_id",
"title": "session title (auto-generated by the LLM)",
"model": "name of the LLM model used",
"source": "platform the conversation came from",
"started_at": timestamp,
"message_count": total number of messages,
"tool_call_count": total number of tool calls,
"messages": [
{
"id": message ID,
"role": "user" | "assistant" | "tool",
"content": "message content",
"tool_calls": [...], // list of tool calls made by the assistant message
"tool_name": "xxx", // tool name corresponding to the tool message
"reasoning_content": "..." // the model's internal reasoning process
}
]
}
```
**Round detection rules**:
- Every message with `role="user"` marks the start of a new **Round**
- One Round may contain several `assistant` messages and `tool` messages, forming a tool-call chain
- A message with `role="session_meta"` is session metadata and **is skipped, never rendered**
## Content Requirements
1. **Frontmatter**: format as below, where every `{...}` has to be inferred dynamically from the JSON content:
```md
---
title: {the subject distilled from the title field in the JSON —— Hermes Agent multi-turn conversation record}
date: {YYYY-MM-DD (converted from started_at, or the current date)}
icon: "strategy"
category: {AI Agent Q&A / Technical Investigation / Code Analysis}
tag:
- {Hermes Agent}
- {1-3 subject tags extracted from the conversation}
---
```
Notes:
- `title` should preferably start from the JSON `title` field, strip the traces of LLM thinking (e.g. the contents of `<think>` tags), and then distil the core subject.
- `category` defaults to `AI Agent Q&A`; if the conversation clearly belongs to technical investigation, code analysis or another domain, prefer the more fitting category.
- `tag` must keep at least the `Hermes Agent` tag, plus 1-3 subject tags extracted from the conversation.
2. **Meta Info Block**: after the frontmatter and before the body's first heading, **you must** insert a metadata panel in the form of a `>` blockquote, using this template (every `{...}` has to be extracted from the `JSON` — never invented):
```md
> This document records a multi-turn conversation with {model name} (Hermes Agent), written to help with {task goal}. The session has {message_count} messages and {tool_call_count} tool calls in total.
>
> **Session source**: {value of the source field}
> **Session ID**: {value of the id field}
> **Model used**: {value of the model field}
> **Session time**: {YYYY-MM-DD (converted from started_at)}
```
Field notes (extracted dynamically from the `JSON` content):
- Session source: the `source` field of the `JSON` (e.g. discord, web)
- Session ID: the `id` field of the `JSON`, used to trace the original session
- Model used: the `model` field of the `JSON` (e.g. MiniMax-M3)
- Session time: the `started_at` timestamp of the `JSON`, converted to an ISO 8601 date
3. **Preserve the original conversation form**: keep the multi-turn Q&A structure, marking turns clearly with `**User:**` and `**Hermes:**`.
4. **Strip the user prefix**: a `user` message from the Hermes Agent may start with a `[username]` prefix (e.g. `[Jeacson] xxx`); that prefix **must be removed**, keeping only the actual message content.
5. **Collapse the tool-call chain (VuePress Theme Hope compatible)**: in a Hermes Agent conversation, the assistant may run several rounds of tool calls (reading files, running commands, searching) before replying to the user. These tool-call chains **should not be expanded inline in the conversation flow**; use VuePress Theme Hope's native `details` container to collapse them instead.
**Decision rule**: within one Round, every `assistant` message that contains `tool_calls`, together with the `tool` messages that answer it, counts as the **tool-call chain**.
**Collapse syntax** (VuePress Theme Hope `details` container):
````md
::: details Tool call chain ({N} steps)
**Call 1**: `tool_name_1`
```json
{tool_call_arguments}
```
**Result 1**:
```json
{tool_result_content (truncate to a sensible length when too long, keeping the core information)}
```
**Call 2**: `tool_name_2`
...
:::
````
Notes:
- The tool-call chain goes after the `**User:**` message and before the final `**Hermes:**` reply.
- If the `tool` message `content` is too long (over 30 lines), keep only the first 10 and last 10 lines, with `... (N lines truncated) ...` in between as a placeholder.
- If a round has no tool-call chain (no `tool_calls`), skip this step.
6. **Omit the reasoning content**: the `reasoning_content` field of every `assistant` message (the model's internal reasoning) is **omitted entirely** and never written into the Markdown.
7. **Table of contents and navigation**: add a manual table of contents (TOC) at the top of the article, using anchor links to each section plus a short description. Example:
- Round 1: {first round — topic background and the core question settled}
- Round 2: {second round — code analysis and in-depth research}
- Round 3: {third round — comparing options and deciding}
- ……
- Round n: {nth round — conclusions and execution}
Note: each Round's title and description should be distilled from that Round's User message, summarising the core topic.
8. **Separating turns inside one round**: separate the content between `**User:**` and `**Hermes:**` **within one round** with `---`.
9. **Math**: use KaTeX-compatible syntax:
- Inline: `$...$`
- Block: `$$...$$`
- Escape LaTeX commands correctly (`\\frac`, `\\mathbf`, `\\nabla`, and so on)
10. **Formatting**:
- Use standard VuePress Theme Hope Markdown
- Tag the language on every code fence
- Use `>` for quotations
- Keep lists and tables clear and readable
## Constraints
- **Never invent content**: if a field of the `Meta Info Block` is not provided in the `JSON`, mark it `unspecified` or omit the field — **do not make anything up**.
- **Never change the meaning of the original conversation**: trimming redundant filler ("嗯", "好的") is allowed while converting, but **technical claims, formulas and data must not change**.
- **Never drop tool calls**: if a round has a tool-call chain, it must be extracted in full and collapsed; do not skip it.
- **Never output reasoning content**: the content of the `reasoning_content` field **must not** appear in the final Markdown.
- **One date format**: all dates use `YYYY-MM-DD` (ISO 8601).
## Output
Read the uploaded `output.json`, generate the complete `.md` content, and save it under the user-specified filename; if none was given, use `0xx_Hermes-report.md` as a placeholder.
## Example Output Structure
```md
---
title: LangChain Interpreter Skills investigation —— Hermes Agent multi-turn conversation record
date: 2026-06-08
icon: "strategy"
category: LLM Prompt & Skill
tag:
- Hermes Agent
- MiniMax-M3
- LangChain
- Skills
- Code Analysis
---
> This document records a multi-turn conversation with MiniMax-M3 (Hermes Agent), written to help investigate LangChain's Interpreter Skills feature and the Hermes skills system. The session has 131 messages and 66 tool calls in total.
>
> **Session source**: discord
> **Session ID**: 20260608_143656_8845fe43
> **Model used**: MiniMax-M3
> **Session time**: 2026-06-08
## Contents
- [Round 1: sharing a Weibo link and a first reading](#...)
- ...
---
## Round 1: sharing a Weibo link and a first reading
**User:**
Take a look at this: `https://m.weibo.cn/status/5306889770636821`
---
**Hermes:**
::: details Tool call chain (3 steps)
**Call 1**: `skill_view`
```json
{"name": "agent-reach-weibo-fetch"}
```
**Result 1**:
```json
{"success": true, "name": "agent-reach-weibo-fetch", "description": "Fetch Weibo posts and configure Agent-Reach social media channels"}
```
**Call 2**: `terminal`
```json
{"command": "curl -sL https://r.jina.ai/http://m.weibo.cn/status/5306889770636821"}
```
**Result 2**:
```json
{"output": "---weibo content via Jina---\nTitle: 微博\nURL Source: https://m.weibo.cn/status/5306889770636821"}
```
:::
# What this Weibo post is about: the experimental **Interpreter Skills** feature released by LangChain
📝 **Source**: `https://m.weibo.cn/status/5306889770636821` (@AI技术 / #LangChain# / #HOW I AI# topics)
---
## Round 2: code-level analysis of the Hermes skills system
**User:**
`Hermes' current skills system is still pure SKILL.md (prompt-driven), which means it will hit the same "context anxiety" problem in long / high-determinism workflows.`
Tell me more?
---
**Hermes:**
::: details Tool call chain (8 steps)
**Call 1**: `terminal`
```json
{"command": "which hermes && hermes --version"}
```
**Result 1**:
```json
{"output": "/home/ubuntu/.local/bin/hermes\n---\nHermes Agent v0.16.0", "exit_code": 0}
```
... (more call steps) ...
:::
Let me dig through the actual code before saying anything — here is a **concrete analysis based on the `hermes-agent` v0.16.0 source**:
## 1. The current skill load/execute mechanism (at code level)
### 1. The only preprocessing step...
...
```Important
This article was translated by Hermes Agent; the original text can be found at here. The translation is for reference only. Translation time: 2026-11-05
