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:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user