You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When agents use code-execution tools (like the code sandbox at https://github.com/fips-agents/code-sandbox), there's a security gap: secrets available to the main agent process (OPENAI_API_KEY, database credentials, etc.) must NOT be accessible inside the code execution container. Currently, there's no explicit guidance or enforcement around this structural separation.
The insight: separating harness and compute helps keep credentials out of environments where model-generated code executes.
Current State
The project has SecurityConfig with ToolInspector that scans tool call arguments for dangerous patterns
The two tool planes architecture (plane 1: agent-code, plane 2: LLM-callable) is documented
The code sandbox section in docs/architecture.md covers AST guardrails and runtime isolation
Missing: explicit guidance on credential isolation and deployment patterns that enforce it
Proposed Solution
This enhancement should cover four areas:
1. Documentation in architecture.md
Add a "Credential Isolation" subsection under the Code Execution Sandbox section that explains:
Principle: Secrets flow as explicit arguments from agent to tool, never as ambient environment
The agent sends code + explicit args to the sandbox; the sandbox never has direct access to the agent's credentials
This is a structural separation: credential space vs. code execution space
Why this matters: LLM-generated code should not have any path to exfiltrate secrets
2. Lightweight Enforcement Mechanism
Add a sandboxed: true flag to the @tool decorator:
Problem
When agents use code-execution tools (like the code sandbox at https://github.com/fips-agents/code-sandbox), there's a security gap: secrets available to the main agent process (OPENAI_API_KEY, database credentials, etc.) must NOT be accessible inside the code execution container. Currently, there's no explicit guidance or enforcement around this structural separation.
The insight: separating harness and compute helps keep credentials out of environments where model-generated code executes.
Current State
SecurityConfigwithToolInspectorthat scans tool call arguments for dangerous patternsdocs/architecture.mdcovers AST guardrails and runtime isolationProposed Solution
This enhancement should cover four areas:
1. Documentation in architecture.md
Add a "Credential Isolation" subsection under the Code Execution Sandbox section that explains:
2. Lightweight Enforcement Mechanism
Add a
sandboxed: trueflag to the@tooldecorator:When
sandboxed=True:3. OpenShift Deployment Guidance
Add deployment guidance to the Helm chart or deployment documentation:
4. Integration with Existing Security Infrastructure
Wire this into the existing
SecurityConfig:tool_inspection.mode: observe→ log warnings when sandboxed tools have ambient secretstool_inspection.mode: enforce→ fail at startup when sandboxed tools have ambient secretsfipsagents.security.audit(same pattern as ToolInspector)References
Non-Goals
Acceptance Criteria
@tooldecorator acceptssandboxed: boolparameter