-
Notifications
You must be signed in to change notification settings - Fork 4
Forefront messages & provider-side gemini tool support #23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request implements forefront messaging (transient system notes) and updates Gemini provider support to use the new google-genai SDK with provider-side tool integration. The changes include:
- A new
SystemNoteEventfor transient context injection without polluting the event log - Migration from
google-generativeaito the unifiedgoogle-genaiSDK - Support for Gemini's native Google Search and URL Context grounding tools
- Improved XML streaming to enforce single-turn responses
Reviewed changes
Copilot reviewed 27 out of 27 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
agex/agent/loop.py |
Adds forefront message generation and injection into LLM context |
agex/agent/events.py |
Defines new SystemNoteEvent class and markdown rendering helper |
agex/agent/base.py |
Adds agex_primer_override parameter for custom system instructions |
agex/agent/__init__.py |
Propagates agex_primer_override through Agent constructor |
agex/agent/summarization.py |
Updates token accounting to include system message overhead |
agex/llm/gemini_client.py |
Migrates to google-genai SDK with grounding tools support |
agex/llm/xml.py |
Enforces single-turn responses by stopping after first Python section |
agex/llm/config.py |
Removes numeric environment variable type conversion |
agex/render/xml.py |
Adds SystemNoteEvent rendering support |
agex/render/events.py |
Adds SystemNoteEvent rendering support |
agex/eval/functions.py |
Tracks user-defined functions in shadow set for forefront messages |
agex/state/core.py |
Adds abstract peek() method to State interface |
agex/state/live.py |
Implements peek() as alias to get() |
agex/state/versioned.py |
Implements peek() without updating access stats |
agex/state/scoped.py |
Delegates peek() calls appropriately |
agex/state/namespaced.py |
Delegates peek() with namespace prefix |
agex/state/closure.py |
Implements peek() for read-only closure state |
pyproject.toml |
Updates Gemini dependency to google-genai |
examples/funcy.py |
Changes example to use Gemini with experimental model |
docs/api/agent.md |
Documents agex_primer_override parameter |
tests/agex/agent/test_summarization.py |
Adds system_message parameter to test calls |
tests/agex/agent/test_forefront_message.py |
Tests forefront message injection logic |
tests/agex/agent/test_agex_primer_override.py |
Tests custom system instruction override |
tests/agex/llm/test_gemini_client.py |
Updates for new SDK and adds grounding tool tests |
tests/agex/llm/test_xml.py |
Tests single-turn enforcement in XML parsing |
tests/agex/render/test_xml.py |
Tests SystemNoteEvent XML rendering |
tests/agex/state/test_gc_regression.py |
Tests peek() behavior across state implementations |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.