← Files Agenix InvoiceARCHIVED FILE
plugin.json
15.3 KB · Nov 3, 2026 · 19:12 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "app-6ab4f55ab42881918c79b1e309f06e76",
"version": "1.0.1",
"description": "Agenix Invoice lets businesses in Taiwan handle eGUI by chatting with AI \u2014 issue, schedule, void, adjust and look up invoices, in AI apps or in LINE.",
"author": {
"name": "\u5168\u5883\u6574\u5408\u884c\u92b7\u80a1\u4efd\u6709\u9650\u516c\u53f8",
"url": "https://invoice.agenix.bot/"
},
"homepage": "https://invoice.agenix.bot/",
"extensions": {
"com.openai": {
"interface": {
"displayName": "Agenix Invoice",
"shortDescription": "Chat with AI. Invoice done.",
"longDescription": "Agenix Invoice lets businesses in Taiwan handle eGUI by chatting with AI \u2014 issue, schedule, void, adjust and look up invoices, in AI apps or in LINE.\n\nWe turned the tedious steps of issuing an invoice into one sentence.",
"developerName": "\u5168\u5883\u6574\u5408\u884c\u92b7\u80a1\u4efd\u6709\u9650\u516c\u53f8",
"category": "Business & Operations",
"capabilities": [
"Issue invoices",
"Schedule invoices",
"Void invoices",
"Adjust invoices",
"Look up invoices"
],
"websiteURL": "https://invoice.agenix.bot/",
"supportURL": "https://invoice.agenix.bot/#contact",
"privacyPolicyURL": "https://invoice.agenix.bot/privacy",
"termsOfServiceURL": "https://invoice.agenix.bot/terms",
"defaultPrompt": [
"\u958b\u4e00\u5f35\u542b\u7a05 1,050 \u5143\u7684\u767c\u7968\u7d66\u5927\u5b89\u8a2d\u8a08\u6709\u9650\u516c\u53f8\uff0c\u7d71\u7de8 12345675\uff0c\u54c1\u9805\u662f\u9867\u554f\u8cbb",
"Invoice Da'an Design Co., Ltd. (tax ID 12345675) NT$1,050 incl. tax for consulting services",
"\u5927\u5b89\u8a2d\u8a08\u6709\u9650\u516c\u53f8\uff08\u7d71\u4e00\u7de8\u53f7 12345675\uff09\u5b9b\u306b\u3001\u30b3\u30f3\u30b5\u30eb\u30c6\u30a3\u30f3\u30b0\u6599 1,050 \u5143\uff08\u7a0e\u8fbc\uff09\u306e\u767a\u7968\u3092\u767a\u884c\u3057\u3066\u304f\u3060\u3055\u3044"
],
"composerIcon": "./assets/composer-icon.png",
"logo": "./assets/logo.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Issue an invoice to an individual. The assistant shows a preview first and submits it only after the user confirms. Prompt in English: Issue an individual invoice for \u793a\u7bc4\u516c\u53f8 (the demo company): buyer \u738b\u5c0f\u660e (Wang Xiaoming), email buyer@example.com, 2 bags of coffee beans at NT$450 each, tax included, taxable. Turn 2: after the preview, reply \u300c\u78ba\u8a8d\uff0c\u9001\u51fa\u3002\u300d (Confirmed, submit it). The prompt names the demo company because the assistant asks which company to use when the user does not say. buyer@example.com uses a reserved example domain, so no real person receives the notification email.",
"prompt": "\u5e6b\u793a\u7bc4\u516c\u53f8\u958b\u4e00\u5f35\u500b\u4eba\u767c\u7968\uff1a\u8cb7\u65b9\u738b\u5c0f\u660e\uff0cEmail buyer@example.com\uff0c\u54c1\u9805\u5496\u5561\u8c46 2 \u5305\uff0c\u6bcf\u5305 450 \u5143\uff0c\u542b\u7a05\u3001\u61c9\u7a05\u3002",
"tools_triggered": "preview_invoice_issue, confirm_preview",
"expected_behavior": "(1) The assistant calls preview_invoice_issue once with companyCode demo and one invoice: buyer \u738b\u5c0f\u660e, email buyer@example.com, tax included, taxable, item \u5496\u5561\u8c46 (quantity 2, unit \u5305, unit price 450), no order number. (2) The reply starts with \u3010\u793a\u7bc4\u516c\u53f8\uff08\u767c\u7968\u4e0d\u6703\u771f\u7684\u958b\u51fa\uff09\u3011 and \u9810\u89bd\uff1a\u958b\u7acb\u767c\u7968\uff08\u5c1a\u672a\u9001\u51fa\uff09 (Preview: issue invoice, not yet submitted). It shows \u8cb7\u65b9\uff1a\u738b\u5c0f\u660e, \u767c\u7968\uff1a\u5b58\u5165\u6703\u54e1\u8f09\u5177\uff08\u8cb7\u65b9\u96fb\u5b50\u90f5\u4ef6 buyer@example.com\uff09\uff0c\u4e0d\u5370\u7d19\u672c (stored in the member carrier of this email, no paper copy), an automatic \u81ea\u8a02\u7de8\u865f (order number), \u8ab2\u7a05\u5225\uff1a\u61c9\u7a05\uff0c\u7a05\u7387 5%\uff08\u55ae\u50f9\u70ba\u542b\u7a05\uff09, 1. \u5496\u5561\u8c46\uff1a2 \u5305 \u00d7 450 \u5143 = 900 \u5143, \u92b7\u552e\u984d 857 \u5143, \u7a05\u984d 43 \u5143, and \u7e3d\u984d 900 \u5143 (amount before tax, tax, total). The last line starts with \u9001\u51fa\u7528\u78ba\u8a8d\u78bc\uff08\u4e0d\u5c6c\u65bc\u9810\u89bd\u5167\u5bb9\uff09\uff1a (confirmation code for submitting, not part of the preview). (3) The assistant asks the user to confirm. It does not call confirm_preview before the user confirms. (4) After Turn 2, the assistant calls confirm_preview with the code. ChatGPT may ask the user to approve this call. The reply is \u958b\u7acb\u6210\u529f\uff1a\u767c\u7968 <2 letters and 8 digits>\uff0c\u96a8\u6a5f\u78bc <4 digits>\uff0c\u958b\u7acb\u6642\u9593 <date and time>\uff0c\u81ea\u8a02\u7de8\u865f <order number>\uff0c\u7e3d\u984d 900 \u5143 (Issued)."
},
{
"description": "Look up an invoice from the sample data. Prompt in English: Look up the latest status of invoice MC10000032 of \u793a\u7bc4\u516c\u53f8 (the demo company). The invoice was issued through Agenix Invoice, so the user does not need to give its 4-digit random code.",
"prompt": "\u67e5\u8a62\u793a\u7bc4\u516c\u53f8\u7684\u767c\u7968 MC10000032 \u7684\u6700\u65b0\u72c0\u614b\u3002",
"tools_triggered": "query_invoice",
"expected_behavior": "(1) The assistant calls query_invoice with invoiceNumber MC10000032. It does not ask for the random code, because Agenix Invoice takes the code from the demo company's records. ChatGPT may ask the user to approve the call, because query_invoice is not marked read-only. (2) No preview or confirmation code is created. (3) The reply shows \u767c\u7968 MC10000032\uff1a\u5df2\u958b\u7acb\uff0c\u5df2\u4e0a\u50b3\u8ca1\u653f\u90e8 (issued, uploaded to the Ministry of Finance), the issue time, the order number, \u8cb7\u65b9\uff1a\u738b\u5c0f\u660e\uff08\u500b\u4eba\uff09 (individual buyer), the notification email with part of it masked, \u5b57\u8ecc\u985e\u578b\uff1a\u4e00\u822c\u7a05\u984d, \u8ab2\u7a05\u5225\uff1a\u61c9\u7a05\uff0c\u7a05\u7387 5%, \u92b7\u552e\u984d 857 \u5143, \u7a05\u984d 43 \u5143, \u7e3d\u984d 900 \u5143, the carrier with its number masked, and the item 1. \u5496\u5561\u8c46\uff1a2 \u5305 \u00d7 450 \u5143 = 900 \u5143."
},
{
"description": "Void the invoice from Positive test case 1. Run this case in the same conversation, right after Positive test case 1, so each review run voids a new invoice. Prompt in English: Void the invoice we just issued. Reason: \u958b\u932f (issued by mistake). Turn 2: after the preview, reply \u300c\u78ba\u8a8d\u4f5c\u5ee2\u3002\u300d (Confirm the void). The provider's test environment marks a new invoice as uploaded right away, so the invoice can be voided on the same day.",
"prompt": "\u628a\u525b\u624d\u958b\u7684\u90a3\u5f35\u767c\u7968\u4f5c\u5ee2\uff0c\u539f\u56e0\u300c\u958b\u932f\u300d\u3002",
"tools_triggered": "preview_invoice_void, confirm_preview",
"expected_behavior": "(1) The assistant calls preview_invoice_void with companyCode demo, the invoice number from Positive test case 1, and reason \u958b\u932f. (2) The reply starts with \u9810\u89bd\uff1a\u4f5c\u5ee2\u767c\u7968\uff08\u5c1a\u672a\u9001\u51fa\uff09 (Preview: void invoice, not yet submitted). It shows the invoice (\u5df2\u958b\u7acb\uff0c\u5df2\u4e0a\u50b3\u8ca1\u653f\u90e8, \u7e3d\u984d 900 \u5143, and the items), \u4f5c\u5ee2\u539f\u56e0\uff1a\u958b\u932f (void reason), and \u4f5c\u5ee2\u671f\u9650\uff1a<date>\uff08\u542b\uff09\u4ee5\u524d (void deadline). The last line starts with \u9001\u51fa\u7528\u78ba\u8a8d\u78bc\uff08\u4e0d\u5c6c\u65bc\u9810\u89bd\u5167\u5bb9\uff09\uff1a. (3) The assistant does not void the invoice before the user confirms. (4) After Turn 2, the assistant calls confirm_preview with the code. The reply is \u4f5c\u5ee2\u6210\u529f\uff1a\u767c\u7968 <number>\uff08\u81ea\u8a02\u7de8\u865f <order number>\uff0c\u7e3d\u984d 900 \u5143\uff09\uff0c\u4f5c\u5ee2\u6642\u9593 <date and time> (Voided)."
},
{
"description": "Issue an allowance (a partial refund) against the sample company invoice. Prompt in English: The buyer of invoice MC10000033 of \u793a\u7bc4\u516c\u53f8 (the demo company) returned some goods. Issue an allowance: item \u9867\u554f\u670d\u52d9 (consulting service, the item name on the original invoice), 1 unit, NT$100 before tax. The buyer has agreed. Turn 2: after the preview, reply \u300c\u78ba\u8a8d\u9001\u51fa\u3002\u300d (Confirm and submit). Each run uses NT$105 of the remaining amount.",
"prompt": "\u793a\u7bc4\u516c\u53f8\u7684\u767c\u7968 MC10000033 \u7684\u8cb7\u65b9\u9000\u56de\u90e8\u5206\u5546\u54c1\uff0c\u8acb\u958b\u4e00\u5f35\u6298\u8b93\uff1a\u54c1\u9805\u300c\u9867\u554f\u670d\u52d9\u300d1 \u5f0f\uff0c\u91d1\u984d 100 \u5143\u672a\u7a05\uff0c\u8cb7\u65b9\u5df2\u540c\u610f\u3002",
"tools_triggered": "preview_allowance_issue, confirm_preview",
"expected_behavior": "(1) The assistant calls preview_allowance_issue with companyCode demo, invoice MC10000033, prices before tax, and one item \u9867\u554f\u670d\u52d9 (quantity 1, unit \u5f0f, unit price 100). (2) The reply starts with \u9810\u89bd\uff1a\u958b\u7acb\u6298\u8b93\uff08\u5c1a\u672a\u9001\u51fa\uff09 (Preview: issue allowance, not yet submitted). It shows the original invoice (company buyer with tax ID 53560678) and the line \u539f\u767c\u7968\u7e3d\u984d 10,500 \u5143\uff0c\u7d00\u9304\u4e2d\u5df2\u6298\u8b93 <amount>\uff08<count> \u7b46\uff09\uff0c\u672c\u6b21\u6298\u8b93 105 \u5143\uff0c\u6298\u8b93\u5f8c\u5269\u9918 <amount> (original total, already allowed in the records, this allowance, remaining). The records already have at least 2 allowances. It shows \u6298\u8b93\u5167\u5bb9\uff08\u61c9\u7a05\uff09\uff1a with \u9867\u554f\u670d\u52d9\uff1a1 \u5f0f \u00d7 \u672a\u7a05 100 \u5143 = 100 \u5143\uff0c\u7a05\u984d 5 \u5143, then \u672a\u7a05\u5408\u8a08 100 \u5143, \u7a05\u984d 5 \u5143, and \u6298\u8b93\u7e3d\u984d 105 \u5143. It also states whether an allowance notice is emailed, and shows the reminder \u78ba\u8a8d\u9001\u51fa\u5373\u8868\u793a\u5df2\u53d6\u5f97\u8cb7\u65b9\u540c\u610f\u3002 (submitting means the buyer has agreed). The last line starts with \u9001\u51fa\u7528\u78ba\u8a8d\u78bc\uff08\u4e0d\u5c6c\u65bc\u9810\u89bd\u5167\u5bb9\uff09\uff1a. (3) After Turn 2, the assistant calls confirm_preview with the code. The reply starts with \u6298\u8b93\u6210\u529f\uff08\u61c9\u7a05\uff09\uff1a\u6298\u8b93\u55ae\u865f <allowance number> (Allowance issued) and shows the amounts."
},
{
"description": "List the invoice records of the demo company. Prompt in English: List the recent invoice records of \u793a\u7bc4\u516c\u53f8 (the demo company).",
"prompt": "\u5217\u51fa\u793a\u7bc4\u516c\u53f8\u6700\u8fd1\u7684\u958b\u7acb\u7d00\u9304\u3002",
"tools_triggered": "list_invoice_records",
"expected_behavior": "(1) The assistant calls list_invoice_records with no filter, or with a date range that covers recent days. (2) No preview or confirmation code is created. (3) The reply starts with \u958b\u7acb\u7d00\u9304 and \u5171 <N> \u7b46 (N records in total). Up to 50 records follow, newest first. Each line has the form #<record ID> <time>\uff5c<user email>\uff5c<action>\uff5c<invoice or allowance number>\uff5c<buyer>\uff5c<total>. The actions include \u958b\u7acb (issue), \u4f5c\u5ee2 (void), and \u6298\u8b93 (allowance) from the sample data and from earlier test cases. Individual buyers show as \u500b\u4eba. When more than 50 records match, the last line states how many records are not listed."
}
],
"negative": [
{
"description": "Out of scope: check the receipt lottery. The user wants to know whether a uniform invoice number won the receipt lottery (\u7d71\u4e00\u767c\u7968\u5c0d\u734e). Agenix Invoice issues and manages a company's own e-invoices. It does not check lottery results. Expected: the assistant does not call Agenix Invoice tools and answers in another way. Prompt in English: Check whether uniform invoice AB12345678 won the receipt lottery.",
"prompt": "\u5e6b\u6211\u5c0d\u4e00\u4e0b\u9019\u5f35\u7d71\u4e00\u767c\u7968 AB12345678 \u6709\u6c92\u6709\u4e2d\u734e\u3002"
},
{
"description": "Out of scope: write a payment reminder. The user wants a letter that asks a customer to pay. This is writing help, not issuing or managing e-invoices. Expected: the assistant writes the letter without Agenix Invoice tools. Prompt in English: Write a payment reminder letter to a customer who has not paid yet.",
"prompt": "\u5e6b\u6211\u5beb\u4e00\u5c01\u50ac\u6b3e\u4fe1\u7d66\u9084\u6c92\u4ed8\u6b3e\u7684\u5ba2\u6236\u3002"
},
{
"description": "Out of scope: make a commercial invoice template. The user wants an English commercial invoice document for an overseas customer. Agenix Invoice only issues Taiwan e-invoices through the company's own e-invoice provider account. It does not make trade documents or templates. Expected: the assistant answers without Agenix Invoice tools. Prompt in English: Make an English commercial invoice template for a US customer.",
"prompt": "\u5e6b\u6211\u505a\u4e00\u4efd\u7d66\u7f8e\u570b\u5ba2\u6236\u7684\u82f1\u6587\u5546\u696d\u767c\u7968\uff08commercial invoice\uff09\u7bc4\u672c\u3002"
}
]
},
"commerce": false
},
"publication": {
"countries": [],
"release_notes": "Updated the listing description.",
"translations": {
"zh-TW": {
"subtitle": "\u8ddf AI \u8aaa\u4e00\u8072\uff0c\u96fb\u5b50\u767c\u7968\u5c31\u958b\u597d\u3002",
"description": "Agenix \u767c\u7968\u5c0f\u5e6b\u624b\u8b93\u53f0\u7063\u7684\u516c\u53f8\u5728 AI \u88e1\u7528\u5c0d\u8a71\u8655\u7406\u96fb\u5b50\u767c\u7968\uff1a\u958b\u7acb\u3001\u9810\u7d04\u3001\u4f5c\u5ee2\u3001\u6298\u8b93\u3001\u67e5\u8a62\uff0c\u4e5f\u80fd\u5728 LINE \u4f7f\u7528\u3002\n\n\u6211\u5011\u628a\u539f\u672c\u7e41\u7463\u7684\u958b\u767c\u7968\u6b65\u9a5f\uff0c\u8b8a\u6210\u4e00\u53e5\u8a71\u3002"
},
"ja-JP": {
"subtitle": "AI\u306b\u3072\u3068\u8a00\u3067\u3001\u96fb\u5b50\u7d71\u4e00\u767a\u7968\u3092\u767a\u884c",
"description": "Agenix Invoice \u306f\u3001\u53f0\u6e7e\u306e\u4f01\u696d\u304c AI \u3068\u306e\u4f1a\u8a71\u3067\u96fb\u5b50\u7d71\u4e00\u767a\u7968\u3092\u6271\u3048\u308b\u30c4\u30fc\u30eb\u3067\u3059\u3002\u767a\u884c\u3001\u4e88\u7d04\u3001\u53d6\u6d88\u3001\u7167\u4f1a\u306e\u307b\u304b\u3001\u5024\u5f15\u304d\u3084\u8fd4\u54c1\u306e\u51e6\u7406\u3082\u3067\u304d\u307e\u3059\u3002AI \u30a2\u30d7\u30ea\u3067\u3082 LINE \u3067\u3082\u4f7f\u3048\u307e\u3059\u3002\n\n\u9762\u5012\u3060\u3063\u305f\u767a\u7968\u306e\u767a\u884c\u624b\u9806\u3092\u3001\u79c1\u305f\u3061\u306f\u4e00\u8a00\u306b\u307e\u3068\u3081\u307e\u3057\u305f\u3002"
}
}
},
"apps": "./.app.json"
}
}
}
SHA-256: 6f52ca089d2d0bade6cf4a8ea948dc2b5b4a1ebea749ee70cba35d981c408320