-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Add current date and page url to agent context #1102
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
🦋 Changeset detectedLatest commit: f376142 The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
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.
Greptile Overview
Summary
This PR adds contextual information to the agent system prompt by appending the current date and page URL. The change is made to the `buildSystemPrompt` method in `lib/handlers/stagehandAgentHandler.ts`, where a new line is added to the system prompt: `Today's date is ${new Date().toLocaleDateString()}. You're currently on the website: ${this.stagehand.page.url}.`This enhancement provides the Stagehand agent with essential environmental context that can improve its decision-making capabilities. The current date enables time-sensitive operations such as scheduling tasks, understanding temporal context on web pages, or making date-based comparisons. The page URL helps the agent understand its current location within a website, which is valuable for navigation decisions and understanding the context of available actions.
This change integrates well with the existing Stagehand architecture, specifically the agent handler system that was introduced in version 2.0.0 as part of the major release that added stagehand.agent functionality for computer use models. The modification is minimal and follows the existing pattern of building comprehensive system prompts that guide the agent's behavior.
Important Files Changed
Changed Files
| Filename | Score | Overview |
|---|---|---|
| lib/handlers/stagehandAgentHandler.ts | 4/5 | Added current date and page URL to the agent's system prompt for better context awareness |
Confidence score: 4/5
- This PR is safe to merge with minimal risk as it only adds contextual information to a system prompt
- Score reflects the simple nature of the change with clear benefits and no apparent side effects
- No files require special attention as this is a straightforward enhancement to agent context
Sequence Diagram
sequenceDiagram
participant User
participant StagehandAgentHandler as "StagehandAgentHandler"
participant Stagehand as "Stagehand"
participant LLMClient as "LLMClient"
participant AgentTools as "AgentTools"
User->>StagehandAgentHandler: "execute(instruction)"
StagehandAgentHandler->>StagehandAgentHandler: "buildSystemPrompt(instruction, systemInstructions)"
Note over StagehandAgentHandler: "Adds current date and page URL to system prompt"
StagehandAgentHandler->>Stagehand: "page.url"
Stagehand-->>StagehandAgentHandler: "current page URL"
StagehandAgentHandler->>StagehandAgentHandler: "createTools()"
StagehandAgentHandler->>AgentTools: "createAgentTools(stagehand, options)"
AgentTools-->>StagehandAgentHandler: "default tools"
StagehandAgentHandler->>LLMClient: "getLanguageModel()"
LLMClient-->>StagehandAgentHandler: "base language model"
StagehandAgentHandler->>LLMClient: "generateText(model, systemPrompt, messages, tools)"
LLMClient-->>StagehandAgentHandler: "agent execution result with actions"
StagehandAgentHandler-->>User: "AgentResult with success, message, actions"
1 file reviewed, 1 comment
| For each action, provide clear reasoning about why you're taking that step.`; | ||
| For each action, provide clear reasoning about why you're taking that step. | ||
| Today's date is ${new Date().toLocaleDateString()}. You're currently on the website: ${this.stagehand.page.url}.`; |
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.
style: The date format will vary by system locale - consider using toLocaleDateString('en-US') or toISOString().split('T')[0] for consistency
Prompt To Fix With AI
This is a comment left during a code review.
Path: lib/handlers/stagehandAgentHandler.ts
Line: 241:241
Comment:
style: The date format will vary by system locale - consider using `toLocaleDateString('en-US')` or `toISOString().split('T')[0]` for consistency
How can I resolve this? If you propose a fix, please make it concise.# why To improve context # what changed Added current page and url to the system prompt # test plan
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @browserbasehq/stagehand@2.5.1 ### Patch Changes - [#1082](#1082) [`8c0fd01`](8c0fd01) Thanks [@tkattkat](https://github.com/tkattkat)! - Pass stagehand object to agent instead of stagehand page - [#1104](#1104) [`a1ad06c`](a1ad06c) Thanks [@miguelg719](https://github.com/miguelg719)! - Fix logging for stagehand agent - [#1066](#1066) [`9daa584`](9daa584) Thanks [@tkattkat](https://github.com/tkattkat)! - Add playwright arguments to agent execute response - [#1077](#1077) [`7f38b3a`](7f38b3a) Thanks [@tkattkat](https://github.com/tkattkat)! - adds support for stagehand agent in the api - [#1032](#1032) [`bf2d0e7`](bf2d0e7) Thanks [@miguelg719](https://github.com/miguelg719)! - Fix for zod peer dependency support - [#1014](#1014) [`6966201`](6966201) Thanks [@tkattkat](https://github.com/tkattkat)! - Replace operator handler with base of new agent - [#1089](#1089) [`536f366`](536f366) Thanks [@miguelg719](https://github.com/miguelg719)! - Fixed info logs on api session create - [#1103](#1103) [`889cb6c`](889cb6c) Thanks [@tkattkat](https://github.com/tkattkat)! - patch custom tool support in anthropic cua client - [#1056](#1056) [`6a002b2`](6a002b2) Thanks [@chrisreadsf](https://github.com/chrisreadsf)! - remove need for duplicate project id if already passed to Stagehand - [#1090](#1090) [`8ff5c5a`](8ff5c5a) Thanks [@miguelg719](https://github.com/miguelg719)! - Improve failed act error logs - [#1014](#1014) [`6966201`](6966201) Thanks [@tkattkat](https://github.com/tkattkat)! - replace operator agent with scaffold for new stagehand agent - [#1107](#1107) [`3ccf335`](3ccf335) Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - fix: url extraction not working inside an array - [#1102](#1102) [`a99aa48`](a99aa48) Thanks [@miguelg719](https://github.com/miguelg719)! - Add current page and date context to agent - [#1110](#1110) [`dda52f1`](dda52f1) Thanks [@miguelg719](https://github.com/miguelg719)! - Add support for new Gemini Computer Use models ## @browserbasehq/stagehand-evals@1.1.0 ### Minor Changes - [#1057](#1057) [`b7be89e`](b7be89e) Thanks [@filip-michalsky](https://github.com/filip-michalsky)! - added web voyager ground truth (optional), added web bench, and subset of OSWorld evals which run on a browser ### Patch Changes - [#1072](#1072) [`dc2d420`](dc2d420) Thanks [@filip-michalsky](https://github.com/filip-michalsky)! - improve evals screenshot service - add img hashing diff to add screenshots and change to screenshot intercepts from the agent - Updated dependencies \[[`8c0fd01`](8c0fd01), [`a1ad06c`](a1ad06c), [`9daa584`](9daa584), [`7f38b3a`](7f38b3a), [`bf2d0e7`](bf2d0e7), [`6966201`](6966201), [`536f366`](536f366), [`889cb6c`](889cb6c), [`6a002b2`](6a002b2), [`8ff5c5a`](8ff5c5a), [`6966201`](6966201), [`3ccf335`](3ccf335), [`a99aa48`](a99aa48), [`dda52f1`](dda52f1)]: - @browserbasehq/stagehand@2.5.1 ## @browserbasehq/stagehand-examples@1.0.10 ### Patch Changes - Updated dependencies \[[`8c0fd01`](8c0fd01), [`a1ad06c`](a1ad06c), [`9daa584`](9daa584), [`7f38b3a`](7f38b3a), [`bf2d0e7`](bf2d0e7), [`6966201`](6966201), [`536f366`](536f366), [`889cb6c`](889cb6c), [`6a002b2`](6a002b2), [`8ff5c5a`](8ff5c5a), [`6966201`](6966201), [`3ccf335`](3ccf335), [`a99aa48`](a99aa48), [`dda52f1`](dda52f1)]: - @browserbasehq/stagehand@2.5.1 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
why
To improve context
what changed
Added current page and url to the system prompt
test plan