A tool chain into a production database
A LangChain agent follows a chain of steps into a production database it was only ever meant to read from a test copy of, and issues a write against live data before anyone reviews the chain.
Tool-calling LangChain agents can reach databases, APIs, and shells. Bound exactly what they touch, cap what they spend, and record what they did.
LangChain (the popular open framework for building tool-using AI agents) makes it easy to give an agent a set of tools and let it decide how to chain them. That is the power, and the risk. A tool-calling agent can reach a database, call an external API, or run a shell command, and it chooses which to call based on a prompt and its own reasoning. The tools you registered define what it can do; nothing outside your code defines what it should be allowed to do right now. A prompt injection in a document, a bad chain of reasoning, or a tool that returns something unexpected, and the agent takes an action against a real system that you never intended. Agentomy sits in front of the tools a LangChain agent calls and governs each action as it happens.
A LangChain agent follows a chain of steps into a production database it was only ever meant to read from a test copy of, and issues a write against live data before anyone reviews the chain.
A document or a tool response the agent reads contains a hidden instruction telling it to call a different tool or reach a different system. The agent obeys, and a tool it should never have used in that moment fires.
An agent with a shell tool runs a command well outside its task, a deletion or an unexpected network call, because the tool was available and nothing scoped when it could be used.
A tool that calls a paid API gets invoked in a loop, and the agent's own reasoning keeps it going, spending far past what the task was worth with nothing capping the rate.
See every LangChain agent you run and the tools, keys, and systems each one can reach, so the actual reach of a tool-calling agent is visible rather than buried in your code.
Each action a tool would take is checked against what the agent is allowed to do before it executes. A read-only agent cannot write, a database tool cannot reach production, and a shell tool cannot run a command outside its scope. Permitted calls pass, the rest are refused and logged.
Hard rate and spend limits stop a tool-calling loop from running up cost, and one command halts every governed agent immediately when a chain goes somewhere it should not.
A tamper-evident, hash-linked log captures every tool call an agent made (which tool, against which system, and why), so you can trace exactly what a chain did after the fact.
A tamper-evident, hash-linked trail of every governance decision for this workload: what an agent did, under whose authorization, and why. Plain-English reasons for every allow and deny, exportable to the framework your auditors care about.
| Agent | Type | Status | Module | Score |
|---|---|---|---|---|
| process-discovery-agent | Discovery | Active | RuntimeMonitor | 92 |
| exception-triage-agent | Exceptions | Active | AuditLogger | 88 |
| vendor-review-agent | Procurement | Monitored | PermissionRouter | 74 |
| invoice-extract-agent | Finance | Quarantined | HaltProtocol | 41 |
| runbook-draft-agent | Runbooks | Monitored | EthicsConstraint | 79 |
| throughput-report-agent | Reporting | Active | DecisionLog | 90 |
| Agent | Action | Policy | Result | Time |
|---|---|---|---|---|
| PermissionRouter | data_access_request | vendor-access | Blocked | 12:42:08 |
| AuditLogger | output_validation | audit-trail | Allowed | 12:41:54 |
| TrustScorer | policy_check | runtime-score | Allowed | 12:41:37 |
| RuntimeMonitor | behavior_drift | drift-threshold | Flagged | 12:40:58 |
| HaltProtocol | halt_initiated | unsafe-action | Blocked | 12:40:21 |
| EthicsConstraint | prompt_review | restricted-output | Flagged | 12:39:46 |
| DecisionLog | evidence_recorded | decision-proof | Allowed | 12:39:12 |
| Block | Timestamp | Agent | Action | Tier | Hash |
|---|---|---|---|---|---|
| 43,482 | Today 12:42:08 | process-discovery-agent | data_access_request | Evaluator | 9379d1d35b670693 |
| 43,481 | Today 12:41:54 | exception-triage-agent | output_validation | Analyst | e57e4e5d05766c2c |
| 43,480 | Today 12:41:37 | vendor-review-agent | policy_check | Builder | 59d19fb8b2c71755 |
| 43,479 | Today 12:40:58 | invoice-extract-agent | behavior_drift | Operator | b8e4e0acc90eecc0 |
| 43,478 | Today 12:40:21 | runbook-draft-agent | halt_initiated | Strategist | c4f71e4ddd8c9bd6 |
| 43,477 | Today 12:39:46 | throughput-report-agent | prompt_review | Evaluator | a9e621e8134d7ded |