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
Hi AgentTeams team — we are CyberGuard (github.com/elsechord/CyberGuard), a finalist project in the GOAI 2026 Agent Infra track building an autonomous security-operations team on top of AgentTeams v1.2.2. Two local-hardening findings from our deployment; for the second one we already carry a one-line patch and would be glad to upstream it as a PR.
Environment
AgentTeams v1.2.2 (pinned release, commit 849182af), Docker Desktop, Windows
QwenPaw Workers; investigation MCP servers registered through Higress
1. Driver policy passes readback + native evaluator checks, but cross-session calls still get driver_policy_denied
Steps to reproduce (condensed)
Configure the Driver policy for two investigation MCP drivers through the native management API: default deny, allow exactly three named investigation tools for Matrix sources.
Read the policy back after the write and evaluate the intended allow/deny cases with the installed native policy evaluator — all cases pass deterministically at configuration time.
Start a new Worker session and have the model call one of the allowed tools from its task room.
Actual
Cross-session tool calls still fail with driver_policy_denied, even though the same policy evaluates as allow in the deterministic check. For us, policy propagation/evaluation context across sessions remains an unresolved issue.
A related observation: a policy rule scoped to Matrix sources never matched in practice; we suspect the request-context channel/source fields are missing at evaluation time on some paths. We only got predictable behavior with exact-tool rules that do not depend on request-context channel fields.
Expected
A policy that reads back correctly and passes the native evaluator's allow/deny checks should be enforced identically in live sessions — or the docs/API should reveal which session/context attributes participate in evaluation so mismatches become debuggable.
Questions / suggestions
Is Driver policy evaluation scoped per session, per driver instance, or global? Which context (channel, source, room) is available at evaluation time?
Would you consider a "policy test" API that evaluates a policy against a live session context, so configuration-time checks match runtime behavior?
2. Worker console ports publish on 0.0.0.0; localhost binding requires a controller patch
Symptom
On v1.2.2, Worker environment creation unconditionally sets AGENTTEAMS_CONSOLE_PORT=8088, and the Docker backend publishes the random host port without HostIp (the PortBindings in internal/backend/docker.go, around line 717). CoPaw and QwenPaw worker consoles both ended up published on 0.0.0.0/IPv6 on our Docker Desktop engine. Setting the task bridge network's default bind address to localhost did not change this, because this port is requested explicitly by the API without a host IP.
Workaround we carry today
A one-line patch (plus a regression test) that rebuilds only the controller binary into the official embedded image — it changes only this automatic console binding and does not touch other explicit port mappings:
For transparency: our deployment is therefore a pinned-source build with this patch, not an unmodified release.
Suggestion + offer
Make the console bind host configurable at the controller level — we would suggest defaulting to 127.0.0.1 and opting into 0.0.0.0, since a per-worker admin console on all interfaces is a surprising default (or honor an existing knob if there is one we missed). We are happy to open the PR ourselves — the change is small and we already have the regression test; just tell us your preferred configuration surface (env var / controller flag / Worker spec field) and we will follow your contributor flow.
Thanks for building AgentTeams — we are glad to share more logs or test pre-release builds.
Hi AgentTeams team — we are CyberGuard (github.com/elsechord/CyberGuard), a finalist project in the GOAI 2026 Agent Infra track building an autonomous security-operations team on top of AgentTeams v1.2.2. Two local-hardening findings from our deployment; for the second one we already carry a one-line patch and would be glad to upstream it as a PR.
Environment
AgentTeams v1.2.2 (pinned release, commit 849182af), Docker Desktop, Windows
QwenPaw Workers; investigation MCP servers registered through Higress
1. Driver policy passes readback + native evaluator checks, but cross-session calls still get driver_policy_denied
Steps to reproduce (condensed)
Configure the Driver policy for two investigation MCP drivers through the native management API: default deny, allow exactly three named investigation tools for Matrix sources.
Read the policy back after the write and evaluate the intended allow/deny cases with the installed native policy evaluator — all cases pass deterministically at configuration time.
Start a new Worker session and have the model call one of the allowed tools from its task room.
Actual
Cross-session tool calls still fail with driver_policy_denied, even though the same policy evaluates as allow in the deterministic check. For us, policy propagation/evaluation context across sessions remains an unresolved issue.
A related observation: a policy rule scoped to Matrix sources never matched in practice; we suspect the request-context channel/source fields are missing at evaluation time on some paths. We only got predictable behavior with exact-tool rules that do not depend on request-context channel fields.
Expected
A policy that reads back correctly and passes the native evaluator's allow/deny checks should be enforced identically in live sessions — or the docs/API should reveal which session/context attributes participate in evaluation so mismatches become debuggable.
Questions / suggestions
Is Driver policy evaluation scoped per session, per driver instance, or global? Which context (channel, source, room) is available at evaluation time?
Would you consider a "policy test" API that evaluates a policy against a live session context, so configuration-time checks match runtime behavior?
2. Worker console ports publish on 0.0.0.0; localhost binding requires a controller patch
Symptom
On v1.2.2, Worker environment creation unconditionally sets AGENTTEAMS_CONSOLE_PORT=8088, and the Docker backend publishes the random host port without HostIp (the PortBindings in internal/backend/docker.go, around line 717). CoPaw and QwenPaw worker consoles both ended up published on 0.0.0.0/IPv6 on our Docker Desktop engine. Setting the task bridge network's default bind address to localhost did not change this, because this port is requested explicitly by the API without a host IP.
Workaround we carry today
A one-line patch (plus a regression test) that rebuilds only the controller binary into the official embedded image — it changes only this automatic console binding and does not touch other explicit port mappings:
For transparency: our deployment is therefore a pinned-source build with this patch, not an unmodified release.
Suggestion + offer
Make the console bind host configurable at the controller level — we would suggest defaulting to 127.0.0.1 and opting into 0.0.0.0, since a per-worker admin console on all interfaces is a surprising default (or honor an existing knob if there is one we missed). We are happy to open the PR ourselves — the change is small and we already have the regression test; just tell us your preferred configuration surface (env var / controller flag / Worker spec field) and we will follow your contributor flow.
Thanks for building AgentTeams — we are glad to share more logs or test pre-release builds.
Hi AgentTeams team — we are CyberGuard (github.com/elsechord/CyberGuard), a finalist project in the GOAI 2026 Agent Infra track building an autonomous security-operations team on top of AgentTeams v1.2.2. Two local-hardening findings from our deployment; for the second one we already carry a one-line patch and would be glad to upstream it as a PR.
Environment
849182af), Docker Desktop, Windows1. Driver policy passes readback + native evaluator checks, but cross-session calls still get
driver_policy_deniedSteps to reproduce (condensed)
deny, allow exactly three named investigation tools for Matrix sources.Actual
Cross-session tool calls still fail with
driver_policy_denied, even though the same policy evaluates asallowin the deterministic check. For us, policy propagation/evaluation context across sessions remains an unresolved issue.A related observation: a policy rule scoped to Matrix sources never matched in practice; we suspect the request-context channel/source fields are missing at evaluation time on some paths. We only got predictable behavior with exact-tool rules that do not depend on request-context channel fields.
Expected
A policy that reads back correctly and passes the native evaluator's allow/deny checks should be enforced identically in live sessions — or the docs/API should reveal which session/context attributes participate in evaluation so mismatches become debuggable.
Questions / suggestions
reload_driverre-saves a stale card, clobbering a concurrent policy write #1283 (lost update inDriverManager.reload_driverreverting concurrent policy writes) — a different failure mode in the same subsystem; linking it here in case it interacts with the cross-session propagation we observed.2. Worker console ports publish on
0.0.0.0; localhost binding requires a controller patchSymptom
On v1.2.2, Worker environment creation unconditionally sets
AGENTTEAMS_CONSOLE_PORT=8088, and the Docker backend publishes the random host port withoutHostIp(thePortBindingsininternal/backend/docker.go, around line 717). CoPaw and QwenPaw worker consoles both ended up published on0.0.0.0/IPv6 on our Docker Desktop engine. Setting the task bridge network's default bind address to localhost did not change this, because this port is requested explicitly by the API without a host IP.Workaround we carry today
A one-line patch (plus a regression test) that rebuilds only the controller binary into the official embedded image — it changes only this automatic console binding and does not touch other explicit port mappings:
For transparency: our deployment is therefore a pinned-source build with this patch, not an unmodified release.
Suggestion + offer
Make the console bind host configurable at the controller level — we would suggest defaulting to
127.0.0.1and opting into0.0.0.0, since a per-worker admin console on all interfaces is a surprising default (or honor an existing knob if there is one we missed). We are happy to open the PR ourselves — the change is small and we already have the regression test; just tell us your preferred configuration surface (env var / controller flag / Worker spec field) and we will follow your contributor flow.Thanks for building AgentTeams — we are glad to share more logs or test pre-release builds.
Hi AgentTeams team — we are CyberGuard (github.com/elsechord/CyberGuard), a finalist project in the GOAI 2026 Agent Infra track building an autonomous security-operations team on top of AgentTeams v1.2.2. Two local-hardening findings from our deployment; for the second one we already carry a one-line patch and would be glad to upstream it as a PR.
Environment
849182af), Docker Desktop, Windows1. Driver policy passes readback + native evaluator checks, but cross-session calls still get
driver_policy_deniedSteps to reproduce (condensed)
deny, allow exactly three named investigation tools for Matrix sources.Actual
Cross-session tool calls still fail with
driver_policy_denied, even though the same policy evaluates asallowin the deterministic check. For us, policy propagation/evaluation context across sessions remains an unresolved issue.A related observation: a policy rule scoped to Matrix sources never matched in practice; we suspect the request-context channel/source fields are missing at evaluation time on some paths. We only got predictable behavior with exact-tool rules that do not depend on request-context channel fields.
Expected
A policy that reads back correctly and passes the native evaluator's allow/deny checks should be enforced identically in live sessions — or the docs/API should reveal which session/context attributes participate in evaluation so mismatches become debuggable.
Questions / suggestions
reload_driverre-saves a stale card, clobbering a concurrent policy write #1283 (lost update inDriverManager.reload_driverreverting concurrent policy writes) — a different failure mode in the same subsystem; linking it here in case it interacts with the cross-session propagation we observed.2. Worker console ports publish on
0.0.0.0; localhost binding requires a controller patchSymptom
On v1.2.2, Worker environment creation unconditionally sets
AGENTTEAMS_CONSOLE_PORT=8088, and the Docker backend publishes the random host port withoutHostIp(thePortBindingsininternal/backend/docker.go, around line 717). CoPaw and QwenPaw worker consoles both ended up published on0.0.0.0/IPv6 on our Docker Desktop engine. Setting the task bridge network's default bind address to localhost did not change this, because this port is requested explicitly by the API without a host IP.Workaround we carry today
A one-line patch (plus a regression test) that rebuilds only the controller binary into the official embedded image — it changes only this automatic console binding and does not touch other explicit port mappings:
For transparency: our deployment is therefore a pinned-source build with this patch, not an unmodified release.
Suggestion + offer
Make the console bind host configurable at the controller level — we would suggest defaulting to
127.0.0.1and opting into0.0.0.0, since a per-worker admin console on all interfaces is a surprising default (or honor an existing knob if there is one we missed). We are happy to open the PR ourselves — the change is small and we already have the regression test; just tell us your preferred configuration surface (env var / controller flag / Worker spec field) and we will follow your contributor flow.Thanks for building AgentTeams — we are glad to share more logs or test pre-release builds.