What's New
Deterministic Loop Hooks
BaseStartHook/BaseEndHookfor injecting instructions before the first LLM call and resuming the loop when the agent would stopPlanningHook(forces task planning) andCompletionCheckHook(verifies todo completion before allowing stop)- Composable
TerminationConditionwith|/&operators
Context Compaction Strategies
CompactionStrategyprotocol called before each LLM callHeadTailCompactionpreserves system prompt + recent work while dropping middle messages, respecting atomic groups (tool calls + results stay together)SlidingWindowCompactionkeeps system message + most recent messagesNoCompactionbaseline for benchmarking- Token counting via tiktoken with character-estimation fallback
Context Engineering Tools
TaskToolfor spawning sub-agents in isolated contextsTodoWriteTool/TodoReadTool/TodoListSessionsToolfor file-backed task trackingSkillsToolfor progressive disclosure via SKILL.md filesMultiEditToolfor atomic multi-file edits- Factory function
create_context_engineering_tools()
Benchmark CLI
picoagents benchmark list|run|resultsCLI commands- Built-in datasets (
coding_v1,repo_analysis_v1) AgentConfigfor declarative agent configuration comparisonBenchmarkRunner,BenchmarkMiddleware, and analysis formatters
Other
- Instruction presets:
get_instructions()for loading reusable system prompt templates - Built-in skills: Code-review skill with SKILL.md frontmatter format
- From-scratch examples: Four progressive files building a minimal agent from zero
Install
pip install picoagents==0.4.0