PicoBot/resources/templates/config.example.json
xiaoxixi ac201a3949 feat: durable agent orchestration with run persistence, inbox continuation, and signal/steer
- AgentCatalog/definitions with strict Markdown frontmatter, delegation graph,
  fail-closed tool scoping, and signal contracts
- structured cancellation (AgentError::Cancelled/TimedOut) across provider
  streams, tool batches, and sleep; /stop drives the same terminal state
- schema v6 run/group/inbox persistence with execution-ID conditional
  transitions and completion-slot reservations
- ExecutionGate separating run quota from provider/tool step permits
- background completion inbox with hidden-trigger continuation turns,
  fairness scheduling, lease release, dead-lettering, and activation recovery
- typed TurnMailbox with two-phase steer admission and atomic consumption at
  turn commit; /stop releases admitted steer events back to pending
- emit_signal tool with contract-enforced rate/dedupe/severity/size limits
- WS run/event projection (GetAgentRuns, AgentRunUpdated, AgentEventUpdated),
  /api/agent-runs* management endpoints, /api/tasks union, WebUI run tree
  and signal cards
- ChannelContext.durable_private persisted for continuation delivery reuse

Version 1.7.0
2026-08-11 11:51:20 +08:00

132 lines
3.9 KiB
JSON

{
"providers": {
"aliyun": {
"type": "openai",
"base_url": "https://api.openai.com/v1",
"api_key": "<DASHSCOPE_API_KEY>",
"extra_headers": {}
},
"openai": {
"type": "openai",
"base_url": "https://api.openai.com/v1",
"api_key": "<OPENAI_API_KEY>",
"extra_headers": {}
},
"anthropic": {
"type": "anthropic",
"base_url": "https://api.anthropic.com/v1",
"api_key": "<ANTHROPIC_API_KEY>",
"extra_headers": {}
}
},
"models": {
"qwen-plus": {
"model_id": "qwen-plus",
"temperature": 0.0,
"max_tokens": 8192
},
"gpt-4o": {
"model_id": "gpt-4o",
"temperature": 0.7,
"max_tokens": 4096,
"input_type": ["text", "image"]
},
"claude-sonnet-4-20250514": {
"model_id": "claude-sonnet-4-20250514",
"temperature": 0.7,
"max_tokens": 8192,
"input_type": ["text", "image"]
}
},
"agents": {
"default": {
"provider": "aliyun",
"model": "qwen-plus",
"max_tool_iterations": 99,
"token_limit": 128000
}
},
"agent_orchestration": {
"enabled": false,
"definitions_dir": "agents",
"root_delegates": [],
"max_tree_depth": 4,
"max_runs_per_tree": 16,
"max_concurrent_runs": 6,
"max_concurrent_runs_per_session": 4,
"max_concurrent_provider_steps": 8,
"max_concurrent_provider_steps_per_session": 4,
"max_concurrent_tool_steps": 16,
"max_concurrent_tool_steps_per_session": 8,
"max_pending_inbox_events_per_session": 128,
"inbox_event_ttl_hours": 168,
"max_inbox_delivery_attempts": 8,
"max_user_turn_burst_before_inbox": 4,
"max_inbox_wait_secs": 30
},
"gateway": {
"host": "127.0.0.1",
"port": 19876,
"require_pairing": true,
"file_transfer": {
"enabled": true,
"upload_dir": "~/.picobot/media/cli_chat",
"max_file_bytes": 26214400,
"max_files_per_message": 8,
"max_message_bytes": 67108864,
"pending_ttl_seconds": 3600
}
},
"client": {
"gateway_url": "ws://127.0.0.1:19876/ws"
},
"channels": {
"feishu": {
"enabled": true,
"app_id": "<FEISHU_APP_ID>",
"app_secret": "<FEISHU_APP_SECRET>",
"allow_from": ["*"],
"require_mention": true,
"agent": "default",
"media_dir": "~/.picobot/media/feishu",
"reaction_emoji": "Typing",
"live_updates": false,
"live_update_interval_ms": 500,
"max_image_bytes": 10485760,
"max_file_bytes": 26214400,
"media_dir_max_bytes": 536870912,
"request_timeout_secs": 30
}
},
"memory": {
"consolidation_provider": null,
"consolidation_model": null,
"recall_limit": 5,
"idle_consolidation_minutes": 10,
"timeline_retention_days": 90,
"max_failures_before_degrade": 3
},
"mcp": {
"servers": [],
"tool_timeout_secs": 180
},
"browser": {
"enabled": true,
"command": "agent-browser",
"headless": true,
"browser_executable_path": null,
"max_sessions": 4,
"idle_timeout_secs": 900,
"command_timeout_secs": 120,
"max_output_chars": 50000,
"content_boundaries": true,
"allowed_domains": [],
"allow_private_hosts": false,
"artifact_dir": "~/.picobot/media/browser",
"persistence": {
"profile_dir": "~/.picobot/browser/profiles"
}
},
"workspace_dir": "~/.picobot/workspace"
}