picoclaw/pkg/agent
lxowalle 2992eccbf0
feat: add request-scoped context policies (#2914)
* feat: add request-scoped context policies

Add named turn profiles under agents.defaults so callers can opt into
per-request context and tool policies without changing default chat behavior.

Profiles can disable history, system context, skill prompts, or tools, and can
limit skills/tools with allow lists. Wire profile selection through Pico message
payloads, agent turn execution, Web chat selection, and Web visual config.

Reject invalid turn profiles before saving config through Web APIs and document
the new request context policy behavior.

* fix: address turn profile review blockers

* feat: simplify request context policy config

* fix: suppress tool prompt when turn tools are disabled

* fix: enforce turn profile tool restrictions
2026-05-22 10:06:40 +08:00
..
adapters feat: support streaming (#2892) 2026-05-19 16:38:47 +08:00
interfaces feat: support streaming (#2892) 2026-05-19 16:38:47 +08:00
agent.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
agent_command.go fix(agent): honor explicit thinking off (#2898) 2026-05-21 11:07:39 +08:00
agent_event.go feat: agent self evolution (#2847) 2026-05-11 16:13:27 +08:00
agent_init.go feat: agent self evolution (#2847) 2026-05-11 16:13:27 +08:00
agent_inject.go refactor(agent): Agent Looper refactor phase2, restructure pipeline and rename loop files to agent (#2585) 2026-04-21 10:55:50 +08:00
agent_mcp.go fix(agent): suppress MCP discovery when no servers are selectable 2026-05-08 13:48:47 +02:00
agent_mcp_test.go fix(agent): suppress MCP discovery when no servers are selectable 2026-05-08 13:48:47 +02:00
agent_media.go fix(feishu): fix image download with API fallback and post image support (#2708) 2026-04-30 11:08:00 +08:00
agent_message.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
agent_options.go feat(events): add runtime event bus 2026-04-26 15:36:03 +08:00
agent_outbound.go feat(chat,seahorse): persist and display model_name across history (#2897) 2026-05-20 13:42:21 +08:00
agent_steering.go fix(agent): drain scoped follow-up queue when pending stop skips turn startup 2026-05-05 19:24:15 +02:00
agent_stop.go fix(agent): don't arm pending stop when /stop targets idle session 2026-05-04 13:10:02 +02:00
agent_test.go fix(agent): honor explicit thinking off (#2898) 2026-05-21 11:07:39 +08:00
agent_transcribe.go refactor(agent): Agent Looper refactor phase2, restructure pipeline and rename loop files to agent (#2585) 2026-04-21 10:55:50 +08:00
agent_utils.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
agent_utils_test.go fix(agent): send SVG attachments as files 2026-05-05 19:36:09 +08:00
context.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
context_budget.go feat(seahorse): implement short-term memory engine (LCM) (#2285) 2026-04-05 09:05:16 +08:00
context_budget_test.go feat(seahorse): implement short-term memory engine (LCM) (#2285) 2026-04-05 09:05:16 +08:00
context_cache_test.go feat(web): support image messages in pico chat (#2299) 2026-04-03 14:15:20 +08:00
context_legacy.go refactor(events): emit agent runtime events directly 2026-04-26 16:55:02 +08:00
context_manager.go feat(agent): /clear now clears seahorse DB in addition to JSONL 2026-04-13 11:04:45 +08:00
context_manager_test.go test(events): migrate agent tests to runtime events 2026-04-26 16:23:58 +08:00
context_seahorse.go feat(chat,seahorse): persist and display model_name across history (#2897) 2026-05-20 13:42:21 +08:00
context_seahorse_test.go feat(chat,seahorse): persist and display model_name across history (#2897) 2026-05-20 13:42:21 +08:00
context_seahorse_unsupported.go fix(agent): disable seahorse context manager on freebsd/arm (#2417) 2026-04-08 10:57:22 +08:00
context_test.go fix(agent): preserve reused tool call IDs across turns (#2528) 2026-04-15 20:18:09 +08:00
context_usage.go feat(agent): add context usage ring indicator and /context command (#2537) 2026-04-21 16:30:02 +08:00
definition.go fix(agent): fail closed on invalid AGENT frontmatter 2026-03-29 23:41:32 +02:00
definition_test.go chore: revert unrelated golines formatting 2026-03-29 14:06:19 +02:00
discovery.go fix(agent): hide discovery when spawn is unavailable 2026-05-08 22:23:50 +02:00
discovery_test.go fix(agent): hide discovery when spawn is unavailable 2026-05-08 22:23:50 +02:00
dispatch_request.go fix(session): address review regressions 2026-04-13 22:51:44 +08:00
dispatch_request_test.go fix(session): address review regressions 2026-04-13 22:51:44 +08:00
event_payloads.go feat: agent self evolution (#2847) 2026-05-11 16:13:27 +08:00
eventbus_test.go refactor(events): emit agent runtime events directly 2026-04-26 16:55:02 +08:00
events.go feat: agent self evolution (#2847) 2026-05-11 16:13:27 +08:00
events_runtime.go fix(events): keep runtime observers non-blocking 2026-04-27 13:09:03 +08:00
evolution_bridge.go feat: agent self evolution (#2847) 2026-05-11 16:13:27 +08:00
evolution_bridge_test.go feat: agent self evolution (#2847) 2026-05-11 16:13:27 +08:00
hook_mount.go fix(events): keep runtime observers non-blocking 2026-04-27 13:09:03 +08:00
hook_mount_test.go fix(events): keep runtime observers non-blocking 2026-04-27 13:09:03 +08:00
hook_process.go refactor(events): remove legacy agent event bus 2026-04-26 16:39:35 +08:00
hook_process_test.go test(events): prefer runtime hook observation 2026-04-26 16:28:41 +08:00
hooks.go refactor(events): emit agent runtime events directly 2026-04-26 16:55:02 +08:00
hooks_test.go refactor(events): remove legacy agent event bus 2026-04-26 16:39:35 +08:00
instance.go fix(agent): honor explicit thinking off (#2898) 2026-05-21 11:07:39 +08:00
instance_test.go fix(agent): treat empty AGENT.md tools as allow none 2026-05-09 10:35:13 +02:00
legacy_events.go feat: agent self evolution (#2847) 2026-05-11 16:13:27 +08:00
legacy_events_test.go feat: agent self evolution (#2847) 2026-05-11 16:13:27 +08:00
llm_media.go feat: add DeepSeek vision unsupported error detection 2026-04-30 02:24:29 +08:00
memory.go refactor(modernize): apply safe modernize fixes 2026-02-27 16:35:07 +08:00
mock_provider_test.go feat(fmt): Fix formatting 2026-02-19 22:05:15 +02:00
model_resolution.go feat(chat,seahorse): persist and display model_name across history (#2897) 2026-05-20 13:42:21 +08:00
model_resolution_test.go feat(chat,seahorse): persist and display model_name across history (#2897) 2026-05-20 13:42:21 +08:00
pipeline.go refactor(agent): Agent Looper refactor phase2, restructure pipeline and rename loop files to agent (#2585) 2026-04-21 10:55:50 +08:00
pipeline_execute.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
pipeline_execute_test.go feat: agent self evolution (#2847) 2026-05-11 16:13:27 +08:00
pipeline_finalize.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
pipeline_llm.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
pipeline_setup.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
pipeline_streaming.go fix(agent): honor explicit thinking off (#2898) 2026-05-21 11:07:39 +08:00
pipeline_streaming_test.go fix(agent): honor explicit thinking off (#2898) 2026-05-21 11:07:39 +08:00
prompt.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
prompt_contributors.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
prompt_test.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
prompt_turn.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
registry.go fix(agent): hide discovery when spawn is unavailable 2026-05-08 22:23:50 +02:00
registry_test.go refactor(agent): source discovery identity from AGENT.md frontmatter 2026-03-29 22:43:20 +02:00
runtime_event_logger.go fix runtime event logger reload and shutdown 2026-04-26 19:28:26 +08:00
runtime_event_logger_test.go fix(events): keep runtime observers non-blocking 2026-04-27 13:09:03 +08:00
runtime_event_test.go test(events): migrate agent tests to runtime events 2026-04-26 16:23:58 +08:00
steering.go feat(agent): stop command 2026-05-04 08:41:17 +02:00
steering_test.go fix(agent): transcribe queued voice follow-ups 2026-05-08 13:50:14 -07:00
subturn.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
subturn_test.go Merge pull request #2531 from is-Xiaoen/feat/delegate-tool 2026-05-07 11:25:41 +08:00
thinking.go fix(agent): honor explicit thinking off (#2898) 2026-05-21 11:07:39 +08:00
thinking_test.go feat: add extended thinking support for Anthropic models (#1076) 2026-03-05 09:51:18 +08:00
tool_allowlist.go fix(agent): treat empty AGENT.md tools as allow none 2026-05-09 10:35:13 +02:00
tool_allowlist_test.go fix(agent): treat empty AGENT.md tools as allow none 2026-05-09 10:35:13 +02:00
turn_context.go refactor(events): emit agent runtime events directly 2026-04-26 16:55:02 +08:00
turn_coord.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
turn_coord_test.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
turn_profile_policy.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
turn_profile_test.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00
turn_state.go feat: add request-scoped context policies (#2914) 2026-05-22 10:06:40 +08:00