google / google/adk-python

Hide certain artifacts from the LLM in LoadArtifactsTool

Đang mở
#6,873 1 bình luận 0 reaction 1 người được giao Được @sanketpatil06 nhận Xem trên GitHub
needs review tools
Ngôn ngữ chính
Python
Star
21.5k
Fork
4k
Merge trung bình
1 ngày 22 giờ
Pull request đã merge (30 ngày)
31

Mô tả

## 🔴 Required Information

### Is your feature request related to a specific problem?

As suggested by [ADK doc](https://adk.dev/graphs/data-handling/#:~:text=limitations-,The,Workflow), I'm using artifacts to persist session-scope states of large sizes. These states are meant to be used within my control code / tools, not read by the LLM.

The stock `LoadArtifactsTool`, which can be used by the agent to read supported file types, exposes all artifacts, including those I don't want the agent to see, to the LLM.

`LoadArtifactsTool` supports a `process_artifact` callback that can be leveraged to prevent artifact data from being exposed. However, the tool also [injects all artifact filenames](https://github.com/google/adk-python/blob/e753651b7df26febe00bde2cb043225e644cd207/src/google/adk/tools/load_artifacts_tool.py#L400) to the context. So it still leaks the information about the existence of artifacts and can pollute the context.

### Describe the Solution You'd Like

Option 1: Provide another callback to process `list_artifacts()` responses before appending them to the context.

Option 2: Provide a mechanism to distinguish (e.g., by naming) LLM-ingestable artifacts and artifacts that are purely used by the control code.

### Impact on your work
I won't say "crucial" because I can reimplement the tool anyway :)

### Willingness to contribute
Are you interested in implementing this feature yourself or submitting a PR? Maybe

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.