• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kubernetes-sigs / inference-perf / 36052411127
81%

Build:
DEFAULT BRANCH: main
Ran 24 Sep 2026 08:10PM UTC
Jobs 1
Files 125
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 Sep 2026 08:04PM UTC coverage: 80.76% (+0.2%) from 80.584%
36052411127

push

github

web-flow
feat(datagen): add ShareGPT output format to synthetic_agentic_to_replay_graph.py (#779)

Closes #778.

## What
Adds `--format sharegpt` to `synthetic_agentic_to_replay_graph.py`.
Alongside the existing native replay-graph JSON output, the script can
now write ToolACE-ShareGPT JSONL — one record per graph event —
compatible with
[`Beryex/ToolACE-sharegpt`](https://huggingface.co/datasets/Beryex/ToolACE-sharegpt).

## Schema
Each record: `system` (from the leading system message), `tools`
(JSON-encoded tool defs), `conversations`
(`human`/`gpt`/`function_call`/`observation` turns), and a `metadata`
block — event id, predecessor event ids/dependency types,
expected-output token budget, input segments, temperature, model.
`metadata` is additive and namespaced so standard ShareGPT readers
ignore it, while inference-perf tooling can use it to trace a record
back to its place in the replay graph.

Synthetic sessions can include recursive sub-agent spawns (an
orchestrator dispatches N sub-agents, each becoming its own graph event
with its own system prompt/tools). The converter emits one ShareGPT
record per event regardless of spawn depth rather than flattening the
spawn tree into a single conversation —
`metadata.predecessor_event_ids`/`predecessor_dependency_types` on each
record is what lets a consumer reconstruct the spawn structure
afterward.

## Usage
```bash
python -m inference_perf.datagen.synthetic_agentic.synthetic_agentic_to_replay_graph \
  --config <path-to-synthetic-agentic-config.yml> \
  --output sharegpt_workload.jsonl \
  --format sharegpt
```

## Example output line
```json
{"system": "You are a helpful assistant...", "tools": "[{\"type\": \"function\", \"function\": {\"name\": \"get_weather\", ...}}]", "conversations": [{"from": "human", "value": "..."}, {"from": "function_call", "value": "{\"name\": \"get_weather\", \"arguments\": \"...\"}"}, {"from": "observation", "value": "[{\"name\": \"get_weather\", \"results\": \"...\"}]"}, {"from"... (continued)

96 of 107 new or added lines in 1 file covered. (89.72%)

10569 of 13087 relevant lines covered (80.76%)

0.81 hits per line

Uncovered Changes

Lines Coverage ∆ File
11
75.71
75.71% inference_perf/datagen/synthetic_agentic/synthetic_agentic_to_replay_graph.py
Jobs
ID Job ID Ran Files Coverage
1 36052411127.1 24 Sep 2026 08:10PM UTC 125
80.76
GitHub Action Run
Source Files on build 36052411127
  • Tree
  • List 125
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36052411127
  • af6a7c2c on github
  • Prev Build on main (#36037540510)
  • Next Build on main (#36058120120)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc