govagent 0.2.2__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. {govagent-0.2.2 → govagent-0.3.0}/PKG-INFO +64 -69
  2. {govagent-0.2.2 → govagent-0.3.0}/README.md +63 -68
  3. {govagent-0.2.2 → govagent-0.3.0}/changelog.md +35 -0
  4. govagent-0.3.0/examples/langchain_integration.py +67 -0
  5. govagent-0.3.0/logs/audit_trail.jsonl +45 -0
  6. govagent-0.3.0/policies/auditor_policy.yaml +31 -0
  7. govagent-0.3.0/policies/langchain_integration_sample_policy.yaml +43 -0
  8. {govagent-0.2.2 → govagent-0.3.0}/pyproject.toml +1 -1
  9. govagent-0.3.0/src/govagent/__init__.py +6 -0
  10. govagent-0.3.0/src/govagent/agent.py +172 -0
  11. govagent-0.3.0/src/govagent/context.py +29 -0
  12. govagent-0.3.0/src/govagent/guards.py +73 -0
  13. {govagent-0.2.2 → govagent-0.3.0}/src/govagent/hitl/__init__.py +3 -1
  14. {govagent-0.2.2 → govagent-0.3.0}/src/govagent/hitl/manager.py +3 -1
  15. {govagent-0.2.2 → govagent-0.3.0}/src/govagent/hitl.py.old +19 -11
  16. govagent-0.3.0/src/govagent/policy.py +78 -0
  17. govagent-0.3.0/src/govagent/registry.py +87 -0
  18. govagent-0.3.0/src/govagent/telemetry.py +108 -0
  19. govagent-0.3.0/tests/conftest.py +53 -0
  20. govagent-0.3.0/tests/test_flow.py +86 -0
  21. govagent-0.3.0/tests/test_governance.py +109 -0
  22. govagent-0.3.0/tests/test_slack_hitl.py +63 -0
  23. govagent-0.2.2/examples/governed_researcher.py +0 -66
  24. govagent-0.2.2/examples/healthcare_app.py +0 -45
  25. govagent-0.2.2/examples/langchain_integration.py +0 -67
  26. govagent-0.2.2/policies/healthcare_ops_policy.yaml +0 -52
  27. govagent-0.2.2/policies/langchain_integration_sample_policy.yaml +0 -30
  28. govagent-0.2.2/policies/market_research_policy.yaml +0 -34
  29. govagent-0.2.2/src/govagent/__init__.py +0 -13
  30. govagent-0.2.2/src/govagent/agent.py +0 -112
  31. govagent-0.2.2/src/govagent/guards.py +0 -43
  32. govagent-0.2.2/src/govagent/policy.py +0 -89
  33. govagent-0.2.2/src/govagent/registry.py +0 -72
  34. govagent-0.2.2/src/govagent/telemetry.py +0 -85
  35. govagent-0.2.2/tests/conftest.py +0 -11
  36. govagent-0.2.2/tests/test_flow.py +0 -51
  37. govagent-0.2.2/tests/test_gevernance.py +0 -58
  38. govagent-0.2.2/tests/test_slack_hitl.py +0 -66
  39. {govagent-0.2.2 → govagent-0.3.0}/.gitattributes +0 -0
  40. {govagent-0.2.2 → govagent-0.3.0}/.github +0 -0
  41. {govagent-0.2.2 → govagent-0.3.0}/.gitignore +0 -0
  42. {govagent-0.2.2 → govagent-0.3.0}/LICENSE +0 -0
  43. {govagent-0.2.2 → govagent-0.3.0}/docs/GovAgent_Enterprise_Governance_v1.pdf +0 -0
  44. {govagent-0.2.2 → govagent-0.3.0}/src/govagent/hitl/adapters.py +0 -0
  45. {govagent-0.2.2 → govagent-0.3.0}/src/govagent/hitl/slack_adapter.py +0 -0
  46. {govagent-0.2.2 → govagent-0.3.0}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: govagent
3
- Version: 0.2.2
3
+ Version: 0.3.0
4
4
  Summary: The Governance-First Framework for Agentic AI
5
5
  Project-URL: Homepage, https://github.com/thekakodkar/govagent
6
6
  Author: Niraj Kakodkar
@@ -28,7 +28,7 @@ GovAgent provides a high-abstraction **Control Plane** for agentic AI. With a cl
28
28
 
29
29
  <img width="1097" height="479" alt="ImagegoV" src="https://github.com/user-attachments/assets/4e05d505-63d6-4f14-9475-cc00b4f20d73" />
30
30
 
31
- The v0.2.2 Update introduces a standardized LangChain Integration Layer and hardened Slack Socket Mode connectivity, ensuring that high-risk AI actions are always subject to verified human oversight.
31
+ The v0.3.0 "Institutional Scaling" update transforms the framework into an automated gatekeeper, introducing thread-safe context management and declarative tool protection, allowing for the rapid deployment of governed "AI Swarms."
32
32
 
33
33
  ---
34
34
 
@@ -60,81 +60,79 @@ GovAgent is engineered to facilitate compliance for **High-Risk AI Systems** as
60
60
 
61
61
  ---
62
62
 
63
- ## 🛠️ Key Capabilities (v0.2.2)
64
- * **🔗 LangChain Bridge:** Standardized `@langchain_tool` wrappers for seamless interception of LangChain agent intents.
65
- * **🔌 Socket Mode Judiciary:** Secure, persistent WebSocket connections for Slack oversight without exposing public endpoints (No Ngrok required).
66
- * **📦 Pydantic Telemetry:** Hardened serialization of agent tasks to ensure audit logs meet strict enterprise data schemas.
67
- * **⚠️ Constitutional Startup Check:** Refuses to boot if tool registry and policy permissions do not match, eliminating "Shadow AI."
68
- * **🛡️ Zero-Trust Guardrails:** Hardened whitelisting for all agent actions and financial disbursements.
63
+ ## 🛠️ Key Capabilities (v0.3.0)
64
+ * **🛡️ Invisible Governance:** Declarative tool protection via the @tool decorator. Guards are injected automatically at runtime.
65
+ * **🏢 Institutional Bootstrap:** Single-line initialization (ExecutiveAgent.bootstrap()) for rapid enterprise setup.
66
+ * **🧵 Thread-Safe Scaling:** contextvars support enables multi-agent swarms without identity or budget leakage.
67
+ * **🛑 Terminal Integrity:** Built-in "Hard Stop" logic prevents infinite reasoning loops after a rejection or fiscal breach.
69
68
 
