Management · お客さまのために働くエージェント — お客さまの手のもとで
作業は彼らが、承認はお客さまが。
お客さまに代わって売り、買い、応対し、記録するエージェント — 運用全体で働きますが、 決してひとりでに動くことはありません。エージェントが提案し、人が署名し、それから動きます。
運用全体で働く四種類のエージェント — それぞれが提案し、決して単独で動くことはありません。
見積もり、アップセル、成約 — 自動操縦ではなく提案です。エージェントが取引案を起草し、 それを実行するかどうかは人が決めます。
お客さまの声で応対し、難しい案件は人にエスカレーションします。定型的な質問には速く正確に 返答し、やっかいなものは人に届きます。
承認のもとで在庫を補充し、サプライヤーを追います。仕入れ側も販売側と同じ厳格さで動き、 署名なしに発注されることはありません。
記録、照合、準備 — 退屈な仕事を片づけます。事務作業は、誰かの週末を奪うことなく処理されます。
違いは派手なダッシュボードではありません。承認そのものです — そしてお客さまに代わって 何ひとつ、ひとりでに動くことはありません。
エージェントがどう守られているか — 作り上げた自律性の数値ではありません。
エージェントは主役ではありません。主役は承認です。実際の姿をここにお見せします。
コードは英語のまま — 工学の世界共通言語です。
"""MatchTop · an agent — it proposes, it never ships on its own. Standard library only. The agent raises a hand; a person decides.""" from dataclasses import dataclass, field from datetime import datetime @dataclass class Proposal: kind: str # "restock" | "refund" | "reply" | "reconcile" detail: dict reason: str raised_at: datetime = field(default_factory=datetime.utcnow) signed: bool = False # stays False until a human says yes def watch_stock(store, floor=3): """Low stock is not an order. It is a proposal that waits for a signature.""" for item in store.low_stock(below=floor): yield Proposal( kind="restock", detail={"sku": item.sku, "qty": item.reorder_qty}, reason=f"{item.sku} at {item.stock}, below floor of {floor}", )
"""MatchTop · the sign-off gate — the one door every proposal must pass. No action reaches the business side of the system unsigned.""" class PermissionError(Exception): pass def apply(p: Proposal, signer: str | None = None): """Raises unless a human has signed. Nothing else gets this proposal through.""" if not p.signed or signer is None: raise PermissionError("no action ships without a human signature") store.execute(p) # only reachable after sign-off log_signature(p, signer) # every pass through this gate is recorded
"""MatchTop · the signature log — append-only, who signed what, when. Nothing is edited after the fact; the record is the record.""" import csv from pathlib import Path from datetime import datetime LOG = Path("signatures.csv") def log_signature(p: Proposal, signer: str) -> None: """One line per signed action — auditable by anyone you point at this file.""" is_new = not LOG.exists() with LOG.open("a", newline="") as f: w = csv.writer(f) if is_new: w.writerow(["raised_at", "kind", "reason", "signer", "signed_at"]) w.writerow([p.raised_at, p.kind, p.reason, signer, datetime.utcnow()]) return None # handed to the record, not to a black box
承認のもとで動くエージェントが、ひとりでに動くエージェントに勝る理由。
自律型 AI に、お客さまの金銭を任せることはできません — 先に動いて、後から説明するからです。 ブラックボックスは監査できません。そして顔の見えないボットは、自らの行いに責任を負えません。だからこそ、 ここに価格表はありません。運用に何を回す必要があるかを見極め、計測し、計測した内容に対して見積もります。
一行を書く前に、お客さまのストアとそのデータをどう守るか。この点は交渉の余地がありません。
ここでは NDA が標準であり、追加販売ではありません。共有いただいた情報は一人の技術者だけが読み、 他の誰も読みません — 売却も共有も転用も一切ありません。
お客さまのデータ、顧客、そして金銭は、お客さまの鍵のもとに留まります。エージェントが動くのは、 お客さまが署名した範囲に限られます。
すべてのエージェントの動作は記録され署名されます — 誰が、いつ、何をしたかを読めます。目を離した隙に お客さまの金銭を動かすブラックボックスはありません。
二行で — エージェントに何をさせたいのか、そして何を手放したいのか。私たち自身が読み、 私たち自身がお答えします。
すでにチューリッヒの画面に表示されています — 待ち行列でもチケットでもありません。 これを運営する技術者が自ら読み、自ら返信します。
·