What the documents look like
Permit handling happens before customs declaration and determines whether a shipment may lawfully cross a border. For copy drafting in this category, the working materials are the automatic import licence, the dual-use item licence, the contract, and the product description. These come from the commerce authority system, customs commodity codes, supplier files, and the customer's statement of use. Data changes irregularly and per shipment. A drafting error can block customs clearance, breach a contract, or trigger an administrative penalty.
The drafting step depends on those four document types. Marketing wording that goes beyond what the licence, contract, or product description states has no source in the file set, and the model cannot supply it. Multi-turn drafting therefore has to keep the material boundary visible across turns, because earlier turns are carried forward.
Constraints at the multi-turn prompts step
When a session continues, the interface uses the last element of the messages array as the user question and ignores the remaining messages. When chatId is not passed, the database context is not used and the full context is built from the supplied messages. A prompt for this task states the document scope, the drafting task, and how to handle missing evidence. Reply format follows the downstream consumer; selecting json_schema requires filling in the format requirement and checking the returned structure. The model's maximum context and reply ceiling determine whether a long document combined with follow-up questions can be processed completely.
Hypothetical paper exercise. The material text to be checked reads: "This shipment consists of CNC machine tool accessories and holds an automatic import licence; the licence number appears in Annex 1 of the contract; the permitted use is in-house production. The contract states a delivery date of March 2025. The product description records the country of origin as Germany." The draft sentence to be assessed reads: "This product has obtained import permission and can be supplied stably over the long term." Assessment point: the material states only that this shipment holds the licence and gives the contract delivery date. It does not record any long-term supply arrangement, so the draft sentence goes beyond what the material supports.
Configuration and implementation checks
| Configuration item | Hypothetical starting point for this exercise | Reason and comparison method |
|---|---|---|
| Memory turns | Retain a small number of history turns | Drafting needs prior material; compare the content carried in against a pure messages mode with no chatId |
| Reply ceiling | Set according to material length | Compare with the actual character count of the material and observe where truncation falls |
| Temperature | Lower | Compare with a higher setting and observe whether wording outside the material appears |
| Reply format | Default text | Compare with json_schema, which requires filling the format requirement and checking the structure |
| Multimodal recognition | Decided by model capability | Check the capability items shown in the dialog; switch model when the type is unsupported |
| Hide AI output | Left off | Compare with it on and observe whether the final reply can still be read by later nodes |
Three common errors
- Extending a licence statement that covers only this shipment into a long-term supply commitment. Input is the material text above; the comparison object is "supplied stably over the long term" in the draft sentence; the observable result is that the material does not record that content.
- Assuming during session continuation that all messages are used. Input is multiple messages with chatId; the comparison object is the last content the interface actually adopts; the observable result is that the other messages are ignored.
- Selecting json_schema without filling in the format requirement. Input is that option with an empty format requirement; the comparison object is the returned structure; the observable result is that the structure cannot be consumed as intended.
How to verify the setup
- Input the hypothetical material text and the draft sentence; compare whether the draft sentence is supported by the material. The condition is satisfied when the material records no long-term supply and the draft sentence therefore does not meet the requirement.
- Input multiple messages with chatId; compare the user question the interface adopts. The condition is satisfied when only the last content is adopted.
- Input the json_schema option together with a filled format requirement; compare the returned structure. The condition is satisfied when the structure matches the format requirement. All three are paper checks and have not been run.