70
69
  ---
71
- ## 🗺️ Strategic Roadmap
72
-
73
- ### ✅ v0.2.2: Operational Stability (Current)
74
- * **LangChain Integration:** Standardized tool-guarding for LangChain ecosystems.
75
- * **Synchronous HITL:** Stabilized Slack Socket Mode and CLI adapters for real-time intervention.
76
- * **Intent Serialization:** Resolved telemetry validation errors via JSON-based intent snapshots.
77
-
78
- ### 🚀 v0.3.0: Enterprise Connectivity (Next)
79
- * **Fiscal Ceilings:** Recursive approval for multi-agent sub-tasks and "Total Cost of Operation" (TCO) guardrails.
80
- * **Cloud Exporters:** Native integrations for enterprise logging stacks (AWS CloudWatch / Azure Monitor).
81
- * **Dynamic Budgeting:** Real-time API pricing integration for penny-accurate cost tracking.
82
- ---
70
+ ## 📖 Advanced Usage: High-Abstraction Governance
71
+ In an enterprise environment, GovAgent acts as your digital "Control Plane" for high-stakes workflows like healthcare claim processing.
83
72
 
84
- ## 📖 Usage Example: Governed LangChain Tool (Simplified API)
85
-
86
- GovAgent v0.2.2 introduces a streamlined import structure and native support for LangChain tool interception. The following example demonstrates how to gate a high-risk financial transaction with a synchronous Slack Judiciary.
73
+ ### 1. Define a Governed tool (Pillars 2 & 3)
74
+ ```python
75
+ from govagent import tool
87
76
 
77
+ @tool(name="execute_financial_transaction", guards=["fiscal", "judiciary"], risk_level="high")
78
+ async def process_payment(amount: float, reference_id: str):
79
+ """Executes a financial disbursement. Injected guards handle Pillar 2 & 3 automatically."""
80
+ return f"SUCCESS: Paid ${amount} for Ref: {reference_id}"
81
+ ```
82
+ ### 2. The Institutional session (Pillars 1 & 4)
88
83
  ```python
89
- import os
90
84
  import asyncio
91
- from langchain_core.tools import tool as langchain_tool
92
- from govagent import ExecutiveAgent, Policy, HITLManager, SlackJudiciaryAdapter
93
-
94
- @langchain_tool
95
- async def healthcare_payment_tool(amount: float) -> str:
96
- """Authorizes payments for healthcare claims. Input: amount."""
97
-
98
- # 1. Initialize the Judiciary Adapter (Slack Socket Mode)
99
- # This establishes a secure, persistent connection for real-time oversight.
100
- adapter = SlackJudiciaryAdapter(
101
- bot_token=os.getenv("SLACK_BOT_TOKEN"),
102
- app_token=os.getenv("SLACK_APP_TOKEN"),
103
- channel_id=os.getenv("SLACK_CHANNEL_ID")
104
- )
105
- adapter.start()
106
-
107
- # 2. Initialize Governance Layer via Flat API
108
- manager = HITLManager(adapter=adapter)
109
- policy = Policy.from_yaml("policies/healthcare_policy.yaml")
110
-
111
- # 3. ARTICLE 14: Synchronous Human Oversight
112
- # Execution physically pauses here until a signal is received from Slack.
113
- print(f"⚖️ [GovAgent] Intercepting request for ${amount}...")
114
-
115
- approved = await manager.secure_approval(
116
- agent_id="Healthcare-Director-v0.2.2",
117
- reason=f"High-risk authorization required for GuardedPayment (${amount}).",
118
- context={
119
- "amount": f"${amount}",
120
- "compliance_check": "EU-AI-ACT-HIGH-RISK"
121
- }
85
+ from langchain_openai import ChatOpenAI
86
+ from govagent import ExecutiveAgent
87
+
88
+ async def run_governed_session():
89
+ # Load Policy (Pillar 1) & Initialize Session
90
+ agent = ExecutiveAgent.bootstrap(
91
+ policy_path="policies/finance_policy.yaml",
92
+ llm=ChatOpenAI(model="gpt-4o"),
93
+ slack_channel="C12345" # Judiciary Link
122
94
  )
123
95
 
124
- if approved:
125
- # Business logic proceeds only after explicit human authorization
126
- return f"SUCCESS: Payment of ${amount} authorized via Slack."
96
+ # Telemetry (Pillar 4) is captured automatically during execution
97
+ task = "Process a reimbursement for claim #882 in the amount of $1200."
98
+ report = await agent.execute(task)
127
99
 
128
- return "REJECTED: Transaction denied by Human Judiciary."
100
+ print(f"🏁 Session Status: {report.status}")
101
+ ```
102
+
103
+ ---
129
104
 
130
- # Example Invocation
131
- async def main():
132
- result = await healthcare_payment_tool.ainvoke({"amount": 1200.0})
133
- print(result)
105
+ ### 📊 Forensic Telemetry: Article 12 Readiness
106
+ Every session generates an immutable JSONL snapshot in /logs/audit_trail.jsonl.
107
+
108
+ ```python
109
+
110
+ {
111
+ "timestamp": "2026-05-06T12:24:25",
112
+ "persona": "Healthcare Finance Director",
113
+ "task": "Process claim #7742 for $1,250.00",
114
+ "guards_evaluated": ["fiscal", "policy", "judiciary"],
115
+ "decision": "Approved by Judiciary (Slack)",
116
+ "metadata": {
117
+ "tokens": 450,
118
+ "cost_usd": 0.009,
119
+ "intent": {"action": "authorize_claim_payment", "params": {"amount": 1250.0}}
120
+ }
121
+ }
134
122
 
135
- if __name__ == "__main__":
136
- asyncio.run(main())
137
123
  ```
124
+
125
+ ## 🗺️ Strategic Roadmap
126
+
127
+ ### ✅ v0.3.0: Institutional Scaling (Current)
128
+ * **Automated Interception:** Declarative tool protection via decorators.
129
+ * **Context Management:** Thread-safe multi-agent session tracking.
130
+ * **Terminal Logic:** Loop-breaking safety for judiciary rejections.
131
+
132
+ ### 🚀 v0.4.0: The "Sovereign Swarm" (Next)
133
+ * **Recursive Fiscal Ceilings:** Multi-agent TCO (Total Cost of Operation) guardrails.
134
+ * **Cloud Exporters:** Native integration for AWS CloudWatch and Azure Monitor.
135
+ * **Dynamic Budgeting:** Real-time API pricing for penny-accurate cost tracking.---
138
136
  ---
139
137
  ## ⚙️ Installation
140
138
 
@@ -173,12 +171,9 @@ SLACK_CHANNEL_ID=C12345678
173
171
  OPENAI_API_KEY=sk-your-key
174
172
 
175
173
  ---
176
-
177
174
  **"Governance is not a constraint; it is the catalyst for enterprise AI adoption."**
178
-
179
175
  ---
180
-
181
176
  ### Author Stamp
182
- * **Framework:** GovAgent v0.2.2 (Stable)
177
+ * **Framework:** GovAgent v0.2.3 (Stable)
183
178
  * **Status:** Active / Open-Source Standard
184
179
  * **Compliance:** Designed for Enterprise-Grade Accountability
@@ -6,7 +6,7 @@ GovAgent provides a high-abstraction **Control Plane** for agentic AI. With a cl
6
6
 
7
7
  <img width="1097" height="479" alt="ImagegoV" src="https://github.com/user-attachments/assets/4e05d505-63d6-4f14-9475-cc00b4f20d73" />
8
8
 
9
- The v0.2.2 Update introduces a standardized LangChain Integration Layer and hardened Slack Socket Mode connectivity, ensuring that high-risk AI actions are always subject to verified human oversight.
9
+ The v0.3.0 "Institutional Scaling" update transforms the framework into an automated gatekeeper, introducing thread-safe context management and declarative tool protection, allowing for the rapid deployment of governed "AI Swarms."
10
10
 
11
11
  ---
12
12
 
@@ -38,81 +38,79 @@ GovAgent is engineered to facilitate compliance for **High-Risk AI Systems** as
38
38
 
39
39
  ---
40
40
 
41
- ## 🛠️ Key Capabilities (v0.2.2)
42
- * **🔗 LangChain Bridge:** Standardized `@langchain_tool` wrappers for seamless interception of LangChain agent intents.
43
- * **🔌 Socket Mode Judiciary:** Secure, persistent WebSocket connections for Slack oversight without exposing public endpoints (No Ngrok required).
44
- * **📦 Pydantic Telemetry:** Hardened serialization of agent tasks to ensure audit logs meet strict enterprise data schemas.
45
- * **⚠️ Constitutional Startup Check:** Refuses to boot if tool registry and policy permissions do not match, eliminating "Shadow AI."
46
- * **🛡️ Zero-Trust Guardrails:** Hardened whitelisting for all agent actions and financial disbursements.
41
+ ## 🛠️ Key Capabilities (v0.3.0)
42
+ * **🛡️ Invisible Governance:** Declarative tool protection via the @tool decorator. Guards are injected automatically at runtime.
43
+ * **🏢 Institutional Bootstrap:** Single-line initialization (ExecutiveAgent.bootstrap()) for rapid enterprise setup.
44
+ * **🧵 Thread-Safe Scaling:** contextvars support enables multi-agent swarms without identity or budget leakage.
45
+ * **🛑 Terminal Integrity:** Built-in "Hard Stop" logic prevents infinite reasoning loops after a rejection or fiscal breach.
47
46
 
48
47
  ---
49
- ## 🗺️ Strategic Roadmap
50
-
51
- ### ✅ v0.2.2: Operational Stability (Current)
52
- * **LangChain Integration:** Standardized tool-guarding for LangChain ecosystems.
53
- * **Synchronous HITL:** Stabilized Slack Socket Mode and CLI adapters for real-time intervention.
54
- * **Intent Serialization:** Resolved telemetry validation errors via JSON-based intent snapshots.
55
-
56
- ### 🚀 v0.3.0: Enterprise Connectivity (Next)
57
- * **Fiscal Ceilings:** Recursive approval for multi-agent sub-tasks and "Total Cost of Operation" (TCO) guardrails.
58
- * **Cloud Exporters:** Native integrations for enterprise logging stacks (AWS CloudWatch / Azure Monitor).
59
- * **Dynamic Budgeting:** Real-time API pricing integration for penny-accurate cost tracking.
60
- ---
48
+ ## 📖 Advanced Usage: High-Abstraction Governance
49
+ In an enterprise environment, GovAgent acts as your digital "Control Plane" for high-stakes workflows like healthcare claim processing.
61
50
 
62
- ## 📖 Usage Example: Governed LangChain Tool (Simplified API)
63
-
64
- GovAgent v0.2.2 introduces a streamlined import structure and native support for LangChain tool interception. The following example demonstrates how to gate a high-risk financial transaction with a synchronous Slack Judiciary.
51
+ ### 1. Define a Governed tool (Pillars 2 & 3)
52
+ ```python
53
+ from govagent import tool
65
54
 
55
+ @tool(name="execute_financial_transaction", guards=["fiscal", "judiciary"], risk_level="high")
56
+ async def process_payment(amount: float, reference_id: str):
57
+ """Executes a financial disbursement. Injected guards handle Pillar 2 & 3 automatically."""
58
+ return f"SUCCESS: Paid ${amount} for Ref: {reference_id}"
59
+ ```
60
+ ### 2. The Institutional session (Pillars 1 & 4)
66
61
  ```python
67
- import os
68
62
  import asyncio
69
- from langchain_core.tools import tool as langchain_tool
70
- from govagent import ExecutiveAgent, Policy, HITLManager, SlackJudiciaryAdapter
71
-
72
- @langchain_tool
73
- async def healthcare_payment_tool(amount: float) -> str:
74
- """Authorizes payments for healthcare claims. Input: amount."""
75
-
76
- # 1. Initialize the Judiciary Adapter (Slack Socket Mode)
77
- # This establishes a secure, persistent connection for real-time oversight.
78
- adapter = SlackJudiciaryAdapter(
79
- bot_token=os.getenv("SLACK_BOT_TOKEN"),
80
- app_token=os.getenv("SLACK_APP_TOKEN"),
81
- channel_id=os.getenv("SLACK_CHANNEL_ID")
82
- )
83
- adapter.start()
84
-
85
- # 2. Initialize Governance Layer via Flat API
86
- manager = HITLManager(adapter=adapter)
87
- policy = Policy.from_yaml("policies/healthcare_policy.yaml")
88
-
89
- # 3. ARTICLE 14: Synchronous Human Oversight
90
- # Execution physically pauses here until a signal is received from Slack.
91
- print(f"⚖️ [GovAgent] Intercepting request for ${amount}...")
92
-
93
- approved = await manager.secure_approval(
94
- agent_id="Healthcare-Director-v0.2.2",
95
- reason=f"High-risk authorization required for GuardedPayment (${amount}).",
96
- context={
97
- "amount": f"${amount}",
98
- "compliance_check": "EU-AI-ACT-HIGH-RISK"
99
- }
63
+ from langchain_openai import ChatOpenAI
64
+ from govagent import ExecutiveAgent
65
+
66
+ async def run_governed_session():
67
+ # Load Policy (Pillar 1) & Initialize Session
68
+ agent = ExecutiveAgent.bootstrap(
69
+ policy_path="policies/finance_policy.yaml",
70
+ llm=ChatOpenAI(model="gpt-4o"),
71
+ slack_channel="C12345" # Judiciary Link
100
72
  )
101
73
 
102
- if approved:
103
- # Business logic proceeds only after explicit human authorization
104
- return f"SUCCESS: Payment of ${amount} authorized via Slack."
74
+ # Telemetry (Pillar 4) is captured automatically during execution
75
+ task = "Process a reimbursement for claim #882 in the amount of $1200."
76
+ report = await agent.execute(task)
105
77
 
106
- return "REJECTED: Transaction denied by Human Judiciary."
78
+ print(f"🏁 Session Status: {report.status}")
79
+ ```
80
+
81
+ ---
107
82
 
108
- # Example Invocation
109
- async def main():
110
- result = await healthcare_payment_tool.ainvoke({"amount": 1200.0})
111
- print(result)
83
+ ### 📊 Forensic Telemetry: Article 12 Readiness
84
+ Every session generates an immutable JSONL snapshot in /logs/audit_trail.jsonl.
85
+
86
+ ```python
87
+
88
+ {
89
+ "timestamp": "2026-05-06T12:24:25",
90
+ "persona": "Healthcare Finance Director",
91
+ "task": "Process claim #7742 for $1,250.00",
92
+ "guards_evaluated": ["fiscal", "policy", "judiciary"],
93
+ "decision": "Approved by Judiciary (Slack)",
94
+ "metadata": {
95
+ "tokens": 450,
96
+ "cost_usd": 0.009,
97
+ "intent": {"action": "authorize_claim_payment", "params": {"amount": 1250.0}}
98
+ }
99
+ }
112
100
 
113
- if __name__ == "__main__":
114
- asyncio.run(main())
115
101
  ```
102
+
103
+ ## 🗺️ Strategic Roadmap
104
+
105
+ ### ✅ v0.3.0: Institutional Scaling (Current)
106
+ * **Automated Interception:** Declarative tool protection via decorators.
107
+ * **Context Management:** Thread-safe multi-agent session tracking.
108
+ * **Terminal Logic:** Loop-breaking safety for judiciary rejections.
109
+
110
+ ### 🚀 v0.4.0: The "Sovereign Swarm" (Next)
111
+ * **Recursive Fiscal Ceilings:** Multi-agent TCO (Total Cost of Operation) guardrails.
112
+ * **Cloud Exporters:** Native integration for AWS CloudWatch and Azure Monitor.
113
+ * **Dynamic Budgeting:** Real-time API pricing for penny-accurate cost tracking.---
116
114
  ---
117
115
  ## ⚙️ Installation
118
116
 
@@ -151,12 +149,9 @@ SLACK_CHANNEL_ID=C12345678
151
149
  OPENAI_API_KEY=sk-your-key
152
150
 
153
151
  ---
154
-
155
152
  **"Governance is not a constraint; it is the catalyst for enterprise AI adoption."**
156
-
157
153
  ---
158
-
159
154
  ### Author Stamp
160
- * **Framework:** GovAgent v0.2.2 (Stable)
155
+ * **Framework:** GovAgent v0.2.3 (Stable)
161
156
  * **Status:** Active / Open-Source Standard
162
157
  * **Compliance:** Designed for Enterprise-Grade Accountability
@@ -2,6 +2,41 @@
2
2
 
3
3
  All notable changes to the **GovAgent** framework are documented in this file. This project adheres to a "Governance-First" versioning strategy, prioritizing human oversight and fiscal accountability.
4
4
 
5
+ ## [0.3.0] - 2026-05-07
6
+ ### Major Release: Institutional Scaling & Terminal Integrity
7
+
8
+ ### 🏛️ Added: Invisible Governance Layer
9
+ - **Context-Aware Execution**: Implemented `contextvars` in `govagent.context` to track active `ExecutiveAgent` sessions across async threads, eliminating the need for global variables.
10
+ - **Unified Tool Decorator**: Introduced `@tool` in `govagent.registry` which automatically intercepts tool calls to perform governance evaluation via the active context.
11
+ - **Institutional Factory Pattern**: Added `ExecutiveAgent.bootstrap()` for one-line initialization of governed sessions, inclusive of policy loading and Slack adapter attachment.
12
+
13
+ ### ⚖️ Added: Judiciary & Compliance Enhancements
14
+ - **Synchronous HITL**: Enhanced `HITLManager` and `SlackJudiciaryAdapter` to provide blocking, real-time human oversight for high-risk tools.
15
+ - **Article 9/14 Compliance**: Standardized tool manifests to ensure no "Shadow IT" tools can execute without explicit YAML authorization.
16
+
17
+ ### 🛡️ Fixed: Loop & Terminal Stability
18
+ - **Terminal Transaction Logic**: Refactored `ExecutiveAgent.execute` loop to force a hard return after any `execute_financial_transaction`, preventing "Reasoning Loops" and duplicate approval requests.
19
+ - **Rejection Circuit Breaker**: Ensured that a **Human Judiciary Rejection** acts as a terminal event, instantly killing the agent loop and preventing Slack notification spam.
20
+ - **Indentation & Syntax Integrity**: Resolved logic errors in the reasoning loop that previously caused agents to ignore safety thresholds.
21
+
22
+ ### ⚙️ Changed: Generic Architectural Pivot
23
+ - **Industry-Agnostic Schema**: Renamed specific tools (e.g., `healthcare_payment_tool`) to generic counterparts like `execute_financial_transaction` to support horizontal scaling across Fintech, Supply Chain, and Audit sectors.
24
+ - **Forensic Telemetry**: Updated `TelemetryManager` to log every stage of the cascading triage (Fiscal -> Policy -> Judiciary).
25
+
26
+ ## [0.2.3] - 2026-05-06
27
+ ### Added
28
+ - **LangChain Integration Adapter**: Automated wrapper in `ExecutiveAgent` to standardize LangChain `ChatOpenAI` clients to the GovAgent contract.
29
+ - **Dynamic Intent Extraction**: Replaced hardcoded parameters with Regex-based extraction for `claim_id` and `amount` within the model adapter.
30
+ - **Self-Healing Telemetry**: Automatic creation of `/logs` directory and `audit_trail.jsonl` persistence.
31
+
32
+ ### Changed
33
+ - **Modular Evaluation Engine**: Refactored `evaluate()` to follow a cascading triage: Fiscal (Cheap) -> Policy (Automated) -> Judiciary (High-Risk/HITL).
34
+ - **HITL Interface**: Streamlined Slack context messages to provide "Executive Summaries" rather than raw LLM thought-logs.
35
+
36
+ ### Fixed
37
+ - Resolved `NoneType` and `AttributeError` issues during agent initialization.
38
+ - Fixed namespace exports in `govagent.hitl` for `SlackJudiciaryAdapter`.
39
+
5
40
  ## [0.2.2] - 2026-05-05
6
41
  ### Added
7
42
  - **LangChain Integration**: Standardized @langchain_tool bridging logic for GovAgent interception.
@@ -0,0 +1,67 @@
1
+ import asyncio
2
+ import os
3
+ from pathlib import Path
4
+ from dotenv import load_dotenv
5
+
6
+ # LangChain & OpenAI Imports
7
+ from langchain_openai import ChatOpenAI
8
+ from govagent import ExecutiveAgent, tool # Using our new v0.3.0 'tool' decorator
9
+
10
+ load_dotenv()
11
+ BASE_DIR = Path(__file__).parent
12
+
13
+ # v0.3.0: ZERO Boilerplate Tool. Governance is injected automatically.
14
+ @tool(name="execute_financial_transaction", guards=["fiscal", "judiciary"], risk_level="high")
15
+ async def execute_financial_transaction(amount: float, reference_id: str = "UNKNOWN") -> str:
16
+ """
17
+ Authorizes and executes a financial disbursement.
18
+ Used for claims, refunds, payroll, or vendor payments.
19
+ """
20
+ return f"SUCCESS: Transaction of ${amount} for Ref: {reference_id} processed."
21
+
22
+ async def run_scenario(persona: str, policy_file: str, task: str, delay: int):
23
+ """Worker function to simulate concurrent governed sessions."""
24
+ await asyncio.sleep(delay) # Stagger start times
25
+
26
+ print(f"🚀 [{persona}] Initializing Session...")
27
+
28
+ # v0.3.0: One-line Institutional Bootstrap
29
+ agent = ExecutiveAgent.bootstrap(
30
+ policy_path=BASE_DIR / f"../policies/{policy_file}",
31
+ llm=ChatOpenAI(model="gpt-4o", temperature=0),
32
+ slack_channel=os.getenv("SLACK_CHANNEL_ID")
33
+ )
34
+
35
+ print(f"🤖 [{persona}] Task: {task}")
36
+ try:
37
+ report = await agent.execute(task)
38
+ print(f"🏁 [{persona}] Status: {report.status} | Cost: ${report.estimated_cost_usd}")
39
+ except Exception as e:
40
+ print(f"🛑 [{persona}] Governance Halt: {e}")
41
+
42
+ async def main():
43
+ print("🏢 STARTING MULTI-AGENT GOVERNANCE STRESS TEST (v0.3.0)\n" + "="*55)
44
+
45
+ # We run two different directors with different policies concurrently
46
+ # Scenario A: Billing Director (High Limit)
47
+ # Scenario B: Junior Clerk (Low Limit - should trigger rejection or block)
48
+
49
+ tasks = [
50
+ run_scenario(
51
+ persona="Billing_Director",
52
+ policy_file="langchain_integration_sample_policy.yaml",
53
+ task="Process a reimbursement for claim #882 in the amount of $1200.",
54
+ delay=0
55
+ ),
56
+ run_scenario(
57
+ persona="Compliance_Auditor",
58
+ policy_file="auditor_policy.yaml", # Assume this policy has lower fiscal limits
59
+ task="Approve urgent payment for claim #995 for $5000.00.",
60
+ delay=1 # Starts slightly after to test async context isolation
61
+ )
62
+ ]
63
+
64
+ await asyncio.gather(*tasks)
65
+
66
+ if __name__ == "__main__":
67
+ asyncio.run(main())
@@ -0,0 +1,45 @@
1
+ trace_id='7b3c8407-676f-4f74-8e6b-9a2c39cb60c1' timestamp='2026-05-06T07:45:27.758241' agent_role='Analyst' task_input='What is the latest in AI?' estimated_cost_usd=0.49999999999999994 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-06T07:45:27.758241', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:45:27.758241', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:45:27.758241', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:45:27.758241', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:45:27.758241', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:45:27.758241', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:45:27.758241', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:45:27.758241', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:45:27.758241', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:45:27.759255', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}]
2
+ trace_id='14c0c88c-f8f2-4d57-8019-09876c247ae4' timestamp='2026-05-06T07:45:27.766176' agent_role='Auditor' task_input='Run expensive operation' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: FISCAL REJECT: Transaction value $500.0 exceeds per-action ceiling.' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
3
+ trace_id='14f30923-b9d2-4255-b2c6-753ea5890746' timestamp='2026-05-06T07:45:52.490668' agent_role='Healthcare Billing Director' task_input='I need to process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status="error: 'ChatOpenAI' object has no attribute 'generate_plan'" guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
4
+ trace_id='4284c985-a2e6-4f9b-9983-fc4538517cd5' timestamp='2026-05-06T07:49:22.990165' agent_role='Analyst' task_input='What is the latest in AI?' estimated_cost_usd=0.49999999999999994 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-06T07:49:22.990165', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:49:22.990165', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:49:22.990165', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:49:22.990165', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:49:22.990165', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:49:22.990165', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:49:22.990165', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:49:22.990165', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:49:22.990165', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T07:49:22.990165', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}]
5
+ trace_id='fd0cc8b9-102e-48f1-89fd-fac55c8dee53' timestamp='2026-05-06T07:49:22.998337' agent_role='Auditor' task_input='Run expensive operation' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: FISCAL REJECT: Transaction value $500.0 exceeds per-action ceiling.' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
6
+ trace_id='38fe8333-ea65-4704-8558-b935f2a74f95' timestamp='2026-05-06T07:49:41.465187' agent_role='Healthcare Billing Director' task_input='I need to process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: UNAUTHORIZED: healthcare_payment_tool is not present in the allowed manifest.' guards_evaluated=['fiscal'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
7
+ trace_id='c3ebcc1a-4995-492c-8927-3fa8c7abb05f' timestamp='2026-05-06T07:54:12.565053' agent_role='Healthcare Billing Director' task_input='I need to process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: UNAUTHORIZED: healthcare_payment_tool is not present in the allowed manifest.' guards_evaluated=['fiscal'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
8
+ trace_id='22fb48c2-616e-48b0-81a6-db67784f0f9f' timestamp='2026-05-06T07:55:57.647862' agent_role='Healthcare Billing Director' task_input='I need to process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.01052 tokens_used=0 latency_seconds=0.0 status='blocked: Human Judiciary denied the request for healthcare_payment_tool' guards_evaluated=['fiscal', 'policy', 'judiciary'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-06T07:56:41.582212', 'thought': "Processing a reimbursement for a healthcare claim involves several steps to ensure accuracy and compliance with relevant regulations. Here's a general process you can follow:\n\n1. **Verify Claim Details:**\n - Confirm the claim number (#882) and ensure it matches the patient and service details in your system.\n - Check that the claim amount ($1200) is correct and corresponds to the services provided.\n\n2. **Review Documentation:**\n - Ensure all necessary documentation is attached to the claim, including medical records, service codes, and any prior authorizations.\n - Verify that the services billed are covered under the patient's insurance plan.\n\n3. **Eligibility and Coverage Check:**\n - Confirm the patient's insurance eligibility and coverage for the date of service.\n - Check for any co-pays, deductibles, or co-insurance amounts that may affect the reimbursement.\n\n4. **Compliance and Coding Verification:**\n - Ensure that all billing codes (CPT, ICD-10, etc.) are accurate and compliant with current coding standards.\n - Verify that the claim adheres to payer-specific guidelines and regulations.\n\n5. **Reimbursement Calculation:**\n - Calculate the reimbursement amount based on the payer's fee schedule and any contractual agreements.\n - Adjust the claim amount if necessary, based on the payer's allowable amount.\n\n6. **Submit Claim:**\n - Submit the claim to the insurance payer electronically or via paper, depending on the payer's requirements.\n - Ensure that all required fields are completed accurately to avoid delays.\n\n7. **Track Claim Status:**\n - Monitor the claim status through your billing software or the payer's portal.\n - Follow up with the payer if there are any delays or issues with processing.\n\n8. **Receive and Post Payment:**\n - Once the reimbursement is received, post the payment to the patient's account.\n - Reconcile the payment with the original claim to ensure accuracy.\n\n9. **Address Denials or Discrepancies:**\n - If the claim is denied or reimbursed for a different amount, investigate the reason.\n - Correct any errors and resubmit the claim if necessary.\n\n10. **Communicate with Patient:**\n - Inform the patient of the claim status and any remaining balance they may owe.\n - Provide an explanation of benefits (EOB) if required.\n\nBy following these steps, you can ensure that the reimbursement process for claim #882 is handled efficiently and accurately.", 'action': 'healthcare_payment_tool', 'result': "Action healthcare_payment_tool executed with params {'amount': 1200.0}"}]
9
+ trace_id='7b47b91b-c50e-40a1-b39c-a6b667c5fa13' timestamp='2026-05-06T07:59:19.772765' agent_role='Strategic Analyst' task_input='Analyze upcoming 2026 AI market shifts.' estimated_cost_usd=0.049999999999999996 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-06T07:59:19.773303', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T07:59:19.773303', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T07:59:19.773303', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T07:59:19.773303', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T07:59:19.773303', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T07:59:19.773303', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T07:59:19.773303', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T07:59:19.773303', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T07:59:19.773303', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T07:59:19.773303', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}]
10
+ trace_id='288b322f-27ac-4d2a-be2e-1bfff331beea' timestamp='2026-05-06T08:03:17.726417' agent_role='Healthcare Billing Director' task_input='I need to process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status="error: 'NoneType' object has no attribute 'generate_plan'" guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
11
+ trace_id='031cc4c1-3106-4a37-a093-6e41bc1a4912' timestamp='2026-05-06T08:05:08.959178' agent_role='Healthcare Billing Director' task_input='I need to process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: Human Judiciary denied the request for healthcare_payment_tool' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
12
+ trace_id='c98d07d7-8eac-485a-b526-ed430ca940a8' timestamp='2026-05-06T08:08:28.892573' agent_role='Healthcare Billing Director' task_input='Process claim #7742 for $1,250.00 for the outpatient procedure.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: UNAUTHORIZED: healthcare_payment_tool is not present in the allowed manifest.' guards_evaluated=['fiscal'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
13
+ trace_id='58cc953e-cf7a-42f9-8da7-20baf270aac4' timestamp='2026-05-06T08:58:07.290411' agent_role='Analyst' task_input='What is the latest in AI?' estimated_cost_usd=0.49999999999999994 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-06T08:58:07.291558', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T08:58:07.291558', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T08:58:07.291558', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T08:58:07.291558', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T08:58:07.291558', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T08:58:07.291558', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T08:58:07.291558', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T08:58:07.291558', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T08:58:07.291558', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T08:58:07.291558', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}]
14
+ trace_id='ea5bf4cf-6f63-4d9e-9893-384700f016e7' timestamp='2026-05-06T08:58:07.305620' agent_role='Auditor' task_input='Run expensive operation' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: FISCAL REJECT: Transaction value $500.0 exceeds per-action ceiling.' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
15
+ trace_id='22b774bb-d045-4501-97d6-173768635305' timestamp='2026-05-06T09:00:12.088402' agent_role='Analyst' task_input='What is the latest in AI?' estimated_cost_usd=0.49999999999999994 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-06T09:00:12.088402', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T09:00:12.088402', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T09:00:12.088402', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T09:00:12.088402', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T09:00:12.088402', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T09:00:12.088402', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T09:00:12.088402', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T09:00:12.088402', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T09:00:12.088402', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}, {'timestamp': '2026-05-06T09:00:12.088402', 'thought': 'Searching...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'AI 2026'}"}]
16
+ trace_id='2606b8a0-a154-450b-81f4-97b7573f06e7' timestamp='2026-05-06T09:00:12.099285' agent_role='Auditor' task_input='Run expensive operation' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: FISCAL REJECT: Transaction value $500.0 exceeds per-action ceiling.' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
17
+ trace_id='1ae664a6-3ad7-454d-bac6-fcc8d1a7224b' timestamp='2026-05-06T09:00:36.695077' agent_role='Healthcare Billing Director' task_input='Process claim #7742 for $1,250.00 for the outpatient procedure.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: Human Judiciary denied the request for authorize_claim_payment' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
18
+ trace_id='bea79784-9778-40d4-8fdc-22273cc6a9a6' timestamp='2026-05-06T09:01:02.947129' agent_role='Strategic Analyst' task_input='Analyze upcoming 2026 AI market shifts.' estimated_cost_usd=0.049999999999999996 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-06T09:01:02.947129', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T09:01:02.947129', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T09:01:02.947129', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T09:01:02.947129', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T09:01:02.947129', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T09:01:02.947129', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T09:01:02.947129', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T09:01:02.947129', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T09:01:02.947129', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}, {'timestamp': '2026-05-06T09:01:02.947129', 'thought': 'Analysis of 2026 shifts requires verified market data.', 'action': 'web_search', 'result': "Action web_search executed with params {'query': '2026 AI market shifts', 'domain': 'verified-news.com'}"}]
19
+ trace_id='85bae984-1736-437e-bd94-c360a61d8ce7' timestamp='2026-05-06T09:01:18.799046' agent_role='Healthcare Billing Director' task_input='I need to process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: UNAUTHORIZED: authorize_claim_payment is not present in the allowed manifest.' guards_evaluated=['fiscal'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
20
+ trace_id='1f865f49-7f23-4840-af90-d4e4349eb7eb' timestamp='2026-05-06T09:02:28.007638' agent_role='Healthcare Billing Director' task_input='I need to process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: Human Judiciary denied the request for authorize_claim_payment' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
21
+ trace_id='6ebab489-8d3a-4640-aae1-bc78aa56d703' timestamp='2026-05-07T06:34:26.217876' agent_role='HealthcareFinanceDirector' task_input='Process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: UNAUTHORIZED: authorize_claim_payment is not present in the allowed manifest.' guards_evaluated=['fiscal'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
22
+ trace_id='672dbccd-58e2-439a-aa3b-8dabe2bb59f5' timestamp='2026-05-07T06:34:27.138393' agent_role='Compliance_Auditor' task_input='Approve urgent payment for claim #995 for $5000.00.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: UNAUTHORIZED: authorize_claim_payment is not present in the allowed manifest.' guards_evaluated=['fiscal'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
23
+ trace_id='8731fe2a-4f66-4e3f-9698-b781796d9dc0' timestamp='2026-05-07T06:37:17.457581' agent_role='HealthcareFinanceDirector' task_input='Process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: UNAUTHORIZED: authorize_claim_payment is not present in the allowed manifest.' guards_evaluated=['fiscal'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
24
+ trace_id='4d656671-1127-4f3a-96f3-dea8c54a2af3' timestamp='2026-05-07T06:37:18.361186' agent_role='Compliance_Auditor' task_input='Approve urgent payment for claim #995 for $5000.00.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: UNAUTHORIZED: authorize_claim_payment is not present in the allowed manifest.' guards_evaluated=['fiscal'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
25
+ trace_id='6f75c98b-48ed-4edb-8591-4f45b68da706' timestamp='2026-05-07T06:37:49.477479' agent_role='HealthcareFinanceDirector' task_input='Process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: Human Judiciary denied the request for execute_financial_transaction' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
26
+ trace_id='9dc97b3d-fd69-4662-948f-1c1c6a6300e3' timestamp='2026-05-07T06:37:50.605646' agent_role='Compliance_Auditor' task_input='Approve urgent payment for claim #995 for $5000.00.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: Human Judiciary denied the request for execute_financial_transaction' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
27
+ trace_id='5ee1a5db-348f-417f-92c5-a6fa722cfb01' timestamp='2026-05-07T06:38:30.566630' agent_role='Tester' task_input='Test context enrollment' estimated_cost_usd=0.09999999999999999 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-07T06:38:30.566630', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T06:38:30.566630', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T06:38:30.566630', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T06:38:30.566630', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T06:38:30.566630', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T06:38:30.566630', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T06:38:30.566630', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T06:38:30.566630', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T06:38:30.566630', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T06:38:30.566630', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}]
28
+ trace_id='31df4fce-029f-4b40-aa66-7d164fb7a845' timestamp='2026-05-07T06:38:30.573870' agent_role='Auditor' task_input='Run expensive operation' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: FISCAL REJECT: Transaction value $500.0 exceeds per-action ceiling.' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
29
+ trace_id='6eed260b-ebbd-481a-8e01-3656eaf927be' timestamp='2026-05-07T07:08:53.925441' agent_role='Tester' task_input='Test context enrollment' estimated_cost_usd=0.09999999999999999 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-07T07:08:53.925441', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:08:53.925441', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:08:53.925441', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:08:53.925441', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:08:53.925441', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:08:53.925441', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:08:53.925441', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:08:53.925441', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:08:53.925441', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:08:53.925441', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}]
30
+ trace_id='48eae048-81e1-4992-adc3-eca8f3ebb18c' timestamp='2026-05-07T07:08:53.930448' agent_role='Auditor' task_input='Run expensive operation' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: FISCAL REJECT: Transaction value $500.0 exceeds per-action ceiling.' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
31
+ trace_id='6747c2f7-6c1d-46e3-a2af-99acaea68666' timestamp='2026-05-07T07:13:21.410083' agent_role='Compliance_Auditor' task_input='Approve urgent payment for claim #995 for $5000.00.' estimated_cost_usd=0.012920000000000001 tokens_used=0 latency_seconds=0.0 status='blocked: Human Judiciary denied the request for execute_financial_transaction' guards_evaluated=['fiscal', 'policy', 'judiciary'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-07T07:13:33.742102', 'thought': 'To analyze the task of approving an urgent payment for claim #995 for $5000.00, I need to ensure that the payment request complies with the necessary financial and regulatory standards. Here are the steps I would typically follow:...', 'action': 'execute_financial_transaction', 'result': "Action execute_financial_transaction executed with params {'claim_id': '995', 'amount': 5000.0}"}, {'timestamp': '2026-05-07T07:13:40.722024', 'thought': 'To analyze the task of approving an urgent payment for claim #995 for $5000.00, I would need to ensure that the payment complies with relevant policies and procedures. This typically involves verifying the legitimacy of the claim, ensuring that all n...', 'action': 'execute_financial_transaction', 'result': "Action execute_financial_transaction executed with params {'claim_id': '995', 'amount': 5000.0}"}, {'timestamp': '2026-05-07T07:13:51.371860', 'thought': 'To analyze the task of approving an urgent payment for claim #995 for $5000.00, I would need to ensure that the payment request complies with the relevant policies and procedures. This typically involves verifying the legitimacy of the claim, ensurin...', 'action': 'execute_financial_transaction', 'result': "Action execute_financial_transaction executed with params {'claim_id': '995', 'amount': 5000.0}"}]
32
+ trace_id='1e1aa1d4-6ed7-4e3f-b8df-e4516dd0792a' timestamp='2026-05-07T07:13:20.614961' agent_role='HealthcareFinanceDirector' task_input='Process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.0028399999999999996 tokens_used=0 latency_seconds=0.0 status='blocked: Human Judiciary denied the request for execute_financial_transaction' guards_evaluated=['fiscal', 'policy', 'judiciary'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-07T07:14:45.625339', 'thought': 'To process the reimbursement for claim #882 in the amount of $1200, I will first verify the details of the claim to ensure it is valid and approved for payment. Assuming the claim has been reviewed and approved, the next step is to execute the financ...', 'action': 'execute_financial_transaction', 'result': "Action execute_financial_transaction executed with params {'claim_id': '882', 'amount': 1200.0}"}]
33
+ trace_id='2a1f5362-6577-4a98-905f-29fcabd097ba' timestamp='2026-05-07T07:21:31.102788' agent_role='Tester' task_input='Test context enrollment' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='timeout: max steps reached' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-07T07:21:31.102788', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:21:31.102788', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:21:31.102788', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:21:31.102788', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:21:31.102788', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:21:31.102788', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:21:31.102788', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:21:31.102788', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:21:31.102788', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}, {'timestamp': '2026-05-07T07:21:31.102788', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}]
34
+ trace_id='4f7bbb9f-5913-43bd-8bca-658fe5d0e474' timestamp='2026-05-07T07:21:31.330870' agent_role='Auditor' task_input='Run expensive operation' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: FISCAL REJECT: Transaction value $500.0 exceeds per-action ceiling.' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
35
+ trace_id='80f742c5-642c-43de-b672-4f4ce7d688ff' timestamp='2026-05-07T07:43:20.739610' agent_role='Tester' task_input='Test context enrollment' estimated_cost_usd=0.01 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-07T07:43:20.739610', 'thought': 'Thinking...', 'action': 'web_search', 'result': "Action web_search executed with params {'query': 'test'}"}]
36
+ trace_id='7e04b0bf-46c5-4e98-bccf-9f349bfaea84' timestamp='2026-05-07T07:43:20.754526' agent_role='Auditor' task_input='Run expensive operation' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: FISCAL REJECT: Transaction value $500.0 exceeds per-action ceiling.' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
37
+ trace_id='3dbdb559-cde2-4a20-b9d0-1acf8b9443ff' timestamp='2026-05-07T07:43:33.806290' agent_role='HealthcareFinanceDirector' task_input='Process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
38
+ trace_id='a8e89e6c-ac7e-40b2-a4ef-dc097806f550' timestamp='2026-05-07T07:43:34.560169' agent_role='Compliance_Auditor' task_input='Approve urgent payment for claim #995 for $5000.00.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
39
+ trace_id='4d969ce9-ac9c-4a8a-8bca-ea2a45152a72' timestamp='2026-05-07T07:50:21.005095' agent_role='Compliance_Auditor' task_input='Approve urgent payment for claim #995 for $5000.00.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
40
+ trace_id='08f26c2d-5696-464b-b5b6-2d25daa69d59' timestamp='2026-05-07T08:03:38.216205' agent_role='Compliance_Auditor' task_input='Approve urgent payment for claim #995 for $5000.00.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
41
+ trace_id='ef2f2f25-6a4e-4cb8-9485-e0415f58610e' timestamp='2026-05-07T08:03:37.406345' agent_role='HealthcareFinanceDirector' task_input='Process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='blocked: Human Judiciary denied the request for execute_financial_transaction' guards_evaluated=['fiscal', 'policy'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
42
+ trace_id='03ad4d47-3e9e-4883-98de-a23de4656112' timestamp='2026-05-07T08:04:04.668806' agent_role='Compliance_Auditor' task_input='Approve urgent payment for claim #995 for $5000.00.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
43
+ trace_id='32efb6ef-35dc-4561-bb87-2fc25c9ef8fd' timestamp='2026-05-07T08:04:03.880795' agent_role='HealthcareFinanceDirector' task_input='Process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.00194 tokens_used=0 latency_seconds=0.0 status='success: transaction finalized' guards_evaluated=['fiscal', 'policy', 'judiciary'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-07T08:04:08.619051', 'thought': 'ACTION: execute_financial_transaction \nID: 882 \nAMOUNT: $1200...', 'action': 'execute_financial_transaction', 'result': "Action execute_financial_transaction executed with params {'reference_id': '882', 'amount': 1200.0}"}]
44
+ trace_id='51e51cde-6ac6-4265-9e4d-ab207ff69375' timestamp='2026-05-07T08:05:02.794884' agent_role='Compliance_Auditor' task_input='Approve urgent payment for claim #995 for $5000.00.' estimated_cost_usd=0.0 tokens_used=0 latency_seconds=0.0 status='success' guards_evaluated=[] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[]
45
+ trace_id='09cd19c8-2569-4dd2-b511-db2976b895a9' timestamp='2026-05-07T08:05:02.028550' agent_role='HealthcareFinanceDirector' task_input='Process a reimbursement for claim #882 in the amount of $1200.' estimated_cost_usd=0.00194 tokens_used=0 latency_seconds=0.0 status='success: transaction finalized' guards_evaluated=['fiscal', 'policy', 'judiciary'] governance_status='compliant' human_minutes_saved=0.0 reasoning_steps=[{'timestamp': '2026-05-07T08:05:08.994857', 'thought': 'ACTION: execute_financial_transaction \nID: 882 \nAMOUNT: $1200...', 'action': 'execute_financial_transaction', 'result': "Action execute_financial_transaction executed with params {'reference_id': '882', 'amount': 1200.0}"}]