@researai/deepscientist 1.5.5 → 1.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/src/deepscientist/__init__.py +1 -1
- package/src/deepscientist/prompts/builder.py +1 -1
- package/src/deepscientist/quest/service.py +2 -2
- package/src/prompts/connectors/qq.md +3 -0
- package/src/prompts/system.md +2 -1
- package/src/tui/package.json +1 -1
package/package.json
CHANGED
package/pyproject.toml
CHANGED
|
@@ -745,7 +745,7 @@ class PromptBuilder:
|
|
|
745
745
|
"- response_pattern: say what changed -> say what it means -> say what happens next",
|
|
746
746
|
"- interaction_protocol: first message may be plain conversation; after that, treat artifact.interact threads and mailbox polls as the main continuity spine across TUI, web, and connectors",
|
|
747
747
|
"- mailbox_protocol: artifact.interact(include_recent_inbound_messages=True) is the queued human-message mailbox; when it returns user text, treat that input as higher priority than background subtasks until it has been acknowledged",
|
|
748
|
-
"- acknowledgment_protocol: after artifact.interact returns any human message, immediately
|
|
748
|
+
"- acknowledgment_protocol: after artifact.interact returns any human message, immediately send one substantive artifact.interact(...) follow-up; if the active connector runtime already emitted a transport-level receipt acknowledgement, do not send a redundant receipt-only message; if answerable, answer directly, otherwise state the short plan, nearest checkpoint, and that the current background subtask is paused",
|
|
749
749
|
"- progress_protocol: emit artifact.interact(kind='progress', reply_mode='threaded', ...) at real human-meaningful checkpoints; if no natural checkpoint appears during active user-relevant work, send a concise keepalive before you drift beyond roughly 10 to 30 tool calls without a user-visible update",
|
|
750
750
|
"- smoke_then_detach_protocol: for baseline reproduction, main experiments, and analysis experiments, first validate the command path with a bounded smoke test; once the smoke test passes, launch the real long run with bash_exec(mode='detach', ...) and usually leave timeout_seconds unset rather than guessing a fake deadline",
|
|
751
751
|
"- progress_first_monitoring_protocol: when supervising a long-running bash_exec session, judge health by forward progress rather than by whether the final artifact has already appeared within a short window",
|
|
@@ -2813,8 +2813,8 @@ class QuestService:
|
|
|
2813
2813
|
),
|
|
2814
2814
|
self.localized_copy(
|
|
2815
2815
|
quest_root=quest_root,
|
|
2816
|
-
zh="-
|
|
2817
|
-
en="- Immediately
|
|
2816
|
+
zh="- 立即发送一条有实际内容的 follow-up artifact.interact(...);如果当前 connector 的运行时已经替你发过即时回执,就不要再重复发送一条只有“已收到/处理中”的确认。",
|
|
2817
|
+
en="- Immediately send one substantive follow-up artifact.interact(...); if the active connector runtime already sent the transport-level receipt acknowledgement, do not send a redundant receipt-only message such as 'received' or 'processing'.",
|
|
2818
2818
|
),
|
|
2819
2819
|
self.localized_copy(
|
|
2820
2820
|
quest_root=quest_root,
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
- connector_contract_id: qq
|
|
4
4
|
- connector_contract_scope: loaded only when QQ is the active or bound external connector for this quest
|
|
5
5
|
- connector_contract_goal: use `artifact.interact(...)` as the main durable user-visible thread on QQ instead of exposing raw internal runner or tool chatter
|
|
6
|
+
- qq_runtime_ack_rule: the QQ bridge itself emits the immediate transport-level receipt acknowledgement before the model turn starts
|
|
7
|
+
- qq_no_duplicate_ack_rule: do not waste your first model response or first `artifact.interact(...)` call on a redundant receipt-only acknowledgement such as "received", "已收到", or "I am processing" when the bridge already sent that
|
|
6
8
|
- qq_reply_style: keep QQ replies concise, milestone-first, respectful, and easy to scan on a phone
|
|
7
9
|
- qq_reply_length_rule: for ordinary QQ progress updates, normally use only 2 to 4 short sentences, or 3 short bullets at most
|
|
8
10
|
- qq_summary_first_rule: start with the conclusion the user cares about, then what it means, then the next action
|
|
@@ -16,6 +18,7 @@
|
|
|
16
18
|
- qq_default_text_rule: plain text is the default and safest QQ mode
|
|
17
19
|
- qq_absolute_path_rule: when you request native QQ image or file delivery via an attachment `path`, prefer an absolute path
|
|
18
20
|
- qq_failure_rule: if `artifact.interact(...)` returns `attachment_issues` or `delivery_results` errors, treat that as a real delivery failure and adapt before assuming the user received the media
|
|
21
|
+
- qq_first_followup_rule: after a new inbound QQ message, your first substantive follow-up should either answer directly or give the first meaningful checkpoint and next action, not a second bare acknowledgement
|
|
19
22
|
|
|
20
23
|
## QQ Runtime Capabilities
|
|
21
24
|
|
package/src/prompts/system.md
CHANGED
|
@@ -1027,7 +1027,8 @@ For `artifact.interact(...)` specifically:
|
|
|
1027
1027
|
- ordinary user-facing progress updates should read like a short collaborator message, not like a monitoring transcript, execution diary, or internal postmortem
|
|
1028
1028
|
- when `artifact.interact(...)` returns queued user requirements, treat that mailbox payload as the latest user instruction bundle
|
|
1029
1029
|
- if queued user requirements were returned, treat them as higher priority than the current background subtask until you have acknowledged them
|
|
1030
|
-
- immediately follow a non-empty mailbox poll with
|
|
1030
|
+
- immediately follow a non-empty mailbox poll with one substantive `artifact.interact(...)` follow-up update
|
|
1031
|
+
- if the active connector runtime already emitted a transport-level receipt acknowledgement before your turn, do not send a redundant receipt-only update such as "received" or "processing"
|
|
1031
1032
|
- if the request is directly answerable, answer it in that immediate follow-up update
|
|
1032
1033
|
- otherwise say the current subtask is being paused, give a short execution plan plus nearest report-back point, then complete the user request first
|
|
1033
1034
|
- after completing that interrupting user request, send another `artifact.interact(...)` update with the full result before resuming older work
|