Overview
APAgent-v1 · staging · bundle a4f9c2d1 · Governance + Knowledge + Action layers
RUNS TODAY
184
↑ 8% vs yesterday
SUCCESS RATE
97.8%
↑ 0.2pp
TOOL CALLS
2,944
9 denied
Release Status
Bundle
a4f9c2d1
Published
Feb 23 · 12:30
LIVE
Recent Activity
12:34:01
Run run_8f3a completed — 9 tool calls, 0 denials
12:33:47
Approval requested on invoice.approve — POMatchAgent, $14,500
12:30:00
Bundle a4f9c2d1 promoted to staging
12:28:11
Tool call denied: po.override
12:25:00
Eval run ER-041 passed (94.2%)
New Agent
SOP → Analysis → Draft Architecture → Create
1
1. Provide SOP2
2. Analysis Run3
3. Review Draft4
4. Create AgentAgent Details
AGENT NAME
ENVIRONMENT
DESCRIPTION
SOP Document
Upload or paste your Standard Operating Procedure. The analysis engine will extract modules, action intents, escalation rules, and governance constraints.
UPLOAD FILE
↑
Drop PDF, DOCX, or TXT here — or click to browse
OR PASTE SOP TEXT
SKILL PACKS
AP Automation
Financial Services
Procurement
Compliance
Document Processing
Agent Studio
Module authoring — sop.spec → lint → compile → simulate
sop.spec
Build
Architecture
MODULE
COMPILED
sop.spec — EmailInbox
Attached Skills
Lint context
Skills give the Lint & Feasibility check domain-specific scope — validation rules, allowed patterns, and terminology constraints.
AP Automationv1.0
Active
ℹ
Lint will validate this spec against AP Automation rules — e.g. PO matching tolerance must be declared, GL classification must co-occur with glaccount.lookup.
Step Lifecycle
1 Retrieve
2 Decide
3 Propose Action
4 Approval (if required)
5 Execute
6 Verify / Escalate
2 Decide
3 Propose Action
4 Approval (if required)
5 Execute
6 Verify / Escalate
Each sop.spec step must declare all phases. Lint checks completeness.
Module Stats
| Steps | 3 |
| Action Intents | 5 |
| Retrieval modes | structured + semantic |
| Escalation paths | 2 |
| Termination codes | EMAIL_UNCLASSIFIED |
| Attached skills | 1 |
Connectors & Tools
Agent allowlist (tool.manifest) · Per-module least-privilege subsets · MCP surface
Agent Allowlist
Module Subsets
tool.manifest — v5
manifest_4a9f
CURRENT
| TOOL NAME (MCP) | OPERATION | TYPE | SCHEMA |
|---|---|---|---|
| email.fetch | Fetch unread emails from monitored inbox | READ | sch_001 |
| email.classify | Classify email as invoice / W9 / receipt / statement | READ | sch_002 |
| email.route | Route classified email to appropriate module | WRITE | sch_003 |
| email.mark_processed | Mark email as processed in inbox | WRITE | sch_004 |
| doc.extract_fields | Extract structured fields from document via vLLM | READ | sch_005 |
| doc.validate | Validate extracted fields against TCM schema | READ | sch_006 |
| doc.classify_type | Classify document type (invoice / W9 / receipt / statement) | READ | sch_007 |
| netsuite.upload_invoice | Upload parsed invoice to NetSuite as vendor bill | WRITE | sch_008 |
| netsuite.upload_w9 | Upload W9 to vendor profile in NetSuite | WRITE | sch_009 |
| vendor.lookup | Look up vendor profile by name or tax ID | READ | sch_010 |
| vendor.create | Create new vendor record if not found | WRITE | sch_011 |
| lineitem.classify | Classify invoice line item to GL account | READ | sch_012 |
| lineitem.update_gl | Write GL account code to line item in NetSuite | WRITE | sch_013 |
| glaccount.lookup | Look up GL account by code or description | READ | sch_014 |
| po.match | 3-way match: PO vs Invoice vs Goods Receipt | READ | sch_015 |
| invoice.approve | Approve matched invoice for payment | WRITE | sch_016 |
Knowledge & Retrieval
TCM Schema · Ingestion · Governed retrieval · Knowledge-domain writes
TCM Schema
Ingestion
Retrieval Profile
The Tenant Canonical Model (TCM) normalizes data from customer systems into a shared ontology with tenant-specific mappings. Every entity includes required invariants:
id, source_refs[], created_at/updated_at, provenance.Entity Types
10 types
tcm_schema_acme_v2
| ENTITY | FIELDS | VER | STATUS |
|---|---|---|---|
| Vendor | 12 | 2.0 | ACTIVE |
| Invoice | 16 | 2.0 | ACTIVE |
| PurchaseOrder | 12 | 2.0 | ACTIVE |
| GoodsReceipt | 10 | 1.0 | ACTIVE |
| W9 | 10 | 1.0 | ACTIVE |
| Payment | 11 | 1.0 | DRAFT |
| GLAccount | 8 | 1.0 | ACTIVE |
| LineItem | 10 | 1.0 | ACTIVE |
| 10 | 1.0 | ACTIVE | |
| Document | 9 | 2.0 | ACTIVE |
Vendor
v2.0
AP TCM
SCHEMA INVARIANTS (required on every entity)
| FIELD | TYPE | DESCRIPTION |
|---|---|---|
| id | string | Canonical stable ID |
| source_refs[] | array | system, record_id, url if available |
| created_at / updated_at | timestamp | Timestamps |
| provenance | object | ingested_at, confidence, transform_chain |
ENTITY FIELDS — Vendor
| FIELD | TYPE | CLASSIFICATION | REGULATORY | POLICY SUBJECT |
|---|---|---|---|---|
| vendor_name | string | public | none | vendor |
| tax_id | string | restricted | pii | vendor |
| w9_status | enum | internal | none | vendor |
| payment_terms | string | internal | none | vendor |
| bank_account | string | restricted | pci | vendor |
| routing_number | string | restricted | pci | vendor |
| contact_email | string | confidential | pii | vendor |
| netsuite_id | string | internal | none | vendor |
RELATED:
tcm.mapping · netsuite_vendor_v2
Policy
Each agent has its own policy bundle. Every tool call is checked against the agent's rules before it executes.
AGENT
BUNDLE
policy_bundle_v8
v8.2.1
ACTIVE
DEFAULT POSTURE
DENY
10 rules · 5 modules
APAgent-v1 — Rules
Evaluated top-to-bottom on every tool call. First match wins. Unmatched calls get the default posture.
| Tool / Condition | Decision | Effect | Module |
|---|
Evals
Eval suites · Run reports · Release evidence
LAST RUN SCORE
94.2%
49/52 assertions passed
EVAL SUITE
ES-APAgent-v1
52 test cases · 5 modules
Eval Suite Coverage
| CATEGORY | CASES | PASS | FAIL |
|---|---|---|---|
| Email Classification Accuracy | 10 | 10 | 0 |
| Document Extraction Quality | 12 | 11 | 1 |
| GL Classification Accuracy | 10 | 10 | 0 |
| PO Matching Precision | 12 | 11 | 1 |
| Governance & Idempotency | 8 | 7 | 1 |
Eval Runs
| RUN ID | DATE | SCORE | STATUS |
|---|---|---|---|
| ER-041 | Feb 23 12:25 | 94.2% | PASSED |
| ER-040 | Feb 22 18:00 | 88.9% | BELOW THRESHOLD |
| ER-039 | Feb 21 09:00 | 91.1% | PASSED |
Failures — ER-041
FAIL
TC-18: Multi-page invoice merge lost line item on page boundary
Module: DocHandler · Expected 12 line items, extracted 11
FAIL
TC-39: PO tolerance boundary — 2.01% variance not flagged
Module: POMatchAgent · Expected MISMATCH at >2% tolerance
FAIL
TC-48: vendor.create bypassed governance — no approval_id
Module: DocUploader · Write op missing governance gate
3 failures. Threshold: 90%. Score: 94.2% — PASSED
Attach to Release
Attach ER-041 as evidence to the pending release candidate.
Artifact Registry
Versioned artifacts · Immutable published payloads · Dependency tracking
Everything is an artifact: versioned, draftable during authoring, and eligible to become an immutable published version. Published payloads are content-addressed and cannot be modified.
FILTER BY NAMESPACE
All
tcm.schema
sop.spec
sop.compiled
tool.manifest
governance.bundle
eval.suite
eval.report
guardrails.rules
Registered Artifacts
12 artifacts
tenant: acme-corp
| NAMESPACE | NAME | VERSION | HASH | STATUS | CREATED BY | CREATED AT |
|---|---|---|---|---|---|---|
| tcm.schema | acme_ap_v2 | 2.1.0 | 8b3f2a1e | PUBLISHED | fde-admin | Feb 20 · 09:00 |
| sop.spec | EmailInbox | 1.3.0 | 7b3f9d2c | PUBLISHED | fde-admin | Feb 22 · 14:30 |
| sop.compiled | EmailInbox | 1.3.0 | 3d8e2f4a | PUBLISHED | sop-compiler | Feb 22 · 14:45 |
| sop.spec | DocHandler | 1.2.0 | 7a1b9c3e | PUBLISHED | fde-admin | Feb 21 · 10:00 |
| sop.compiled | DocUploader | 1.0.0 | 2e4f1a7b | PUBLISHED | sop-compiler | Feb 21 · 11:30 |
| sop.spec | LineItemClassifier | 1.0.0 | 5c3d8e1f | PUBLISHED | fde-admin | Feb 22 · 16:00 |
| sop.compiled | POMatchAgent | 1.0.0 | 6a4e9f2b | PUBLISHED | sop-compiler | Feb 22 · 16:30 |
| tool.manifest | APAgent-v1 | 5.0.0 | 4a9f33b1 | PUBLISHED | fde-admin | Feb 22 · 15:00 |
| governance.bundle | policy_bundle_v8 | 8.2.1 | 9b3a7f2d | PUBLISHED | fde-admin | Feb 23 · 08:00 |
| eval.suite | ES-APAgent-v1 | 3.0.0 | c2d1e4f8 | PUBLISHED | eval-generator | Feb 22 · 16:00 |
| eval.report | ER-041 | — | a1b2c3d4 | PUBLISHED | evaluator | Feb 23 · 12:25 |
| guardrails.rules | ap_automation_rules | 2.1.0 | d4e5f6a7 | PUBLISHED | fde-admin | Feb 19 · 11:00 |
| sop.spec | DocUploader | 1.1.0-draft | — | DRAFT | fde-admin | Feb 23 · 13:00 |
Active Release Bundle — a4f9c2d1
LIVE
Runtime execution references this immutable hash-pinned bundle. Each run remains pinned to this bundle version and hash for its full lifetime. Only published artifact versions may be pinned.
| ARTIFACT NAMESPACE | PINNED NAME | PINNED VERSION | PINNED HASH | INTEGRITY |
|---|---|---|---|---|
| tcm.schema | acme_ap_v2 | 2.1.0 | 8b3f2a1e | ✓ verified |
| sop.compiled | EmailInbox | 1.3.0 | 3d8e2f4a | ✓ verified |
| sop.compiled | DocHandler | 1.2.0 | 7a1b9c3e | ✓ verified |
| sop.compiled | DocUploader | 1.0.0 | 2e4f1a7b | ✓ verified |
| sop.compiled | LineItemClassifier | 1.0.0 | 5c3d8e1f | ✓ verified |
| sop.compiled | POMatchAgent | 1.0.0 | 6a4e9f2b | ✓ verified |
| tool.manifest | APAgent-v1 | 5.0.0 | 4a9f33b1 | ✓ verified |
| governance.bundle | policy_bundle_v8 | 8.2.1 | 9b3a7f2d | ✓ verified |
| guardrails.rules | ap_automation_rules | 2.1.0 | d4e5f6a7 | ✓ verified |
| eval.suite | ES-APAgent-v1 | 3.0.0 | c2d1e4f8 | ✓ verified |
Releases
Evidence-based promotion · Artifact pinning · Publish · Rollback · Promote
Candidates
Bundle History
Promote
RC-007 — Pending
AWAITING GATES
PINNED ARTIFACTS
| sop.compiled (MOD-001) | 3d8e2f… |
| sop.compiled (MOD-002) | 7a1b9c… |
| sop.compiled (MOD-003) | 2e4f1a… |
| sop.compiled (MOD-004) | 5c3d8e… |
| sop.compiled (MOD-005) | 6a4e9f… |
| tool.manifest | 4a9f33… |
| retrieval profile | c8d2e1… |
| policy bundle | 9b3a7f… |
EVIDENCE GATES
Lint + Feasibility
1 WARN · 1 FAIL (vendor.verify)
Eval Report ER-041
94.2% · above 90% threshold
FDE Admin Approval
Required for prod
Runtime Debug
Runs · MCP tool call traces · Approvals · Retrieval evidence
Recent Runs
| RUN ID | MODULE | TRIGGER | TOOLS CALLED | DURATION | GOV | STATUS | TIMESTAMP |
|---|---|---|---|---|---|---|---|
| run_8f3a | EmailInbox | Incoming email | 3 | 3.4s | APPROVED | OK | Mar 3, 12:34:01 |
| run_7e2b | DocUploader | Manual upload | 3 | — | PENDING | APPROVAL | Mar 3, 12:33:47 |
| run_6d1c | DocHandler | Incoming email | 2 | 0.3s | DENIED | DENIED | Mar 3, 12:28:11 |
| run_5c0e | LineItemClassifier | Pipeline step | 4 | 2.8s | APPROVED | OK | Mar 3, 12:22:00 |
| run_4b9d | POMatchAgent | Pipeline step | 4 | 4.2s | APPROVED | OK | Mar 3, 12:18:30 |
| run_3a8c | EmailInbox | Incoming email | 3 | 2.1s | APPROVED | OK | Mar 3, 12:15:44 |
| run_2f7b | DocHandler | Incoming email | 3 | 5.1s | APPROVED | OK | Mar 3, 12:10:22 |
| run_1e6a | LineItemClassifier | Pipeline step | 4 | 3.0s | APPROVED | OK | Mar 3, 12:05:18 |
| run_0d5f | POMatchAgent | Pipeline step | 4 | 3.9s | APPROVED | OK | Mar 3, 11:58:03 |
| run_fc4e | DocUploader | Manual upload | 2 | 1.7s | APPROVED | OK | Mar 3, 11:52:40 |
| run_eb3d | EmailInbox | Incoming email | 3 | 2.5s | APPROVED | OK | Mar 3, 11:45:11 |
| run_da2c | DocHandler | Incoming email | 3 | 4.6s | PENDING | APPROVAL | Mar 3, 11:38:55 |