vision: real-time perception — auto frame attach every N turns (--look-every) and on collision, frame context cap (6), digest fallback for text models

This commit is contained in:
opencode
2026-08-08 20:06:22 +03:00
parent d8373a50fc
commit 1d7dbb7b79
5 changed files with 449 additions and 18 deletions
+9
View File
@@ -141,6 +141,7 @@ async def run_llm_agent(
recorder: FrameRecorder | None = None,
vision: bool | None = None,
digest: bool | None = None,
look_every: int = 0,
) -> dict[str, Any]:
"""Autonomous LLM run: controller + nudge/correct loop (see llm_agent)."""
from testbed.llm_agent import LLMController, run_llm_agent_loop
@@ -313,6 +314,7 @@ async def run_demo(args: argparse.Namespace) -> dict[str, Any]:
recorder=recorder,
vision=args.vision,
digest=args.digest,
look_every=args.look_every,
)
elif args.agent == "scripted":
summary = await run_scripted_agent(
@@ -335,6 +337,7 @@ async def run_demo(args: argparse.Namespace) -> dict[str, Any]:
recorder=recorder,
vision=args.vision,
digest=args.digest,
look_every=args.look_every,
)
if summary.get("interacted"):
return summary
@@ -408,6 +411,12 @@ def main() -> int:
default=None,
help="always include the color-grid digest alongside images (off by default for multimodal models)",
)
parser.add_argument(
"--look-every",
type=int,
default=3,
help="attach a fresh camera frame every N agent steps (0 disables; default 3)",
)
parser.add_argument(
"--frame",
default="demo_final_frame.png",