---
title: "エージェントが何をするか、何を拒否するか：1つのセット、すべてのドアで同じ"
seo_title: "Agent capabilities, and what it refuses | SazAI"
description: "The agent's operations are a subset of the API's, each ships measured, and it refuses what is not in your documents."
tags: [marketing]
---

> A feature list is easy to write and impossible to check. This page does the opposite: it says what the agent executes today, under what contract the set is the same in any channel, and what it refuses, which is the part that decides whether you bring the answer into a meeting.

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-talk)" name="compare" size="36"></sz-icon></div>

<h2 id="one-set">The set is one</h2>

<h3 class="sub">What the agent exposes is a subset of what the API exposes, and that holds as a contract</h3>

There is an internal rule the house treats as a contract: the set of operations exposed to the
agent is a subset of what the programming interface exposes. Nothing exists in the agent
without existing in the API. In practice your team automates from outside everything a person
does by talking, and a new capability does not appear in one channel and vanish in the other.

<figure class="viz duo" role="group" aria-label="エージェントが持つ操作セット、APIが公開するセットに含まれている">
<div class="side"><svg viewBox="0 0 90 60" aria-hidden="true"><ellipse cx="45" cy="30" rx="40" ry="24" fill="none" stroke="var(--gray)" stroke-width="1.5"/></svg><b>the API</b><span>everything the product exposes</span></div>
<div class="mid"><svg viewBox="0 0 120 72" aria-hidden="true"><ellipse cx="60" cy="36" rx="52" ry="30" fill="none" stroke="var(--gray)" stroke-width="1.5"/><ellipse cx="48" cy="36" rx="30" ry="20" fill="var(--verb-talk)" opacity=".14" stroke="var(--verb-talk)" stroke-width="1.5"/></svg><b>one inside the other</b><span>by contract, never by coincidence</span></div>
<div class="side"><svg viewBox="0 0 90 60" aria-hidden="true"><ellipse cx="45" cy="30" rx="26" ry="17" fill="var(--verb-talk)" opacity=".14" stroke="var(--verb-talk)" stroke-width="1.5"/></svg><b>the agent</b><span>the same set, with no invention of its own</span></div>
<figcaption>A new channel does not invent a new surface: it reads the one that already exists.</figcaption>
</figure>

The rule also holds in the direction nobody asks about and that matters more: nothing the
agent does escapes the record the API already keeps. The same authorization, the same
metering, the same [lineage](documents). Talking is not a shortcut around the control, it is
another door into it.

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-talk)" name="check" size="36"></sz-icon></div>

<h2 id="what-it-does">What it does</h2>

<h3 class="sub">Read, measure, compare, translate, and point to the source of every answer</h3>

It opens what came in: each document in its format's unit, with the text, the origin, the
speaker notes, the comments and the hidden ones, which is what is in
[your documents](documents). It answers from what the engine measured, without reprocessing
anything, and brings the address with it. It compares two versions and returns a number
instead of an impression. It walks the [neural network](connectome) of your vault node by
node, entering through one document and following the links, instead of swallowing the whole
folder. And when the question turns into a request, it triggers the operation:
[translate](translate) is the first of them, with a receipt.

<figure class="viz duo" role="group" aria-label="答えからスライドへ：出所はアドレスで、引用ではない">
<div class="side"><svg viewBox="0 0 90 60" aria-hidden="true"><rect x="4" y="8" width="82" height="44" rx="6" fill="none" stroke="var(--lightgray)" stroke-width="1.5"/><line x1="14" y1="22" x2="66" y2="22" stroke="var(--gray)" stroke-width="2"/><line x1="14" y1="32" x2="52" y2="32" stroke="var(--gray)" stroke-width="1.5"/></svg><b>the answer</b><span>what the agent said</span></div>
<div class="mid"><svg viewBox="0 0 60 60" aria-hidden="true"><line x1="6" y1="30" x2="48" y2="30" stroke="var(--verb-talk)" stroke-width="1.5"/><path d="M42 24l6 6-6 6" fill="none" stroke="var(--verb-talk)" stroke-width="1.5"/></svg></div>
<div class="side"><svg viewBox="0 0 90 60" aria-hidden="true"><rect x="10" y="6" width="70" height="48" rx="4" fill="none" stroke="var(--verb-talk)" stroke-width="1.5"/><rect x="18" y="16" width="30" height="18" rx="2" fill="none" stroke="var(--lightgray)" stroke-width="1.5"/></svg><b>slide 12</b><span>the click opens it</span></div>
<figcaption>The source is an address in your vault, and the click leads to it.</figcaption>
</figure>

Every answer carries that address, and it is what separates an impression from a fact: what
the agent states, you reopen and check.

<figure class="viz" role="group" aria-label="仕様からドキュメントを作成する機能、方向として宣言されている">
<div class="ev open"><span class="n">declared direction</span><span class="t"><b>Creating from a specification is not yet a receipt</b>Producing a new document through conversation enters as a direction, under the same discipline as the roadmap: no present-tense verb and no number, because there is no recorded execution to support one. The empty space here is information too.</span></div>
<figcaption>What has not been measured stays declared as a direction, never as a capability.</figcaption>
</figure>

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-talk)" name="x" size="36"></sz-icon></div>

<h2 id="what-it-refuses">What it refuses</h2>

<h3 class="sub">When it is not in your documents, it says so</h3>

When something is not in your documents, the agent says it is not there. It does not fill in,
does not summarize what it did not read, does not fill the silence with a plausible fiction.
For someone answering to an auditor, *it is not in the material* is a feature, not a failure:
it is the answer you repeat in the meeting without fear, because it carries the same backing
as the others.

And the refusal is not a behavior instruction we asked of the model, it is a property of the
arrangement. The agent does not have your file in front of it to guess from: it has what the
engine recorded, and the record either holds the information or it does not. The reason for
this is in [the conversation is with the AI](docs-by-spec).

<div class="bound"><p><b>The limit, stated before the test.</b> The agent reads the corpus, never the file. What was not extracted on entry does not exist for it, and the honest answer in that case is the refusal. The text sent to the model follows the provider's retention terms, and the agent's own first line already says so.</p></div>

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-talk)" name="book" size="36"></sz-icon></div>

<h2 id="how-a-capability-lands">How a capability lands on this page</h2>

<h3 class="sub">Three questions before the sentence is published</h3>

Every capability passes through three questions before it becomes a served sentence: is there
a written decision that decides it, was it measured, and can anyone reproduce the
measurement. What passes all three we call a
<dfn tabindex="0" data-hint="書かれた決定と誰でも再現できる計測を持つ機能：約束ではなく、証跡。">receipt</dfn>. What passes only the first two stays declared as a practice, with no
present-tense verb and no number.

A page that presents seven capabilities where three are a receipt is weaker than one that
presents four and backs all four, and choosing which of the two to write is the one thing
this house does before writing. Where the coverage ends, and why the boundary is stated by us
before it is discovered by you, is in [trust](trust); the whole of the platform that supports
all of this is in [platform](platform).

</div>

This is the set. Where it reaches you is in [interfaces](interfaces), and the design that
separates the conversation from the execution is in
[the conversation is with the AI](docs-by-spec).
